Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit d5f1a21c authored by Linus Torvalds's avatar Linus Torvalds
Browse files

Merge master.kernel.org:/home/rmk/linux-2.6-arm

* master.kernel.org:/home/rmk/linux-2.6-arm:
  [ARM] 4875/1: Add MODULE_ALIAS to ixp4xx-beeper module
  [ARM] 4873/1: Fix ITE 8152 interrupt demux
  [ARM] 4878/1: Add oabi shim for fstatat64
parents 1f4cfbaa 1035d60d
Loading
Loading
Loading
Loading
+3 −2
Original line number Diff line number Diff line
@@ -120,6 +120,7 @@ void it8152_irq_demux(unsigned int irq, struct irq_desc *desc)
			  time, when they all three were 0. */
		       bits_pd = __raw_readl(IT8152_INTC_PDCNIRR);
		       bits_lp = __raw_readl(IT8152_INTC_LPCNIRR);
		       bits_ld = __raw_readl(IT8152_INTC_LDCNIRR);
		       if (!(bits_ld | bits_lp | bits_pd))
			       return;
	       }
@@ -133,14 +134,14 @@ void it8152_irq_demux(unsigned int irq, struct irq_desc *desc)

	       bits_lp &= ((1 << IT8152_LP_IRQ_COUNT) - 1);
	       while (bits_lp) {
		       i = __ffs(bits_pd);
		       i = __ffs(bits_lp);
		       it8152_irq(IT8152_LP_IRQ(i));
		       bits_lp &= ~(1 << i);
	       }

	       bits_ld &= ((1 << IT8152_LD_IRQ_COUNT) - 1);
	       while (bits_ld) {
		       i = __ffs(bits_pd);
		       i = __ffs(bits_ld);
		       it8152_irq(IT8152_LD_IRQ(i));
		       bits_ld &= ~(1 << i);
	       }
+1 −1
Original line number Diff line number Diff line
@@ -336,7 +336,7 @@
		CALL(sys_mknodat)
/* 325 */	CALL(sys_fchownat)
		CALL(sys_futimesat)
		CALL(sys_fstatat64)
		CALL(ABI(sys_fstatat64,  sys_oabi_fstatat64))
		CALL(sys_unlinkat)
		CALL(sys_renameat)
/* 330 */	CALL(sys_linkat)
+24 −0
Original line number Diff line number Diff line
@@ -25,6 +25,7 @@
 * sys_stat64:
 * sys_lstat64:
 * sys_fstat64:
 * sys_fstatat64:
 *
 *   struct stat64 has different sizes and some members are shifted
 *   Compatibility wrappers are needed for them and provided below.
@@ -169,6 +170,29 @@ asmlinkage long sys_oabi_fstat64(unsigned long fd,
	return error;
}

asmlinkage long sys_oabi_fstatat64(int dfd,
				   char __user *filename,
				   struct oldabi_stat64  __user *statbuf,
				   int flag)
{
	struct kstat stat;
	int error = -EINVAL;

	if ((flag & ~AT_SYMLINK_NOFOLLOW) != 0)
		goto out;

	if (flag & AT_SYMLINK_NOFOLLOW)
		error = vfs_lstat_fd(dfd, filename, &stat);
	else
		error = vfs_stat_fd(dfd, filename, &stat);

	if (!error)
	error = cp_oldabi_stat64(&stat, statbuf);

out:
	return error;
}

struct oabi_flock64 {
	short	l_type;
	short	l_whence;