瀏覽代碼

Merge branch 'master' into upstream-fixes

Jeff Garzik 18 年之前
父節點
當前提交
eff68d452f
共有 55 個文件被更改,包括 352 次插入149 次删除
  1. 1 1
      Makefile
  2. 0 1
      arch/i386/kernel/Makefile
  3. 4 0
      arch/ia64/Kconfig
  4. 4 0
      arch/powerpc/Kconfig
  5. 4 0
      arch/s390/Kconfig
  6. 0 1
      arch/sh64/Makefile
  7. 3 0
      arch/sh64/kernel/process.c
  8. 4 2
      arch/sh64/mach-cayman/setup.c
  9. 3 1
      arch/sh64/mm/ioremap.c
  10. 4 0
      arch/sparc64/Kconfig
  11. 3 0
      arch/sparc64/kernel/Makefile
  12. 66 0
      arch/sparc64/kernel/audit.c
  13. 37 0
      arch/sparc64/kernel/compat_audit.c
  14. 4 0
      arch/x86_64/Kconfig
  15. 1 1
      drivers/media/Kconfig
  16. 2 0
      drivers/media/common/saa7146_video.c
  17. 1 0
      drivers/media/dvb/b2c2/Kconfig
  18. 1 0
      drivers/media/dvb/bt8xx/Kconfig
  19. 1 0
      drivers/media/dvb/dvb-usb/Kconfig
  20. 32 28
      drivers/media/dvb/frontends/Kconfig
  21. 1 1
      drivers/media/dvb/frontends/Makefile
  22. 1 0
      drivers/media/dvb/pluto2/Kconfig
  23. 5 0
      drivers/media/dvb/ttpci/Kconfig
  24. 2 1
      drivers/media/dvb/ttusb-budget/Kconfig
  25. 4 4
      drivers/media/video/Kconfig
  26. 1 0
      drivers/media/video/bt8xx/bttv-input.c
  27. 1 0
      drivers/media/video/cx88/Kconfig
  28. 1 0
      drivers/media/video/saa7134/Kconfig
  29. 8 2
      drivers/media/video/tuner-types.c
  30. 1 1
      drivers/media/video/zoran.h
  31. 11 11
      drivers/media/video/zoran_driver.c
  32. 2 2
      drivers/serial/sh-sci.c
  33. 6 6
      drivers/usb/input/yealink.c
  34. 3 1
      drivers/usb/serial/usb-serial.c
  35. 7 4
      fs/cifs/readdir.c
  36. 13 5
      fs/xfs/linux-2.6/xfs_aops.c
  37. 22 5
      fs/xfs/linux-2.6/xfs_lrw.c
  38. 1 1
      fs/xfs/quota/xfs_qm_bhv.c
  39. 20 0
      fs/xfs/xfs_alloc.h
  40. 10 6
      fs/xfs/xfs_fsops.c
  41. 8 24
      fs/xfs/xfs_mount.c
  42. 2 1
      fs/xfs/xfs_vfsops.c
  43. 4 12
      include/asm-sh64/bug.h
  44. 2 2
      include/asm-sh64/byteorder.h
  45. 12 4
      include/asm-sh64/dma-mapping.h
  46. 7 0
      include/asm-sh64/io.h
  47. 1 1
      include/asm-sh64/ptrace.h
  48. 1 1
      include/asm-sh64/system.h
  49. 7 12
      include/asm-sh64/uaccess.h
  50. 1 2
      include/linux/videodev.h
  51. 0 2
      include/linux/videodev2.h
  52. 4 3
      include/media/v4l2-dev.h
  53. 5 0
      lib/Kconfig
  54. 1 0
      lib/Makefile
  55. 2 0
      lib/audit.c

+ 1 - 1
Makefile

@@ -1,7 +1,7 @@
 VERSION = 2
 VERSION = 2
 PATCHLEVEL = 6
 PATCHLEVEL = 6
 SUBLEVEL = 18
 SUBLEVEL = 18
-EXTRAVERSION = -rc6
+EXTRAVERSION = -rc7
 NAME=Crazed Snow-Weasel
 NAME=Crazed Snow-Weasel
 
 
 # *DOCUMENTATION*
 # *DOCUMENTATION*

+ 0 - 1
arch/i386/kernel/Makefile

@@ -39,7 +39,6 @@ obj-$(CONFIG_VM86)		+= vm86.o
 obj-$(CONFIG_EARLY_PRINTK)	+= early_printk.o
 obj-$(CONFIG_EARLY_PRINTK)	+= early_printk.o
 obj-$(CONFIG_HPET_TIMER) 	+= hpet.o
 obj-$(CONFIG_HPET_TIMER) 	+= hpet.o
 obj-$(CONFIG_K8_NB)		+= k8.o
 obj-$(CONFIG_K8_NB)		+= k8.o
-obj-$(CONFIG_AUDIT)		+= audit.o
 
 
 EXTRA_AFLAGS   := -traditional
 EXTRA_AFLAGS   := -traditional
 
 

+ 4 - 0
arch/ia64/Kconfig

@@ -75,6 +75,10 @@ config DMA_IS_NORMAL
 	depends on IA64_SGI_SN2
 	depends on IA64_SGI_SN2
 	default y
 	default y
 
 
+config AUDIT_ARCH
+	bool
+	default y
+
 choice
 choice
 	prompt "System type"
 	prompt "System type"
 	default IA64_GENERIC
 	default IA64_GENERIC

+ 4 - 0
arch/powerpc/Kconfig

@@ -95,6 +95,10 @@ config GENERIC_TBSYNC
 	default y if PPC32 && SMP
 	default y if PPC32 && SMP
 	default n
 	default n
 
 
+config AUDIT_ARCH
+	bool
+	default y
+
 config DEFAULT_UIMAGE
 config DEFAULT_UIMAGE
 	bool
 	bool
 	help
 	help

+ 4 - 0
arch/s390/Kconfig

@@ -118,6 +118,10 @@ config SYSVIPC_COMPAT
 	depends on COMPAT && SYSVIPC
 	depends on COMPAT && SYSVIPC
 	default y
 	default y
 
 
+config AUDIT_ARCH
+	bool
+	default y
+
 comment "Code generation options"
 comment "Code generation options"
 
 
 choice
 choice

+ 0 - 1
arch/sh64/Makefile

@@ -26,7 +26,6 @@ LDFLAGS			+= -EB  -mshelf32_linux
 endif
 endif
 
 
 # No requirements for endianess support from AFLAGS, 'as' always run through gcc
 # No requirements for endianess support from AFLAGS, 'as' always run through gcc
-AFLAGS		+= -m5 -isa=sh64 -traditional
 CFLAGS		+= $(cpu-y)
 CFLAGS		+= $(cpu-y)
 
 
 LDFLAGS_vmlinux	+= --defsym phys_stext=_stext-$(CONFIG_CACHED_MEMORY_OFFSET) \
 LDFLAGS_vmlinux	+= --defsym phys_stext=_stext-$(CONFIG_CACHED_MEMORY_OFFSET) \

+ 3 - 0
arch/sh64/kernel/process.c

@@ -355,6 +355,9 @@ void machine_power_off(void)
 	enter_deep_standby();
 	enter_deep_standby();
 }
 }
 
 
+void (*pm_power_off)(void) = machine_power_off;
+EXPORT_SYMBOL(pm_power_off);
+
 void show_regs(struct pt_regs * regs)
 void show_regs(struct pt_regs * regs)
 {
 {
 	unsigned long long ah, al, bh, bl, ch, cl;
 	unsigned long long ah, al, bh, bl, ch, cl;

+ 4 - 2
arch/sh64/mach-cayman/setup.c

@@ -112,8 +112,10 @@ struct resource io_resources[] = {
 };
 };
 
 
 struct resource kram_resources[] = {
 struct resource kram_resources[] = {
-	{ "Kernel code", 0, 0 },	/* These must be last in the array */
-	{ "Kernel data", 0, 0 }		/* These must be last in the array */
+	/* These must be last in the array */
+	{ .name = "Kernel code", .start = 0, .end = 0 },
+	/* These must be last in the array */
+	{ .name = "Kernel data", .start = 0, .end = 0 }
 };
 };
 
 
 struct resource xram_resources[] = {
 struct resource xram_resources[] = {

+ 3 - 1
arch/sh64/mm/ioremap.c

@@ -449,7 +449,9 @@ ioremap_proc_info(char *buf, char **start, off_t fpos, int length, int *eof,
 		if (p + 32 >= e)        /* Better than nothing */
 		if (p + 32 >= e)        /* Better than nothing */
 			break;
 			break;
 		if ((nm = r->name) == 0) nm = "???";
 		if ((nm = r->name) == 0) nm = "???";
-		p += sprintf(p, "%08lx-%08lx: %s\n", r->start, r->end, nm);
+		p += sprintf(p, "%08lx-%08lx: %s\n",
+			     (unsigned long)r->start,
+			     (unsigned long)r->end, nm);
 	}
 	}
 
 
 	return p-buf;
 	return p-buf;

+ 4 - 0
arch/sparc64/Kconfig

@@ -34,6 +34,10 @@ config ARCH_MAY_HAVE_PC_FDC
 	bool
 	bool
 	default y
 	default y
 
 
+config AUDIT_ARCH
+	bool
+	default y
+
 choice
 choice
 	prompt "Kernel page size"
 	prompt "Kernel page size"
 	default SPARC64_PAGE_SIZE_8KB
 	default SPARC64_PAGE_SIZE_8KB

+ 3 - 0
arch/sparc64/kernel/Makefile

@@ -25,6 +25,9 @@ obj-$(CONFIG_MODULES) += module.o
 obj-$(CONFIG_US3_FREQ) += us3_cpufreq.o
 obj-$(CONFIG_US3_FREQ) += us3_cpufreq.o
 obj-$(CONFIG_US2E_FREQ) += us2e_cpufreq.o
 obj-$(CONFIG_US2E_FREQ) += us2e_cpufreq.o
 obj-$(CONFIG_KPROBES) += kprobes.o
 obj-$(CONFIG_KPROBES) += kprobes.o
+obj-$(CONFIG_AUDIT) += audit.o
+obj-$(CONFIG_AUDIT)$(CONFIG_SPARC32_COMPAT) += compat_audit.o
+obj-y += $(obj-yy)
 
 
 ifdef CONFIG_SUNOS_EMUL
 ifdef CONFIG_SUNOS_EMUL
   obj-y += sys_sunos32.o sunos_ioctl32.o
   obj-y += sys_sunos32.o sunos_ioctl32.o

+ 66 - 0
arch/sparc64/kernel/audit.c

@@ -0,0 +1,66 @@
+#include <linux/init.h>
+#include <linux/types.h>
+#include <linux/audit.h>
+#include <asm/unistd.h>
+
+static unsigned dir_class[] = {
+#include <asm-generic/audit_dir_write.h>
+~0U
+};
+
+static unsigned read_class[] = {
+#include <asm-generic/audit_read.h>
+~0U
+};
+
+static unsigned write_class[] = {
+#include <asm-generic/audit_write.h>
+~0U
+};
+
+static unsigned chattr_class[] = {
+#include <asm-generic/audit_change_attr.h>
+~0U
+};
+
+int audit_classify_syscall(int abi, unsigned syscall)
+{
+#ifdef CONFIG_SPARC32_COMPAT
+	extern int sparc32_classify_syscall(unsigned);
+	if (abi == AUDIT_ARCH_SPARC)
+		return sparc32_classify_syscall(syscall);
+#endif
+	switch(syscall) {
+	case __NR_open:
+		return 2;
+	case __NR_openat:
+		return 3;
+	case __NR_socketcall:
+		return 4;
+	case __NR_execve:
+		return 5;
+	default:
+		return 0;
+	}
+}
+
+static int __init audit_classes_init(void)
+{
+#ifdef CONFIG_SPARC32_COMPAT
+	extern __u32 sparc32_dir_class[];
+	extern __u32 sparc32_write_class[];
+	extern __u32 sparc32_read_class[];
+	extern __u32 sparc32_chattr_class[];
+	audit_register_class(AUDIT_CLASS_WRITE_32, sparc32_write_class);
+	audit_register_class(AUDIT_CLASS_READ_32, sparc32_read_class);
+	audit_register_class(AUDIT_CLASS_DIR_WRITE_32, sparc32_dir_class);
+	audit_register_class(AUDIT_CLASS_CHATTR_32, sparc32_chattr_class);
+#endif
+	audit_register_class(AUDIT_CLASS_WRITE, write_class);
+	audit_register_class(AUDIT_CLASS_READ, read_class);
+	audit_register_class(AUDIT_CLASS_DIR_WRITE, dir_class);
+	audit_register_class(AUDIT_CLASS_CHATTR, chattr_class);
+	return 0;
+}
+
+__initcall(audit_classes_init);

+ 37 - 0
arch/sparc64/kernel/compat_audit.c

@@ -0,0 +1,37 @@
+#include <asm-sparc/unistd.h>
+
+unsigned sparc32_dir_class[] = {
+#include <asm-generic/audit_dir_write.h>
+~0U
+};
+
+unsigned sparc32_chattr_class[] = {
+#include <asm-generic/audit_change_attr.h>
+~0U
+};
+
+unsigned sparc32_write_class[] = {
+#include <asm-generic/audit_write.h>
+~0U
+};
+
+unsigned sparc32_read_class[] = {
+#include <asm-generic/audit_read.h>
+~0U
+};
+
+int sparc32_classify_syscall(unsigned syscall)
+{
+	switch(syscall) {
+	case __NR_open:
+		return 2;
+	case __NR_openat:
+		return 3;
+	case __NR_socketcall:
+		return 4;
+	case __NR_execve:
+		return 5;
+	default:
+		return 1;
+	}
+}

+ 4 - 0
arch/x86_64/Kconfig

@@ -85,6 +85,10 @@ config DMI
 	bool
 	bool
 	default y
 	default y
 
 
+config AUDIT_ARCH
+	bool
+	default y
+
 source "init/Kconfig"
 source "init/Kconfig"
 
 
 
 

+ 1 - 1
drivers/media/Kconfig

@@ -53,7 +53,7 @@ config VIDEO_V4L1_COMPAT
 	  If you are unsure as to whether this is required, answer Y.
 	  If you are unsure as to whether this is required, answer Y.
 
 
 config VIDEO_V4L2
 config VIDEO_V4L2
-	tristate
+	bool
 	default y
 	default y
 
 
 source "drivers/media/video/Kconfig"
 source "drivers/media/video/Kconfig"

+ 2 - 0
drivers/media/common/saa7146_video.c

@@ -1190,6 +1190,7 @@ int saa7146_video_do_ioctl(struct inode *inode, struct file *file, unsigned int
 		}
 		}
 		return err;
 		return err;
 	}
 	}
+#ifdef CONFIG_VIDEO_V4L1_COMPAT
 	case VIDIOCGMBUF:
 	case VIDIOCGMBUF:
 	{
 	{
 		struct video_mbuf *mbuf = arg;
 		struct video_mbuf *mbuf = arg;
@@ -1218,6 +1219,7 @@ int saa7146_video_do_ioctl(struct inode *inode, struct file *file, unsigned int
 		mutex_unlock(&q->lock);
 		mutex_unlock(&q->lock);
 		return 0;
 		return 0;
 	}
 	}
+#endif
 	default:
 	default:
 		return v4l_compat_translate_ioctl(inode,file,cmd,arg,
 		return v4l_compat_translate_ioctl(inode,file,cmd,arg,
 						  saa7146_video_do_ioctl);
 						  saa7146_video_do_ioctl);

+ 1 - 0
drivers/media/dvb/b2c2/Kconfig

@@ -1,6 +1,7 @@
 config DVB_B2C2_FLEXCOP
 config DVB_B2C2_FLEXCOP
 	tristate "Technisat/B2C2 FlexCopII(b) and FlexCopIII adapters"
 	tristate "Technisat/B2C2 FlexCopII(b) and FlexCopIII adapters"
 	depends on DVB_CORE && I2C
 	depends on DVB_CORE && I2C
+	select DVB_PLL
 	select DVB_STV0299
 	select DVB_STV0299
 	select DVB_MT352
 	select DVB_MT352
 	select DVB_MT312
 	select DVB_MT312

+ 1 - 0
drivers/media/dvb/bt8xx/Kconfig

@@ -1,6 +1,7 @@
 config DVB_BT8XX
 config DVB_BT8XX
 	tristate "BT8xx based PCI cards"
 	tristate "BT8xx based PCI cards"
 	depends on DVB_CORE && PCI && I2C && VIDEO_BT848
 	depends on DVB_CORE && PCI && I2C && VIDEO_BT848
+	select DVB_PLL
 	select DVB_MT352
 	select DVB_MT352
 	select DVB_SP887X
 	select DVB_SP887X
 	select DVB_NXT6000
 	select DVB_NXT6000

+ 1 - 0
drivers/media/dvb/dvb-usb/Kconfig

@@ -2,6 +2,7 @@ config DVB_USB
 	tristate "Support for various USB DVB devices"
 	tristate "Support for various USB DVB devices"
 	depends on DVB_CORE && USB && I2C
 	depends on DVB_CORE && USB && I2C
 	select FW_LOADER
 	select FW_LOADER
+	select DVB_PLL
 	help
 	help
 	  By enabling this you will be able to choose the various supported
 	  By enabling this you will be able to choose the various supported
 	  USB1.1 and USB2.0 DVB devices.
 	  USB1.1 and USB2.0 DVB devices.

+ 32 - 28
drivers/media/dvb/frontends/Kconfig

@@ -6,43 +6,43 @@ comment "DVB-S (satellite) frontends"
 
 
 config DVB_STV0299
 config DVB_STV0299
 	tristate "ST STV0299 based"
 	tristate "ST STV0299 based"
-	depends on DVB_CORE
+	depends on DVB_CORE && I2C
 	help
 	help
 	  A DVB-S tuner module. Say Y when you want to support this frontend.
 	  A DVB-S tuner module. Say Y when you want to support this frontend.
 
 
 config DVB_CX24110
 config DVB_CX24110
 	tristate "Conexant CX24110 based"
 	tristate "Conexant CX24110 based"
-	depends on DVB_CORE
+	depends on DVB_CORE && I2C
 	help
 	help
 	  A DVB-S tuner module. Say Y when you want to support this frontend.
 	  A DVB-S tuner module. Say Y when you want to support this frontend.
 
 
 config DVB_CX24123
 config DVB_CX24123
 	tristate "Conexant CX24123 based"
 	tristate "Conexant CX24123 based"
-	depends on DVB_CORE
+	depends on DVB_CORE && I2C
 	help
 	help
 	  A DVB-S tuner module. Say Y when you want to support this frontend.
 	  A DVB-S tuner module. Say Y when you want to support this frontend.
 
 
 config DVB_TDA8083
 config DVB_TDA8083
 	tristate "Philips TDA8083 based"
 	tristate "Philips TDA8083 based"
-	depends on DVB_CORE
+	depends on DVB_CORE && I2C
 	help
 	help
 	  A DVB-S tuner module. Say Y when you want to support this frontend.
 	  A DVB-S tuner module. Say Y when you want to support this frontend.
 
 
 config DVB_MT312
 config DVB_MT312
 	tristate "Zarlink VP310/MT312 based"
 	tristate "Zarlink VP310/MT312 based"
-	depends on DVB_CORE
+	depends on DVB_CORE && I2C
 	help
 	help
 	  A DVB-S tuner module. Say Y when you want to support this frontend.
 	  A DVB-S tuner module. Say Y when you want to support this frontend.
 
 
 config DVB_VES1X93
 config DVB_VES1X93
 	tristate "VLSI VES1893 or VES1993 based"
 	tristate "VLSI VES1893 or VES1993 based"
-	depends on DVB_CORE
+	depends on DVB_CORE && I2C
 	help
 	help
 	  A DVB-S tuner module. Say Y when you want to support this frontend.
 	  A DVB-S tuner module. Say Y when you want to support this frontend.
 
 
 config DVB_S5H1420
 config DVB_S5H1420
 	tristate "Samsung S5H1420 based"
 	tristate "Samsung S5H1420 based"
-	depends on DVB_CORE
+	depends on DVB_CORE && I2C
 	help
 	help
 	  A DVB-S tuner module. Say Y when you want to support this frontend.
 	  A DVB-S tuner module. Say Y when you want to support this frontend.
 
 
@@ -51,7 +51,7 @@ comment "DVB-T (terrestrial) frontends"
 
 
 config DVB_SP8870
 config DVB_SP8870
 	tristate "Spase sp8870 based"
 	tristate "Spase sp8870 based"
-	depends on DVB_CORE
+	depends on DVB_CORE && I2C
 	select FW_LOADER
 	select FW_LOADER
 	help
 	help
 	  A DVB-T tuner module. Say Y when you want to support this frontend.
 	  A DVB-T tuner module. Say Y when you want to support this frontend.
@@ -63,7 +63,7 @@ config DVB_SP8870
 
 
 config DVB_SP887X
 config DVB_SP887X
 	tristate "Spase sp887x based"
 	tristate "Spase sp887x based"
-	depends on DVB_CORE
+	depends on DVB_CORE && I2C
 	select FW_LOADER
 	select FW_LOADER
 	help
 	help
 	  A DVB-T tuner module. Say Y when you want to support this frontend.
 	  A DVB-T tuner module. Say Y when you want to support this frontend.
@@ -75,25 +75,25 @@ config DVB_SP887X
 
 
 config DVB_CX22700
 config DVB_CX22700
 	tristate "Conexant CX22700 based"
 	tristate "Conexant CX22700 based"
-	depends on DVB_CORE
+	depends on DVB_CORE && I2C
 	help
 	help
 	  A DVB-T tuner module. Say Y when you want to support this frontend.
 	  A DVB-T tuner module. Say Y when you want to support this frontend.
 
 
 config DVB_CX22702
 config DVB_CX22702
 	tristate "Conexant cx22702 demodulator (OFDM)"
 	tristate "Conexant cx22702 demodulator (OFDM)"
-	depends on DVB_CORE
+	depends on DVB_CORE && I2C
 	help
 	help
 	  A DVB-T tuner module. Say Y when you want to support this frontend.
 	  A DVB-T tuner module. Say Y when you want to support this frontend.
 
 
 config DVB_L64781
 config DVB_L64781
 	tristate "LSI L64781"
 	tristate "LSI L64781"
-	depends on DVB_CORE
+	depends on DVB_CORE && I2C
 	help
 	help
 	  A DVB-T tuner module. Say Y when you want to support this frontend.
 	  A DVB-T tuner module. Say Y when you want to support this frontend.
 
 
 config DVB_TDA1004X
 config DVB_TDA1004X
 	tristate "Philips TDA10045H/TDA10046H based"
 	tristate "Philips TDA10045H/TDA10046H based"
-	depends on DVB_CORE
+	depends on DVB_CORE && I2C
 	select FW_LOADER
 	select FW_LOADER
 	help
 	help
 	  A DVB-T tuner module. Say Y when you want to support this frontend.
 	  A DVB-T tuner module. Say Y when you want to support this frontend.
@@ -106,32 +106,32 @@ config DVB_TDA1004X
 
 
 config DVB_NXT6000
 config DVB_NXT6000
 	tristate "NxtWave Communications NXT6000 based"
 	tristate "NxtWave Communications NXT6000 based"
-	depends on DVB_CORE
+	depends on DVB_CORE && I2C
 	help
 	help
 	  A DVB-T tuner module. Say Y when you want to support this frontend.
 	  A DVB-T tuner module. Say Y when you want to support this frontend.
 
 
 config DVB_MT352
 config DVB_MT352
 	tristate "Zarlink MT352 based"
 	tristate "Zarlink MT352 based"
-	depends on DVB_CORE
+	depends on DVB_CORE && I2C
 	help
 	help
 	  A DVB-T tuner module. Say Y when you want to support this frontend.
 	  A DVB-T tuner module. Say Y when you want to support this frontend.
 
 
 config DVB_ZL10353
 config DVB_ZL10353
 	tristate "Zarlink ZL10353 based"
 	tristate "Zarlink ZL10353 based"
-	depends on DVB_CORE
+	depends on DVB_CORE && I2C
 	help
 	help
 	  A DVB-T tuner module. Say Y when you want to support this frontend.
 	  A DVB-T tuner module. Say Y when you want to support this frontend.
 
 
 config DVB_DIB3000MB
 config DVB_DIB3000MB
 	tristate "DiBcom 3000M-B"
 	tristate "DiBcom 3000M-B"
-	depends on DVB_CORE
+	depends on DVB_CORE && I2C
 	help
 	help
 	  A DVB-T tuner module. Designed for mobile usage. Say Y when you want
 	  A DVB-T tuner module. Designed for mobile usage. Say Y when you want
 	  to support this frontend.
 	  to support this frontend.
 
 
 config DVB_DIB3000MC
 config DVB_DIB3000MC
 	tristate "DiBcom 3000P/M-C"
 	tristate "DiBcom 3000P/M-C"
-	depends on DVB_CORE
+	depends on DVB_CORE && I2C
 	help
 	help
 	  A DVB-T tuner module. Designed for mobile usage. Say Y when you want
 	  A DVB-T tuner module. Designed for mobile usage. Say Y when you want
 	  to support this frontend.
 	  to support this frontend.
@@ -141,19 +141,19 @@ comment "DVB-C (cable) frontends"
 
 
 config DVB_VES1820
 config DVB_VES1820
 	tristate "VLSI VES1820 based"
 	tristate "VLSI VES1820 based"
-	depends on DVB_CORE
+	depends on DVB_CORE && I2C
 	help
 	help
 	  A DVB-C tuner module. Say Y when you want to support this frontend.
 	  A DVB-C tuner module. Say Y when you want to support this frontend.
 
 
 config DVB_TDA10021
 config DVB_TDA10021
 	tristate "Philips TDA10021 based"
 	tristate "Philips TDA10021 based"
-	depends on DVB_CORE
+	depends on DVB_CORE && I2C
 	help
 	help
 	  A DVB-C tuner module. Say Y when you want to support this frontend.
 	  A DVB-C tuner module. Say Y when you want to support this frontend.
 
 
 config DVB_STV0297
 config DVB_STV0297
 	tristate "ST STV0297 based"
 	tristate "ST STV0297 based"
-	depends on DVB_CORE
+	depends on DVB_CORE && I2C
 	help
 	help
 	  A DVB-C tuner module. Say Y when you want to support this frontend.
 	  A DVB-C tuner module. Say Y when you want to support this frontend.
 
 
@@ -162,7 +162,7 @@ comment "ATSC (North American/Korean Terrestrial/Cable DTV) frontends"
 
 
 config DVB_NXT200X
 config DVB_NXT200X
 	tristate "NxtWave Communications NXT2002/NXT2004 based"
 	tristate "NxtWave Communications NXT2002/NXT2004 based"
-	depends on DVB_CORE
+	depends on DVB_CORE && I2C
 	select FW_LOADER
 	select FW_LOADER
 	help
 	help
 	  An ATSC 8VSB and QAM64/256 tuner module. Say Y when you want
 	  An ATSC 8VSB and QAM64/256 tuner module. Say Y when you want
@@ -176,7 +176,7 @@ config DVB_NXT200X
 
 
 config DVB_OR51211
 config DVB_OR51211
 	tristate "Oren OR51211 based"
 	tristate "Oren OR51211 based"
-	depends on DVB_CORE
+	depends on DVB_CORE && I2C
 	select FW_LOADER
 	select FW_LOADER
 	help
 	help
 	  An ATSC 8VSB tuner module. Say Y when you want to support this frontend.
 	  An ATSC 8VSB tuner module. Say Y when you want to support this frontend.
@@ -188,7 +188,7 @@ config DVB_OR51211
 
 
 config DVB_OR51132
 config DVB_OR51132
 	tristate "Oren OR51132 based"
 	tristate "Oren OR51132 based"
-	depends on DVB_CORE
+	depends on DVB_CORE && I2C
 	select FW_LOADER
 	select FW_LOADER
 	help
 	help
 	  An ATSC 8VSB and QAM64/256 tuner module. Say Y when you want
 	  An ATSC 8VSB and QAM64/256 tuner module. Say Y when you want
@@ -203,7 +203,7 @@ config DVB_OR51132
 
 
 config DVB_BCM3510
 config DVB_BCM3510
 	tristate "Broadcom BCM3510"
 	tristate "Broadcom BCM3510"
-	depends on DVB_CORE
+	depends on DVB_CORE && I2C
 	select FW_LOADER
 	select FW_LOADER
 	help
 	help
 	  An ATSC 8VSB/16VSB and QAM64/256 tuner module. Say Y when you want to
 	  An ATSC 8VSB/16VSB and QAM64/256 tuner module. Say Y when you want to
@@ -211,7 +211,7 @@ config DVB_BCM3510
 
 
 config DVB_LGDT330X
 config DVB_LGDT330X
 	tristate "LG Electronics LGDT3302/LGDT3303 based"
 	tristate "LG Electronics LGDT3302/LGDT3303 based"
-	depends on DVB_CORE
+	depends on DVB_CORE && I2C
 	help
 	help
 	  An ATSC 8VSB and QAM64/256 tuner module. Say Y when you want
 	  An ATSC 8VSB and QAM64/256 tuner module. Say Y when you want
 	  to support this frontend.
 	  to support this frontend.
@@ -220,15 +220,19 @@ config DVB_LGDT330X
 comment "Miscellaneous devices"
 comment "Miscellaneous devices"
 	depends on DVB_CORE
 	depends on DVB_CORE
 
 
+config DVB_PLL
+	tristate
+	depends on DVB_CORE && I2C
+
 config DVB_LNBP21
 config DVB_LNBP21
 	tristate "LNBP21 SEC controller"
 	tristate "LNBP21 SEC controller"
-	depends on DVB_CORE
+	depends on DVB_CORE && I2C
 	help
 	help
 	  An SEC control chip.
 	  An SEC control chip.
 
 
 config DVB_ISL6421
 config DVB_ISL6421
 	tristate "ISL6421 SEC controller"
 	tristate "ISL6421 SEC controller"
-	depends on DVB_CORE
+	depends on DVB_CORE && I2C
 	help
 	help
 	  An SEC control chip.
 	  An SEC control chip.
 
 

+ 1 - 1
drivers/media/dvb/frontends/Makefile

@@ -4,7 +4,7 @@
 
 
 EXTRA_CFLAGS = -Idrivers/media/dvb/dvb-core/
 EXTRA_CFLAGS = -Idrivers/media/dvb/dvb-core/
 
 
-obj-$(CONFIG_DVB_CORE) += dvb-pll.o
+obj-$(CONFIG_DVB_PLL) += dvb-pll.o
 obj-$(CONFIG_DVB_STV0299) += stv0299.o
 obj-$(CONFIG_DVB_STV0299) += stv0299.o
 obj-$(CONFIG_DVB_SP8870) += sp8870.o
 obj-$(CONFIG_DVB_SP8870) += sp8870.o
 obj-$(CONFIG_DVB_CX22700) += cx22700.o
 obj-$(CONFIG_DVB_CX22700) += cx22700.o

+ 1 - 0
drivers/media/dvb/pluto2/Kconfig

@@ -2,6 +2,7 @@ config DVB_PLUTO2
 	tristate "Pluto2 cards"
 	tristate "Pluto2 cards"
 	depends on DVB_CORE && PCI && I2C
 	depends on DVB_CORE && PCI && I2C
 	select I2C_ALGOBIT
 	select I2C_ALGOBIT
+	select DVB_PLL
 	select DVB_TDA1004X
 	select DVB_TDA1004X
 	help
 	help
 	  Support for PCI cards based on the Pluto2 FPGA like the Satelco
 	  Support for PCI cards based on the Pluto2 FPGA like the Satelco

+ 5 - 0
drivers/media/dvb/ttpci/Kconfig

@@ -3,6 +3,7 @@ config DVB_AV7110
 	depends on DVB_CORE && PCI && I2C && VIDEO_V4L1
 	depends on DVB_CORE && PCI && I2C && VIDEO_V4L1
 	select FW_LOADER
 	select FW_LOADER
 	select VIDEO_SAA7146_VV
 	select VIDEO_SAA7146_VV
+	select DVB_PLL
 	select DVB_VES1820
 	select DVB_VES1820
 	select DVB_VES1X93
 	select DVB_VES1X93
 	select DVB_STV0299
 	select DVB_STV0299
@@ -61,6 +62,7 @@ config DVB_BUDGET
 	tristate "Budget cards"
 	tristate "Budget cards"
 	depends on DVB_CORE && PCI && I2C && VIDEO_V4L1
 	depends on DVB_CORE && PCI && I2C && VIDEO_V4L1
 	select VIDEO_SAA7146
 	select VIDEO_SAA7146
+	select DVB_PLL
 	select DVB_STV0299
 	select DVB_STV0299
 	select DVB_VES1X93
 	select DVB_VES1X93
 	select DVB_VES1820
 	select DVB_VES1820
@@ -83,6 +85,7 @@ config DVB_BUDGET_CI
 	tristate "Budget cards with onboard CI connector"
 	tristate "Budget cards with onboard CI connector"
 	depends on DVB_CORE && PCI && I2C && VIDEO_V4L1
 	depends on DVB_CORE && PCI && I2C && VIDEO_V4L1
 	select VIDEO_SAA7146
 	select VIDEO_SAA7146
+	select DVB_PLL
 	select DVB_STV0297
 	select DVB_STV0297
 	select DVB_STV0299
 	select DVB_STV0299
 	select DVB_TDA1004X
 	select DVB_TDA1004X
@@ -104,6 +107,7 @@ config DVB_BUDGET_AV
 	tristate "Budget cards with analog video inputs"
 	tristate "Budget cards with analog video inputs"
 	depends on DVB_CORE && PCI && I2C && VIDEO_V4L1
 	depends on DVB_CORE && PCI && I2C && VIDEO_V4L1
 	select VIDEO_SAA7146_VV
 	select VIDEO_SAA7146_VV
+	select DVB_PLL
 	select DVB_STV0299
 	select DVB_STV0299
 	select DVB_TDA1004X
 	select DVB_TDA1004X
 	select DVB_TDA10021
 	select DVB_TDA10021
@@ -122,6 +126,7 @@ config DVB_BUDGET_PATCH
 	tristate "AV7110 cards with Budget Patch"
 	tristate "AV7110 cards with Budget Patch"
 	depends on DVB_CORE && DVB_BUDGET && VIDEO_V4L1
 	depends on DVB_CORE && DVB_BUDGET && VIDEO_V4L1
 	select DVB_AV7110
 	select DVB_AV7110
+	select DVB_PLL
 	select DVB_STV0299
 	select DVB_STV0299
 	select DVB_VES1X93
 	select DVB_VES1X93
 	select DVB_TDA8083
 	select DVB_TDA8083

+ 2 - 1
drivers/media/dvb/ttusb-budget/Kconfig

@@ -1,6 +1,7 @@
 config DVB_TTUSB_BUDGET
 config DVB_TTUSB_BUDGET
 	tristate "Technotrend/Hauppauge Nova-USB devices"
 	tristate "Technotrend/Hauppauge Nova-USB devices"
-	depends on DVB_CORE && USB
+	depends on DVB_CORE && USB && I2C
+	select DVB_PLL
 	select DVB_CX22700
 	select DVB_CX22700
 	select DVB_TDA1004X
 	select DVB_TDA1004X
 	select DVB_VES1820
 	select DVB_VES1820

+ 4 - 4
drivers/media/video/Kconfig

@@ -260,7 +260,7 @@ source "drivers/media/video/saa7134/Kconfig"
 
 
 config VIDEO_MXB
 config VIDEO_MXB
 	tristate "Siemens-Nixdorf 'Multimedia eXtension Board'"
 	tristate "Siemens-Nixdorf 'Multimedia eXtension Board'"
-	depends on PCI && VIDEO_V4L1
+	depends on PCI && VIDEO_V4L1 && I2C
 	select VIDEO_SAA7146_VV
 	select VIDEO_SAA7146_VV
 	select VIDEO_TUNER
 	select VIDEO_TUNER
 	---help---
 	---help---
@@ -272,7 +272,7 @@ config VIDEO_MXB
 
 
 config VIDEO_DPC
 config VIDEO_DPC
 	tristate "Philips-Semiconductors 'dpc7146 demonstration board'"
 	tristate "Philips-Semiconductors 'dpc7146 demonstration board'"
-	depends on PCI && VIDEO_V4L1
+	depends on PCI && VIDEO_V4L1 && I2C
 	select VIDEO_SAA7146_VV
 	select VIDEO_SAA7146_VV
 	select VIDEO_V4L2
 	select VIDEO_V4L2
 	---help---
 	---help---
@@ -287,7 +287,7 @@ config VIDEO_DPC
 
 
 config VIDEO_HEXIUM_ORION
 config VIDEO_HEXIUM_ORION
 	tristate "Hexium HV-PCI6 and Orion frame grabber"
 	tristate "Hexium HV-PCI6 and Orion frame grabber"
-	depends on PCI && VIDEO_V4L1
+	depends on PCI && VIDEO_V4L1 && I2C
 	select VIDEO_SAA7146_VV
 	select VIDEO_SAA7146_VV
 	select VIDEO_V4L2
 	select VIDEO_V4L2
 	---help---
 	---help---
@@ -299,7 +299,7 @@ config VIDEO_HEXIUM_ORION
 
 
 config VIDEO_HEXIUM_GEMINI
 config VIDEO_HEXIUM_GEMINI
 	tristate "Hexium Gemini frame grabber"
 	tristate "Hexium Gemini frame grabber"
-	depends on PCI && VIDEO_V4L1
+	depends on PCI && VIDEO_V4L1 && I2C
 	select VIDEO_SAA7146_VV
 	select VIDEO_SAA7146_VV
 	select VIDEO_V4L2
 	select VIDEO_V4L2
 	---help---
 	---help---

+ 1 - 0
drivers/media/video/bt8xx/bttv-input.c

@@ -303,6 +303,7 @@ int bttv_input_init(struct bttv *btv)
 		ir->mask_keyup   = 0x010000;
 		ir->mask_keyup   = 0x010000;
 		ir->polling      = 50; // ms
 		ir->polling      = 50; // ms
 		break;
 		break;
+	case BTTV_BOARD_PV_M4900:
 	case BTTV_BOARD_PV_BT878P_9B:
 	case BTTV_BOARD_PV_BT878P_9B:
 	case BTTV_BOARD_PV_BT878P_PLUS:
 	case BTTV_BOARD_PV_BT878P_PLUS:
 		ir_codes         = ir_codes_pixelview;
 		ir_codes         = ir_codes_pixelview;

+ 1 - 0
drivers/media/video/cx88/Kconfig

@@ -51,6 +51,7 @@ config VIDEO_CX88_DVB
 	tristate "DVB/ATSC Support for cx2388x based TV cards"
 	tristate "DVB/ATSC Support for cx2388x based TV cards"
 	depends on VIDEO_CX88 && DVB_CORE
 	depends on VIDEO_CX88 && DVB_CORE
 	select VIDEO_BUF_DVB
 	select VIDEO_BUF_DVB
+	select DVB_PLL
 	---help---
 	---help---
 	  This adds support for DVB/ATSC cards based on the
 	  This adds support for DVB/ATSC cards based on the
 	  Conexant 2388x chip.
 	  Conexant 2388x chip.

+ 1 - 0
drivers/media/video/saa7134/Kconfig

@@ -40,6 +40,7 @@ config VIDEO_SAA7134_DVB
 	depends on VIDEO_SAA7134 && DVB_CORE
 	depends on VIDEO_SAA7134 && DVB_CORE
 	select VIDEO_BUF_DVB
 	select VIDEO_BUF_DVB
 	select FW_LOADER
 	select FW_LOADER
+	select DVB_PLL
 	---help---
 	---help---
 	  This adds support for DVB cards based on the
 	  This adds support for DVB cards based on the
 	  Philips saa7134 chip.
 	  Philips saa7134 chip.

+ 8 - 2
drivers/media/video/tuner-types.c

@@ -926,11 +926,17 @@ static struct tuner_params tuner_lg_tdvs_h06xf_params[] = {
 
 
 /* ------------ TUNER_YMEC_TVF66T5_B_DFF - Philips PAL ------------ */
 /* ------------ TUNER_YMEC_TVF66T5_B_DFF - Philips PAL ------------ */
 
 
+static struct tuner_range tuner_ymec_tvf66t5_b_dff_pal_ranges[] = {
+	{ 16 * 160.25 /*MHz*/, 0x8e, 0x01, },
+	{ 16 * 464.25 /*MHz*/, 0x8e, 0x02, },
+	{ 16 * 999.99        , 0x8e, 0x08, },
+};
+
 static struct tuner_params tuner_ymec_tvf66t5_b_dff_params[] = {
 static struct tuner_params tuner_ymec_tvf66t5_b_dff_params[] = {
 	{
 	{
 		.type   = TUNER_PARAM_TYPE_PAL,
 		.type   = TUNER_PARAM_TYPE_PAL,
-		.ranges = tuner_tena_9533_di_pal_ranges,
-		.count  = ARRAY_SIZE(tuner_tena_9533_di_pal_ranges),
+		.ranges = tuner_ymec_tvf66t5_b_dff_pal_ranges,
+		.count  = ARRAY_SIZE(tuner_ymec_tvf66t5_b_dff_pal_ranges),
 	},
 	},
 };
 };
 
 

+ 1 - 1
drivers/media/video/zoran.h

@@ -267,7 +267,7 @@ struct zoran_v4l_settings {
 };
 };
 
 
 /* whoops, this one is undeclared if !v4l2 */
 /* whoops, this one is undeclared if !v4l2 */
-#ifndef HAVE_V4L2
+#ifndef CONFIG_VIDEO_V4L2
 struct v4l2_jpegcompression {
 struct v4l2_jpegcompression {
 	int quality;
 	int quality;
 	int APPn;
 	int APPn;

+ 11 - 11
drivers/media/video/zoran_driver.c

@@ -86,7 +86,7 @@
 #include "zoran_device.h"
 #include "zoran_device.h"
 #include "zoran_card.h"
 #include "zoran_card.h"
 
 
-#ifdef HAVE_V4L2
+#ifdef CONFIG_VIDEO_V4L2
 	/* we declare some card type definitions here, they mean
 	/* we declare some card type definitions here, they mean
 	 * the same as the v4l1 ZORAN_VID_TYPE above, except it's v4l2 */
 	 * the same as the v4l1 ZORAN_VID_TYPE above, except it's v4l2 */
 #define ZORAN_V4L2_VID_FLAGS ( \
 #define ZORAN_V4L2_VID_FLAGS ( \
@@ -103,7 +103,7 @@ const struct zoran_format zoran_formats[] = {
 	{
 	{
 		.name = "15-bit RGB",
 		.name = "15-bit RGB",
 		.palette = VIDEO_PALETTE_RGB555,
 		.palette = VIDEO_PALETTE_RGB555,
-#ifdef HAVE_V4L2
+#ifdef CONFIG_VIDEO_V4L2
 #ifdef __LITTLE_ENDIAN
 #ifdef __LITTLE_ENDIAN
 		.fourcc = V4L2_PIX_FMT_RGB555,
 		.fourcc = V4L2_PIX_FMT_RGB555,
 #else
 #else
@@ -117,7 +117,7 @@ const struct zoran_format zoran_formats[] = {
 	}, {
 	}, {
 		.name = "16-bit RGB",
 		.name = "16-bit RGB",
 		.palette = VIDEO_PALETTE_RGB565,
 		.palette = VIDEO_PALETTE_RGB565,
-#ifdef HAVE_V4L2
+#ifdef CONFIG_VIDEO_V4L2
 #ifdef __LITTLE_ENDIAN
 #ifdef __LITTLE_ENDIAN
 		.fourcc = V4L2_PIX_FMT_RGB565,
 		.fourcc = V4L2_PIX_FMT_RGB565,
 #else
 #else
@@ -131,7 +131,7 @@ const struct zoran_format zoran_formats[] = {
 	}, {
 	}, {
 		.name = "24-bit RGB",
 		.name = "24-bit RGB",
 		.palette = VIDEO_PALETTE_RGB24,
 		.palette = VIDEO_PALETTE_RGB24,
-#ifdef HAVE_V4L2
+#ifdef CONFIG_VIDEO_V4L2
 #ifdef __LITTLE_ENDIAN
 #ifdef __LITTLE_ENDIAN
 		.fourcc = V4L2_PIX_FMT_BGR24,
 		.fourcc = V4L2_PIX_FMT_BGR24,
 #else
 #else
@@ -145,7 +145,7 @@ const struct zoran_format zoran_formats[] = {
 	}, {
 	}, {
 		.name = "32-bit RGB",
 		.name = "32-bit RGB",
 		.palette = VIDEO_PALETTE_RGB32,
 		.palette = VIDEO_PALETTE_RGB32,
-#ifdef HAVE_V4L2
+#ifdef CONFIG_VIDEO_V4L2
 #ifdef __LITTLE_ENDIAN
 #ifdef __LITTLE_ENDIAN
 		.fourcc = V4L2_PIX_FMT_BGR32,
 		.fourcc = V4L2_PIX_FMT_BGR32,
 #else
 #else
@@ -159,7 +159,7 @@ const struct zoran_format zoran_formats[] = {
 	}, {
 	}, {
 		.name = "4:2:2, packed, YUYV",
 		.name = "4:2:2, packed, YUYV",
 		.palette = VIDEO_PALETTE_YUV422,
 		.palette = VIDEO_PALETTE_YUV422,
-#ifdef HAVE_V4L2
+#ifdef CONFIG_VIDEO_V4L2
 		.fourcc = V4L2_PIX_FMT_YUYV,
 		.fourcc = V4L2_PIX_FMT_YUYV,
 		.colorspace = V4L2_COLORSPACE_SMPTE170M,
 		.colorspace = V4L2_COLORSPACE_SMPTE170M,
 #endif
 #endif
@@ -169,7 +169,7 @@ const struct zoran_format zoran_formats[] = {
 	}, {
 	}, {
 		.name = "Hardware-encoded Motion-JPEG",
 		.name = "Hardware-encoded Motion-JPEG",
 		.palette = -1,
 		.palette = -1,
-#ifdef HAVE_V4L2
+#ifdef CONFIG_VIDEO_V4L2
 		.fourcc = V4L2_PIX_FMT_MJPEG,
 		.fourcc = V4L2_PIX_FMT_MJPEG,
 		.colorspace = V4L2_COLORSPACE_SMPTE170M,
 		.colorspace = V4L2_COLORSPACE_SMPTE170M,
 #endif
 #endif
@@ -210,7 +210,7 @@ static int lock_norm = 0;	/* 1=Don't change TV standard (norm) */
 module_param(lock_norm, int, 0);
 module_param(lock_norm, int, 0);
 MODULE_PARM_DESC(lock_norm, "Users can't change norm");
 MODULE_PARM_DESC(lock_norm, "Users can't change norm");
 
 
-#ifdef HAVE_V4L2
+#ifdef CONFIG_VIDEO_V4L2
 	/* small helper function for calculating buffersizes for v4l2
 	/* small helper function for calculating buffersizes for v4l2
 	 * we calculate the nearest higher power-of-two, which
 	 * we calculate the nearest higher power-of-two, which
 	 * will be the recommended buffersize */
 	 * will be the recommended buffersize */
@@ -1761,7 +1761,7 @@ setup_overlay (struct file *file,
 	return wait_grab_pending(zr);
 	return wait_grab_pending(zr);
 }
 }
 
 
-#ifdef HAVE_V4L2
+#ifdef CONFIG_VIDEO_V4L2
 	/* get the status of a buffer in the clients buffer queue */
 	/* get the status of a buffer in the clients buffer queue */
 static int
 static int
 zoran_v4l2_buffer_status (struct file        *file,
 zoran_v4l2_buffer_status (struct file        *file,
@@ -2676,7 +2676,7 @@ zoran_do_ioctl (struct inode *inode,
 	}
 	}
 		break;
 		break;
 
 
-#ifdef HAVE_V4L2
+#ifdef CONFIG_VIDEO_V4L2
 
 
 		/* The new video4linux2 capture interface - much nicer than video4linux1, since
 		/* The new video4linux2 capture interface - much nicer than video4linux1, since
 		 * it allows for integrating the JPEG capturing calls inside standard v4l2
 		 * it allows for integrating the JPEG capturing calls inside standard v4l2
@@ -4689,7 +4689,7 @@ static struct file_operations zoran_fops = {
 struct video_device zoran_template __devinitdata = {
 struct video_device zoran_template __devinitdata = {
 	.name = ZORAN_NAME,
 	.name = ZORAN_NAME,
 	.type = ZORAN_VID_TYPE,
 	.type = ZORAN_VID_TYPE,
-#ifdef HAVE_V4L2
+#ifdef CONFIG_VIDEO_V4L2
 	.type2 = ZORAN_V4L2_VID_FLAGS,
 	.type2 = ZORAN_V4L2_VID_FLAGS,
 #endif
 #endif
 	.hardware = ZORAN_HARDWARE,
 	.hardware = ZORAN_HARDWARE,

+ 2 - 2
drivers/serial/sh-sci.c

@@ -1579,7 +1579,7 @@ static int __init serial_console_setup(struct console *co, char *options)
 	h8300_sci_enable(port, sci_enable);
 	h8300_sci_enable(port, sci_enable);
 #endif
 #endif
 #elif defined(CONFIG_SUPERH64)
 #elif defined(CONFIG_SUPERH64)
-	port->uartclk = current_cpu_info.module_clock * 16;
+	port->uartclk = current_cpu_data.module_clock * 16;
 #else
 #else
 	{
 	{
 		struct clk *clk = clk_get("module_clk");
 		struct clk *clk = clk_get("module_clk");
@@ -1720,7 +1720,7 @@ static int __init sci_init(void)
 #if defined(__H8300H__) || defined(__H8300S__)
 #if defined(__H8300H__) || defined(__H8300S__)
 			sciport->port.uartclk = CONFIG_CPU_CLOCK;
 			sciport->port.uartclk = CONFIG_CPU_CLOCK;
 #elif defined(CONFIG_SUPERH64)
 #elif defined(CONFIG_SUPERH64)
-			sciport->port.uartclk = current_cpu_info.module_clock * 16;
+			sciport->port.uartclk = current_cpu_data.module_clock * 16;
 #else
 #else
 			struct clk *clk = clk_get("module_clk");
 			struct clk *clk = clk_get("module_clk");
 			sciport->port.uartclk = clk_get_rate(clk) * 16;
 			sciport->port.uartclk = clk_get_rate(clk) * 16;

+ 6 - 6
drivers/usb/input/yealink.c

@@ -810,12 +810,9 @@ static int usb_cleanup(struct yealink_dev *yld, int err)
 	if (yld == NULL)
 	if (yld == NULL)
 		return err;
 		return err;
 
 
-        if (yld->urb_irq) {
-		usb_kill_urb(yld->urb_irq);
-		usb_free_urb(yld->urb_irq);
-	}
-        if (yld->urb_ctl)
-		usb_free_urb(yld->urb_ctl);
+	usb_kill_urb(yld->urb_irq);	/* parameter validation in core/urb */
+	usb_kill_urb(yld->urb_ctl);	/* parameter validation in core/urb */
+
         if (yld->idev) {
         if (yld->idev) {
 		if (err)
 		if (err)
 			input_free_device(yld->idev);
 			input_free_device(yld->idev);
@@ -831,6 +828,9 @@ static int usb_cleanup(struct yealink_dev *yld, int err)
 	if (yld->irq_data)
 	if (yld->irq_data)
 		usb_buffer_free(yld->udev, USB_PKT_LEN,
 		usb_buffer_free(yld->udev, USB_PKT_LEN,
 				yld->irq_data, yld->irq_dma);
 				yld->irq_data, yld->irq_dma);
+
+	usb_free_urb(yld->urb_irq);	/* parameter validation in core/urb */
+	usb_free_urb(yld->urb_ctl);	/* parameter validation in core/urb */
 	kfree(yld);
 	kfree(yld);
 	return err;
 	return err;
 }
 }

+ 3 - 1
drivers/usb/serial/usb-serial.c

@@ -464,8 +464,10 @@ static int serial_read_proc (char *page, char **start, off_t off, int count, int
 		length += sprintf (page+length, " path:%s", tmp);
 		length += sprintf (page+length, " path:%s", tmp);
 			
 			
 		length += sprintf (page+length, "\n");
 		length += sprintf (page+length, "\n");
-		if ((length + begin) > (off + count))
+		if ((length + begin) > (off + count)) {
+			usb_serial_put(serial);
 			goto done;
 			goto done;
+		}
 		if ((length + begin) < off) {
 		if ((length + begin) < off) {
 			begin += length;
 			begin += length;
 			length = 0;
 			length = 0;

+ 7 - 4
fs/cifs/readdir.c

@@ -82,7 +82,6 @@ static int construct_dentry(struct qstr *qstring, struct file *file,
 			if(*ptmp_inode == NULL)
 			if(*ptmp_inode == NULL)
 				return rc;
 				return rc;
 			rc = 1;
 			rc = 1;
-			d_instantiate(tmp_dentry, *ptmp_inode);
 		}
 		}
 	} else {
 	} else {
 		tmp_dentry = d_alloc(file->f_dentry, qstring);
 		tmp_dentry = d_alloc(file->f_dentry, qstring);
@@ -99,9 +98,7 @@ static int construct_dentry(struct qstr *qstring, struct file *file,
 			tmp_dentry->d_op = &cifs_dentry_ops;
 			tmp_dentry->d_op = &cifs_dentry_ops;
 		if(*ptmp_inode == NULL)
 		if(*ptmp_inode == NULL)
 			return rc;
 			return rc;
-		rc = 1;
-		d_instantiate(tmp_dentry, *ptmp_inode);
-		d_rehash(tmp_dentry);
+		rc = 2;
 	}
 	}
 
 
 	tmp_dentry->d_time = jiffies;
 	tmp_dentry->d_time = jiffies;
@@ -870,6 +867,12 @@ static int cifs_filldir(char *pfindEntry, struct file *file,
 				pfindEntry, &obj_type, rc);
 				pfindEntry, &obj_type, rc);
 	else
 	else
 		fill_in_inode(tmp_inode, 1 /* NT */, pfindEntry, &obj_type, rc);
 		fill_in_inode(tmp_inode, 1 /* NT */, pfindEntry, &obj_type, rc);
+
+	if(rc) /* new inode - needs to be tied to dentry */ {
+		d_instantiate(tmp_dentry, tmp_inode);
+		if(rc == 2)
+			d_rehash(tmp_dentry);
+	}
 	
 	
 	
 	
 	rc = filldir(direntry,qstring.name,qstring.len,file->f_pos,
 	rc = filldir(direntry,qstring.name,qstring.len,file->f_pos,

+ 13 - 5
fs/xfs/linux-2.6/xfs_aops.c

@@ -1390,11 +1390,19 @@ xfs_vm_direct_IO(
 
 
 	iocb->private = xfs_alloc_ioend(inode, IOMAP_UNWRITTEN);
 	iocb->private = xfs_alloc_ioend(inode, IOMAP_UNWRITTEN);
 
 
-	ret = blockdev_direct_IO_own_locking(rw, iocb, inode,
-		iomap.iomap_target->bt_bdev,
-		iov, offset, nr_segs,
-		xfs_get_blocks_direct,
-		xfs_end_io_direct);
+	if (rw == WRITE) {
+		ret = blockdev_direct_IO_own_locking(rw, iocb, inode,
+			iomap.iomap_target->bt_bdev,
+			iov, offset, nr_segs,
+			xfs_get_blocks_direct,
+			xfs_end_io_direct);
+	} else {
+		ret = blockdev_direct_IO_no_locking(rw, iocb, inode,
+			iomap.iomap_target->bt_bdev,
+			iov, offset, nr_segs,
+			xfs_get_blocks_direct,
+			xfs_end_io_direct);
+	}
 
 
 	if (unlikely(ret <= 0 && iocb->private))
 	if (unlikely(ret <= 0 && iocb->private))
 		xfs_destroy_ioend(iocb->private);
 		xfs_destroy_ioend(iocb->private);

+ 22 - 5
fs/xfs/linux-2.6/xfs_lrw.c

@@ -264,7 +264,9 @@ xfs_read(
 					dmflags, &locktype);
 					dmflags, &locktype);
 		if (ret) {
 		if (ret) {
 			xfs_iunlock(ip, XFS_IOLOCK_SHARED);
 			xfs_iunlock(ip, XFS_IOLOCK_SHARED);
-			goto unlock_mutex;
+			if (unlikely(ioflags & IO_ISDIRECT))
+				mutex_unlock(&inode->i_mutex);
+			return ret;
 		}
 		}
 	}
 	}
 
 
@@ -272,6 +274,9 @@ xfs_read(
 		bhv_vop_flushinval_pages(vp, ctooff(offtoct(*offset)),
 		bhv_vop_flushinval_pages(vp, ctooff(offtoct(*offset)),
 						-1, FI_REMAPF_LOCKED);
 						-1, FI_REMAPF_LOCKED);
 
 
+	if (unlikely(ioflags & IO_ISDIRECT))
+		mutex_unlock(&inode->i_mutex);
+
 	xfs_rw_enter_trace(XFS_READ_ENTER, &ip->i_iocore,
 	xfs_rw_enter_trace(XFS_READ_ENTER, &ip->i_iocore,
 				(void *)iovp, segs, *offset, ioflags);
 				(void *)iovp, segs, *offset, ioflags);
 	ret = __generic_file_aio_read(iocb, iovp, segs, offset);
 	ret = __generic_file_aio_read(iocb, iovp, segs, offset);
@@ -281,10 +286,6 @@ xfs_read(
 		XFS_STATS_ADD(xs_read_bytes, ret);
 		XFS_STATS_ADD(xs_read_bytes, ret);
 
 
 	xfs_iunlock(ip, XFS_IOLOCK_SHARED);
 	xfs_iunlock(ip, XFS_IOLOCK_SHARED);
-
-unlock_mutex:
-	if (unlikely(ioflags & IO_ISDIRECT))
-		mutex_unlock(&inode->i_mutex);
 	return ret;
 	return ret;
 }
 }
 
 
@@ -390,6 +391,8 @@ xfs_splice_write(
 	xfs_inode_t		*ip = XFS_BHVTOI(bdp);
 	xfs_inode_t		*ip = XFS_BHVTOI(bdp);
 	xfs_mount_t		*mp = ip->i_mount;
 	xfs_mount_t		*mp = ip->i_mount;
 	ssize_t			ret;
 	ssize_t			ret;
+	struct inode		*inode = outfilp->f_mapping->host;
+	xfs_fsize_t		isize;
 
 
 	XFS_STATS_INC(xs_write_calls);
 	XFS_STATS_INC(xs_write_calls);
 	if (XFS_FORCED_SHUTDOWN(ip->i_mount))
 	if (XFS_FORCED_SHUTDOWN(ip->i_mount))
@@ -416,6 +419,20 @@ xfs_splice_write(
 	if (ret > 0)
 	if (ret > 0)
 		XFS_STATS_ADD(xs_write_bytes, ret);
 		XFS_STATS_ADD(xs_write_bytes, ret);
 
 
+	isize = i_size_read(inode);
+	if (unlikely(ret < 0 && ret != -EFAULT && *ppos > isize))
+		*ppos = isize;
+
+	if (*ppos > ip->i_d.di_size) {
+		xfs_ilock(ip, XFS_ILOCK_EXCL);
+		if (*ppos > ip->i_d.di_size) {
+			ip->i_d.di_size = *ppos;
+			i_size_write(inode, *ppos);
+			ip->i_update_core = 1;
+			ip->i_update_size = 1;
+		}
+		xfs_iunlock(ip, XFS_ILOCK_EXCL);
+	}
 	xfs_iunlock(ip, XFS_IOLOCK_EXCL);
 	xfs_iunlock(ip, XFS_IOLOCK_EXCL);
 	return ret;
 	return ret;
 }
 }

+ 1 - 1
fs/xfs/quota/xfs_qm_bhv.c

@@ -203,7 +203,7 @@ xfs_qm_statvfs(
 	if (error || !vnode)
 	if (error || !vnode)
 		return error;
 		return error;
 
 
-	mp = XFS_BHVTOM(bhv);
+	mp = xfs_vfstom(bhvtovfs(bhv));
 	ip = xfs_vtoi(vnode);
 	ip = xfs_vtoi(vnode);
 
 
 	if (!(ip->i_d.di_flags & XFS_DIFLAG_PROJINHERIT))
 	if (!(ip->i_d.di_flags & XFS_DIFLAG_PROJINHERIT))

+ 20 - 0
fs/xfs/xfs_alloc.h

@@ -43,6 +43,26 @@ typedef enum xfs_alloctype
 #define	XFS_ALLOC_FLAG_TRYLOCK	0x00000001  /* use trylock for buffer locking */
 #define	XFS_ALLOC_FLAG_TRYLOCK	0x00000001  /* use trylock for buffer locking */
 #define	XFS_ALLOC_FLAG_FREEING	0x00000002  /* indicate caller is freeing extents*/
 #define	XFS_ALLOC_FLAG_FREEING	0x00000002  /* indicate caller is freeing extents*/
 
 
+/*
+ * In order to avoid ENOSPC-related deadlock caused by
+ * out-of-order locking of AGF buffer (PV 947395), we place
+ * constraints on the relationship among actual allocations for
+ * data blocks, freelist blocks, and potential file data bmap
+ * btree blocks. However, these restrictions may result in no
+ * actual space allocated for a delayed extent, for example, a data
+ * block in a certain AG is allocated but there is no additional
+ * block for the additional bmap btree block due to a split of the
+ * bmap btree of the file. The result of this may lead to an
+ * infinite loop in xfssyncd when the file gets flushed to disk and
+ * all delayed extents need to be actually allocated. To get around
+ * this, we explicitly set aside a few blocks which will not be
+ * reserved in delayed allocation. Considering the minimum number of
+ * needed freelist blocks is 4 fsbs _per AG_, a potential split of file's bmap
+ * btree requires 1 fsb, so we set the number of set-aside blocks
+ * to 4 + 4*agcount.
+ */
+#define XFS_ALLOC_SET_ASIDE(mp)  (4 + ((mp)->m_sb.sb_agcount * 4))
+
 /*
 /*
  * Argument structure for xfs_alloc routines.
  * Argument structure for xfs_alloc routines.
  * This is turned into a structure to avoid having 20 arguments passed
  * This is turned into a structure to avoid having 20 arguments passed

+ 10 - 6
fs/xfs/xfs_fsops.c

@@ -462,7 +462,7 @@ xfs_fs_counts(
 
 
 	xfs_icsb_sync_counters_lazy(mp);
 	xfs_icsb_sync_counters_lazy(mp);
 	s = XFS_SB_LOCK(mp);
 	s = XFS_SB_LOCK(mp);
-	cnt->freedata = mp->m_sb.sb_fdblocks;
+	cnt->freedata = mp->m_sb.sb_fdblocks - XFS_ALLOC_SET_ASIDE(mp);
 	cnt->freertx = mp->m_sb.sb_frextents;
 	cnt->freertx = mp->m_sb.sb_frextents;
 	cnt->freeino = mp->m_sb.sb_ifree;
 	cnt->freeino = mp->m_sb.sb_ifree;
 	cnt->allocino = mp->m_sb.sb_icount;
 	cnt->allocino = mp->m_sb.sb_icount;
@@ -519,15 +519,19 @@ xfs_reserve_blocks(
 		}
 		}
 		mp->m_resblks = request;
 		mp->m_resblks = request;
 	} else {
 	} else {
+		__int64_t	free;
+
+		free =  mp->m_sb.sb_fdblocks - XFS_ALLOC_SET_ASIDE(mp);
 		delta = request - mp->m_resblks;
 		delta = request - mp->m_resblks;
-		lcounter = mp->m_sb.sb_fdblocks - delta;
+		lcounter = free - delta;
 		if (lcounter < 0) {
 		if (lcounter < 0) {
 			/* We can't satisfy the request, just get what we can */
 			/* We can't satisfy the request, just get what we can */
-			mp->m_resblks += mp->m_sb.sb_fdblocks;
-			mp->m_resblks_avail += mp->m_sb.sb_fdblocks;
-			mp->m_sb.sb_fdblocks = 0;
+			mp->m_resblks += free;
+			mp->m_resblks_avail += free;
+			mp->m_sb.sb_fdblocks = XFS_ALLOC_SET_ASIDE(mp);
 		} else {
 		} else {
-			mp->m_sb.sb_fdblocks = lcounter;
+			mp->m_sb.sb_fdblocks =
+				lcounter + XFS_ALLOC_SET_ASIDE(mp);
 			mp->m_resblks = request;
 			mp->m_resblks = request;
 			mp->m_resblks_avail += delta;
 			mp->m_resblks_avail += delta;
 		}
 		}

+ 8 - 24
fs/xfs/xfs_mount.c

@@ -1243,24 +1243,6 @@ xfs_mod_sb(xfs_trans_t *tp, __int64_t fields)
 	xfs_trans_log_buf(tp, bp, first, last);
 	xfs_trans_log_buf(tp, bp, first, last);
 }
 }
 
 
-/*
- * In order to avoid ENOSPC-related deadlock caused by
- * out-of-order locking of AGF buffer (PV 947395), we place
- * constraints on the relationship among actual allocations for
- * data blocks, freelist blocks, and potential file data bmap
- * btree blocks. However, these restrictions may result in no
- * actual space allocated for a delayed extent, for example, a data
- * block in a certain AG is allocated but there is no additional
- * block for the additional bmap btree block due to a split of the
- * bmap btree of the file. The result of this may lead to an
- * infinite loop in xfssyncd when the file gets flushed to disk and
- * all delayed extents need to be actually allocated. To get around
- * this, we explicitly set aside a few blocks which will not be
- * reserved in delayed allocation. Considering the minimum number of
- * needed freelist blocks is 4 fsbs, a potential split of file's bmap
- * btree requires 1 fsb, so we set the number of set-aside blocks to 8.
-*/
-#define SET_ASIDE_BLOCKS 8
 
 
 /*
 /*
  * xfs_mod_incore_sb_unlocked() is a utility routine common used to apply
  * xfs_mod_incore_sb_unlocked() is a utility routine common used to apply
@@ -1306,7 +1288,8 @@ xfs_mod_incore_sb_unlocked(xfs_mount_t *mp, xfs_sb_field_t field,
 		return 0;
 		return 0;
 	case XFS_SBS_FDBLOCKS:
 	case XFS_SBS_FDBLOCKS:
 
 
-		lcounter = (long long)mp->m_sb.sb_fdblocks - SET_ASIDE_BLOCKS;
+		lcounter = (long long)
+			mp->m_sb.sb_fdblocks - XFS_ALLOC_SET_ASIDE(mp);
 		res_used = (long long)(mp->m_resblks - mp->m_resblks_avail);
 		res_used = (long long)(mp->m_resblks - mp->m_resblks_avail);
 
 
 		if (delta > 0) {		/* Putting blocks back */
 		if (delta > 0) {		/* Putting blocks back */
@@ -1340,7 +1323,7 @@ xfs_mod_incore_sb_unlocked(xfs_mount_t *mp, xfs_sb_field_t field,
 			}
 			}
 		}
 		}
 
 
-		mp->m_sb.sb_fdblocks = lcounter + SET_ASIDE_BLOCKS;
+		mp->m_sb.sb_fdblocks = lcounter + XFS_ALLOC_SET_ASIDE(mp);
 		return 0;
 		return 0;
 	case XFS_SBS_FREXTENTS:
 	case XFS_SBS_FREXTENTS:
 		lcounter = (long long)mp->m_sb.sb_frextents;
 		lcounter = (long long)mp->m_sb.sb_frextents;
@@ -2021,7 +2004,8 @@ xfs_icsb_sync_counters_lazy(
  * when we get near ENOSPC.
  * when we get near ENOSPC.
  */
  */
 #define XFS_ICSB_INO_CNTR_REENABLE	64
 #define XFS_ICSB_INO_CNTR_REENABLE	64
-#define XFS_ICSB_FDBLK_CNTR_REENABLE	512
+#define XFS_ICSB_FDBLK_CNTR_REENABLE(mp) \
+		(512 + XFS_ALLOC_SET_ASIDE(mp))
 STATIC void
 STATIC void
 xfs_icsb_balance_counter(
 xfs_icsb_balance_counter(
 	xfs_mount_t	*mp,
 	xfs_mount_t	*mp,
@@ -2055,7 +2039,7 @@ xfs_icsb_balance_counter(
 	case XFS_SBS_FDBLOCKS:
 	case XFS_SBS_FDBLOCKS:
 		count = mp->m_sb.sb_fdblocks;
 		count = mp->m_sb.sb_fdblocks;
 		resid = do_div(count, weight);
 		resid = do_div(count, weight);
-		if (count < XFS_ICSB_FDBLK_CNTR_REENABLE)
+		if (count < XFS_ICSB_FDBLK_CNTR_REENABLE(mp))
 			goto out;
 			goto out;
 		break;
 		break;
 	default:
 	default:
@@ -2110,11 +2094,11 @@ again:
 	case XFS_SBS_FDBLOCKS:
 	case XFS_SBS_FDBLOCKS:
 		BUG_ON((mp->m_resblks - mp->m_resblks_avail) != 0);
 		BUG_ON((mp->m_resblks - mp->m_resblks_avail) != 0);
 
 
-		lcounter = icsbp->icsb_fdblocks;
+		lcounter = icsbp->icsb_fdblocks - XFS_ALLOC_SET_ASIDE(mp);
 		lcounter += delta;
 		lcounter += delta;
 		if (unlikely(lcounter < 0))
 		if (unlikely(lcounter < 0))
 			goto slow_path;
 			goto slow_path;
-		icsbp->icsb_fdblocks = lcounter;
+		icsbp->icsb_fdblocks = lcounter + XFS_ALLOC_SET_ASIDE(mp);
 		break;
 		break;
 	default:
 	default:
 		BUG();
 		BUG();

+ 2 - 1
fs/xfs/xfs_vfsops.c

@@ -811,7 +811,8 @@ xfs_statvfs(
 	statp->f_bsize = sbp->sb_blocksize;
 	statp->f_bsize = sbp->sb_blocksize;
 	lsize = sbp->sb_logstart ? sbp->sb_logblocks : 0;
 	lsize = sbp->sb_logstart ? sbp->sb_logblocks : 0;
 	statp->f_blocks = sbp->sb_dblocks - lsize;
 	statp->f_blocks = sbp->sb_dblocks - lsize;
-	statp->f_bfree = statp->f_bavail = sbp->sb_fdblocks;
+	statp->f_bfree = statp->f_bavail =
+				sbp->sb_fdblocks - XFS_ALLOC_SET_ASIDE(mp);
 	fakeinos = statp->f_bfree << sbp->sb_inopblog;
 	fakeinos = statp->f_bfree << sbp->sb_inopblog;
 #if XFS_BIG_INUMS
 #if XFS_BIG_INUMS
 	fakeinos += mp->m_inoadd;
 	fakeinos += mp->m_inoadd;

+ 4 - 12
include/asm-sh64/bug.h

@@ -1,7 +1,7 @@
 #ifndef __ASM_SH64_BUG_H
 #ifndef __ASM_SH64_BUG_H
 #define __ASM_SH64_BUG_H
 #define __ASM_SH64_BUG_H
 
 
-
+#ifdef CONFIG_BUG
 /*
 /*
  * Tell the user there is some problem, then force a segfault (in process
  * Tell the user there is some problem, then force a segfault (in process
  * context) or a panic (interrupt context).
  * context) or a panic (interrupt context).
@@ -11,17 +11,9 @@
 	*(volatile int *)0 = 0; \
 	*(volatile int *)0 = 0; \
 } while (0)
 } while (0)
 
 
-#define BUG_ON(condition) do { \
-	if (unlikely((condition)!=0)) \
-		BUG(); \
-} while(0)
+#define HAVE_ARCH_BUG
+#endif
 
 
-#define WARN_ON(condition) do { \
-	if (unlikely((condition)!=0)) { \
-		printk("Badness in %s at %s:%d\n", __FUNCTION__, __FILE__, __LINE__); \
-		dump_stack(); \
-	} \
-} while (0)
+#include <asm-generic/bug.h>
 
 
 #endif /* __ASM_SH64_BUG_H */
 #endif /* __ASM_SH64_BUG_H */
-

+ 2 - 2
include/asm-sh64/byteorder.h

@@ -14,7 +14,7 @@
 
 
 #include <asm/types.h>
 #include <asm/types.h>
 
 
-static __inline__ __const__ __u32 ___arch__swab32(__u32 x)
+static inline __attribute_const__ __u32 ___arch__swab32(__u32 x)
 {
 {
 	__asm__("byterev	%0, %0\n\t"
 	__asm__("byterev	%0, %0\n\t"
 		"shari		%0, 32, %0"
 		"shari		%0, 32, %0"
@@ -23,7 +23,7 @@ static __inline__ __const__ __u32 ___arch__swab32(__u32 x)
 	return x;
 	return x;
 }
 }
 
 
-static __inline__ __const__ __u16 ___arch__swab16(__u16 x)
+static inline __attribute_const__ __u16 ___arch__swab16(__u16 x)
 {
 {
 	__asm__("byterev	%0, %0\n\t"
 	__asm__("byterev	%0, %0\n\t"
 		"shari		%0, 48, %0"
 		"shari		%0, 48, %0"

+ 12 - 4
include/asm-sh64/dma-mapping.h

@@ -126,22 +126,30 @@ static inline void dma_sync_sg(struct device *dev, struct scatterlist *sg,
 static inline void dma_sync_single_for_cpu(struct device *dev,
 static inline void dma_sync_single_for_cpu(struct device *dev,
 					   dma_addr_t dma_handle, size_t size,
 					   dma_addr_t dma_handle, size_t size,
 					   enum dma_data_direction dir)
 					   enum dma_data_direction dir)
-	__attribute__ ((alias("dma_sync_single")));
+{
+	dma_sync_single(dev, dma_handle, size, dir);
+}
 
 
 static inline void dma_sync_single_for_device(struct device *dev,
 static inline void dma_sync_single_for_device(struct device *dev,
 					   dma_addr_t dma_handle, size_t size,
 					   dma_addr_t dma_handle, size_t size,
 					   enum dma_data_direction dir)
 					   enum dma_data_direction dir)
-	__attribute__ ((alias("dma_sync_single")));
+{
+	dma_sync_single(dev, dma_handle, size, dir);
+}
 
 
 static inline void dma_sync_sg_for_cpu(struct device *dev,
 static inline void dma_sync_sg_for_cpu(struct device *dev,
 				       struct scatterlist *sg, int nelems,
 				       struct scatterlist *sg, int nelems,
 				       enum dma_data_direction dir)
 				       enum dma_data_direction dir)
-	__attribute__ ((alias("dma_sync_sg")));
+{
+	dma_sync_sg(dev, sg, nelems, dir);
+}
 
 
 static inline void dma_sync_sg_for_device(struct device *dev,
 static inline void dma_sync_sg_for_device(struct device *dev,
 				       struct scatterlist *sg, int nelems,
 				       struct scatterlist *sg, int nelems,
 				       enum dma_data_direction dir)
 				       enum dma_data_direction dir)
-	__attribute__ ((alias("dma_sync_sg")));
+{
+	dma_sync_sg(dev, sg, nelems, dir);
+}
 
 
 static inline int dma_get_cache_alignment(void)
 static inline int dma_get_cache_alignment(void)
 {
 {

+ 7 - 0
include/asm-sh64/io.h

@@ -123,6 +123,13 @@ void insw(unsigned long port, void *addr, unsigned long count);
 void outsl(unsigned long port, const void *addr, unsigned long count);
 void outsl(unsigned long port, const void *addr, unsigned long count);
 void insl(unsigned long port, void *addr, unsigned long count);
 void insl(unsigned long port, void *addr, unsigned long count);
 
 
+#define __raw_readb		readb
+#define __raw_readw		readw
+#define __raw_readl		readl
+#define __raw_writeb		writeb
+#define __raw_writew		writew
+#define __raw_writel		writel
+
 void memcpy_toio(void __iomem *to, const void *from, long count);
 void memcpy_toio(void __iomem *to, const void *from, long count);
 void memcpy_fromio(void *to, void __iomem *from, long count);
 void memcpy_fromio(void *to, void __iomem *from, long count);
 
 

+ 1 - 1
include/asm-sh64/ptrace.h

@@ -28,7 +28,7 @@ struct pt_regs {
 #ifdef __KERNEL__
 #ifdef __KERNEL__
 #define user_mode(regs) (((regs)->sr & 0x40000000)==0)
 #define user_mode(regs) (((regs)->sr & 0x40000000)==0)
 #define instruction_pointer(regs) ((regs)->pc)
 #define instruction_pointer(regs) ((regs)->pc)
-#define profile_pc(regs) instruction_pointer(regs)
+#define profile_pc(regs) ((unsigned long)instruction_pointer(regs))
 extern void show_regs(struct pt_regs *);
 extern void show_regs(struct pt_regs *);
 #endif
 #endif
 
 

+ 1 - 1
include/asm-sh64/system.h

@@ -64,7 +64,7 @@ extern void __xchg_called_with_bad_pointer(void);
 #define smp_read_barrier_depends()	do { } while (0)
 #define smp_read_barrier_depends()	do { } while (0)
 #endif /* CONFIG_SMP */
 #endif /* CONFIG_SMP */
 
 
-#define set_rmb(var, value) do { xchg(&var, value); } while (0)
+#define set_rmb(var, value) do { (void)xchg(&var, value); } while (0)
 #define set_mb(var, value) set_rmb(var, value)
 #define set_mb(var, value) set_rmb(var, value)
 
 
 /* Interrupt Control */
 /* Interrupt Control */

+ 7 - 12
include/asm-sh64/uaccess.h

@@ -128,25 +128,20 @@ do {								\
 
 
 #define __get_user_nocheck(x,ptr,size)				\
 #define __get_user_nocheck(x,ptr,size)				\
 ({								\
 ({								\
-	long __gu_addr = (long)(ptr);				\
-	long __gu_err;						\
-	__typeof(*(ptr)) __gu_val;				\
-	__asm__ ("":"=r" (__gu_val));				\
-	__asm__ ("":"=r" (__gu_err));				\
-	__get_user_size((void *)&__gu_val, __gu_addr, (size), __gu_err); \
-	(x) = (__typeof__(*(ptr))) __gu_val;			\
+	long __gu_err, __gu_val;				\
+	__get_user_size((void *)&__gu_val, (long)(ptr),		\
+			(size), __gu_err);			\
+	(x) = (__typeof__(*(ptr)))__gu_val;			\
 	__gu_err;						\
 	__gu_err;						\
 })
 })
 
 
 #define __get_user_check(x,ptr,size)				\
 #define __get_user_check(x,ptr,size)				\
 ({								\
 ({								\
 	long __gu_addr = (long)(ptr);				\
 	long __gu_addr = (long)(ptr);				\
-	long __gu_err = -EFAULT;				\
-	__typeof(*(ptr)) __gu_val;				\
-	__asm__ ("":"=r" (__gu_val));				\
-	__asm__ ("":"=r" (__gu_err));				\
+	long __gu_err = -EFAULT, __gu_val;			\
 	if (__access_ok(__gu_addr, (size)))			\
 	if (__access_ok(__gu_addr, (size)))			\
-		__get_user_size((void *)&__gu_val, __gu_addr, (size), __gu_err); \
+		__get_user_size((void *)&__gu_val, __gu_addr,	\
+				(size), __gu_err);		\
 	(x) = (__typeof__(*(ptr))) __gu_val;			\
 	(x) = (__typeof__(*(ptr))) __gu_val;			\
 	__gu_err;						\
 	__gu_err;						\
 })
 })

+ 1 - 2
include/linux/videodev.h

@@ -14,8 +14,7 @@
 
 
 #include <linux/videodev2.h>
 #include <linux/videodev2.h>
 
 
-#ifdef CONFIG_VIDEO_V4L1_COMPAT
-#define HAVE_V4L1 1
+#if defined(CONFIG_VIDEO_V4L1_COMPAT) || !defined (__KERNEL__)
 
 
 struct video_capability
 struct video_capability
 {
 {

+ 0 - 2
include/linux/videodev2.h

@@ -22,8 +22,6 @@
 #endif
 #endif
 #include <linux/types.h>
 #include <linux/types.h>
 
 
-#define HAVE_V4L2 1
-
 /*
 /*
  * Common stuff for both V4L1 and V4L2
  * Common stuff for both V4L1 and V4L2
  * Moved from videodev.h
  * Moved from videodev.h

+ 4 - 3
include/media/v4l2-dev.h

@@ -194,7 +194,7 @@ struct video_device
 
 
 
 
 	int (*vidioc_overlay) (struct file *file, void *fh, unsigned int i);
 	int (*vidioc_overlay) (struct file *file, void *fh, unsigned int i);
-#ifdef HAVE_V4L1
+#ifdef CONFIG_VIDEO_V4L1_COMPAT
 			/* buffer type is struct vidio_mbuf * */
 			/* buffer type is struct vidio_mbuf * */
 	int (*vidiocgmbuf)  (struct file *file, void *fh, struct video_mbuf *p);
 	int (*vidiocgmbuf)  (struct file *file, void *fh, struct video_mbuf *p);
 #endif
 #endif
@@ -335,7 +335,7 @@ extern int video_usercopy(struct inode *inode, struct file *file,
 				      unsigned int cmd, void *arg));
 				      unsigned int cmd, void *arg));
 
 
 
 
-#ifdef HAVE_V4L1
+#ifdef CONFIG_VIDEO_V4L1_COMPAT
 #include <linux/mm.h>
 #include <linux/mm.h>
 
 
 extern struct video_device* video_devdata(struct file*);
 extern struct video_device* video_devdata(struct file*);
@@ -357,6 +357,8 @@ video_device_remove_file(struct video_device *vfd,
 	class_device_remove_file(&vfd->class_dev, attr);
 	class_device_remove_file(&vfd->class_dev, attr);
 }
 }
 
 
+#endif /* CONFIG_VIDEO_V4L1_COMPAT */
+
 #ifdef OBSOLETE_OWNER /* to be removed soon */
 #ifdef OBSOLETE_OWNER /* to be removed soon */
 /* helper functions to access driver private data. */
 /* helper functions to access driver private data. */
 static inline void *video_get_drvdata(struct video_device *dev)
 static inline void *video_get_drvdata(struct video_device *dev)
@@ -372,6 +374,5 @@ static inline void video_set_drvdata(struct video_device *dev, void *data)
 
 
 extern int video_exclusive_open(struct inode *inode, struct file *file);
 extern int video_exclusive_open(struct inode *inode, struct file *file);
 extern int video_exclusive_release(struct inode *inode, struct file *file);
 extern int video_exclusive_release(struct inode *inode, struct file *file);
-#endif /* HAVE_V4L1 */
 
 
 #endif /* _V4L2_DEV_H */
 #endif /* _V4L2_DEV_H */

+ 5 - 0
lib/Kconfig

@@ -38,6 +38,11 @@ config LIBCRC32C
 	  require M here.  See Castagnoli93.
 	  require M here.  See Castagnoli93.
 	  Module will be libcrc32c.
 	  Module will be libcrc32c.
 
 
+config AUDIT_GENERIC
+	bool
+	depends on AUDIT && !AUDIT_ARCH
+	default y
+
 #
 #
 # compression support is select'ed if needed
 # compression support is select'ed if needed
 #
 #

+ 1 - 0
lib/Makefile

@@ -49,6 +49,7 @@ obj-$(CONFIG_TEXTSEARCH_KMP) += ts_kmp.o
 obj-$(CONFIG_TEXTSEARCH_BM) += ts_bm.o
 obj-$(CONFIG_TEXTSEARCH_BM) += ts_bm.o
 obj-$(CONFIG_TEXTSEARCH_FSM) += ts_fsm.o
 obj-$(CONFIG_TEXTSEARCH_FSM) += ts_fsm.o
 obj-$(CONFIG_SMP) += percpu_counter.o
 obj-$(CONFIG_SMP) += percpu_counter.o
+obj-$(CONFIG_AUDIT_GENERIC) += audit.o
 
 
 obj-$(CONFIG_SWIOTLB) += swiotlb.o
 obj-$(CONFIG_SWIOTLB) += swiotlb.o
 
 

+ 2 - 0
arch/i386/kernel/audit.c → lib/audit.c

@@ -30,8 +30,10 @@ int audit_classify_syscall(int abi, unsigned syscall)
 		return 2;
 		return 2;
 	case __NR_openat:
 	case __NR_openat:
 		return 3;
 		return 3;
+#ifdef __NR_socketcall
 	case __NR_socketcall:
 	case __NR_socketcall:
 		return 4;
 		return 4;
+#endif
 	case __NR_execve:
 	case __NR_execve:
 		return 5;
 		return 5;
 	default:
 	default: