diff options
39 files changed, 126 insertions, 102 deletions
| diff --git a/Documentation/kernel-parameters.txt b/Documentation/kernel-parameters.txt index d5418d528910..ee5a5f9358ec 100644 --- a/Documentation/kernel-parameters.txt +++ b/Documentation/kernel-parameters.txt @@ -220,14 +220,17 @@ and is between 256 and 4096 characters. It is defined in the file  			Bits in debug_level correspond to a level in  			ACPI_DEBUG_PRINT statements, e.g.,  			    ACPI_DEBUG_PRINT((ACPI_DB_INFO, ... -			See Documentation/acpi/debug.txt for more information -			about debug layers and levels. +			The debug_level mask defaults to "info".  See +			Documentation/acpi/debug.txt for more information about +			debug layers and levels. +			Enable processor driver info messages: +			    acpi.debug_layer=0x20000000 +			Enable PCI/PCI interrupt routing info messages: +			    acpi.debug_layer=0x400000  			Enable AML "Debug" output, i.e., stores to the Debug  			object while interpreting AML:  			    acpi.debug_layer=0xffffffff acpi.debug_level=0x2 -			Enable PCI/PCI interrupt routing info messages: -			    acpi.debug_layer=0x400000 acpi.debug_level=0x4  			Enable all messages related to ACPI hardware:  			    acpi.debug_layer=0x2 acpi.debug_level=0xffffffff diff --git a/MAINTAINERS b/MAINTAINERS index c42a567e010c..fbc8fa58d56d 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -4529,7 +4529,7 @@ S:	Maintained  USB VIDEO CLASS  P:	Laurent Pinchart  M:	laurent.pinchart@skynet.be -L:	linux-uvc-devel@lists.berlios.de +L:	linux-uvc-devel@lists.berlios.de (subscribers-only)  L:	video4linux-list@redhat.com  W:	http://linux-uvc.berlios.de  S:	Maintained @@ -1,7 +1,7 @@  VERSION = 2  PATCHLEVEL = 6  SUBLEVEL = 28 -EXTRAVERSION = -rc9 +EXTRAVERSION =  NAME = Erotic Pickled Herring  # *DOCUMENTATION* diff --git a/arch/mips/include/asm/byteorder.h b/arch/mips/include/asm/byteorder.h index 2988d29a0867..33790b9e0cc0 100644 --- a/arch/mips/include/asm/byteorder.h +++ b/arch/mips/include/asm/byteorder.h @@ -50,9 +50,8 @@ static inline __attribute_const__ __u32 __arch_swab32(__u32 x)  static inline __attribute_const__ __u64 __arch_swab64(__u64 x)  {  	__asm__( -	"	dsbh	%0, %1			\n" -	"	dshd	%0, %0			\n" -	"	drotr	%0, %0, 32		\n" +	"	dsbh	%0, %1\n" +	"	dshd	%0, %0"  	: "=r" (x)  	: "r" (x)); diff --git a/arch/mips/include/asm/elf.h b/arch/mips/include/asm/elf.h index a8eac1697b3d..d58f128aa747 100644 --- a/arch/mips/include/asm/elf.h +++ b/arch/mips/include/asm/elf.h @@ -232,7 +232,7 @@ typedef elf_fpreg_t elf_fpregset_t[ELF_NFPREG];   */  #ifdef __MIPSEB__  #define ELF_DATA	ELFDATA2MSB -#elif __MIPSEL__ +#elif defined(__MIPSEL__)  #define ELF_DATA	ELFDATA2LSB  #endif  #define ELF_ARCH	EM_MIPS diff --git a/arch/parisc/include/asm/tlbflush.h b/arch/parisc/include/asm/tlbflush.h index b72ec66db699..1f6fd4fc05b9 100644 --- a/arch/parisc/include/asm/tlbflush.h +++ b/arch/parisc/include/asm/tlbflush.h @@ -44,9 +44,12 @@ static inline void flush_tlb_mm(struct mm_struct *mm)  {  	BUG_ON(mm == &init_mm); /* Should never happen */ -#ifdef CONFIG_SMP +#if 1 || defined(CONFIG_SMP)  	flush_tlb_all();  #else +	/* FIXME: currently broken, causing space id and protection ids +	 *  to go out of sync, resulting in faults on userspace accesses. +	 */  	if (mm) {  		if (mm->context != 0)  			free_sid(mm->context); diff --git a/arch/x86/Kconfig.cpu b/arch/x86/Kconfig.cpu index b815664fe370..8e99073b9e0f 100644 --- a/arch/x86/Kconfig.cpu +++ b/arch/x86/Kconfig.cpu @@ -520,6 +520,7 @@ config X86_PTRACE_BTS  	bool "Branch Trace Store"  	default y  	depends on X86_DEBUGCTLMSR +	depends on BROKEN  	help  	  This adds a ptrace interface to the hardware's branch trace store. diff --git a/arch/x86/kernel/traps.c b/arch/x86/kernel/traps.c index 73ece2633f47..141907ab6e22 100644 --- a/arch/x86/kernel/traps.c +++ b/arch/x86/kernel/traps.c @@ -687,7 +687,7 @@ void math_error(void __user *ip)  	err = swd & ~cwd & 0x3f; -#if CONFIG_X86_32 +#ifdef CONFIG_X86_32  	if (!err)  		return;  #endif diff --git a/arch/x86/mm/pat.c b/arch/x86/mm/pat.c index 541bcc944a5b..85cbd3cd3723 100644 --- a/arch/x86/mm/pat.c +++ b/arch/x86/mm/pat.c @@ -684,7 +684,7 @@ int track_pfn_vma_copy(struct vm_area_struct *vma)  {  	int retval = 0;  	unsigned long i, j; -	u64 paddr; +	resource_size_t paddr;  	unsigned long prot;  	unsigned long vma_start = vma->vm_start;  	unsigned long vma_end = vma->vm_end; @@ -746,8 +746,8 @@ int track_pfn_vma_new(struct vm_area_struct *vma, pgprot_t prot,  {  	int retval = 0;  	unsigned long i, j; -	u64 base_paddr; -	u64 paddr; +	resource_size_t base_paddr; +	resource_size_t paddr;  	unsigned long vma_start = vma->vm_start;  	unsigned long vma_end = vma->vm_end;  	unsigned long vma_size = vma_end - vma_start; @@ -757,12 +757,12 @@ int track_pfn_vma_new(struct vm_area_struct *vma, pgprot_t prot,  	if (is_linear_pfn_mapping(vma)) {  		/* reserve the whole chunk starting from vm_pgoff */ -		paddr = (u64)vma->vm_pgoff << PAGE_SHIFT; +		paddr = (resource_size_t)vma->vm_pgoff << PAGE_SHIFT;  		return reserve_pfn_range(paddr, vma_size, prot);  	}  	/* reserve page by page using pfn and size */ -	base_paddr = (u64)pfn << PAGE_SHIFT; +	base_paddr = (resource_size_t)pfn << PAGE_SHIFT;  	for (i = 0; i < size; i += PAGE_SIZE) {  		paddr = base_paddr + i;  		retval = reserve_pfn_range(paddr, PAGE_SIZE, prot); @@ -790,7 +790,7 @@ void untrack_pfn_vma(struct vm_area_struct *vma, unsigned long pfn,  			unsigned long size)  {  	unsigned long i; -	u64 paddr; +	resource_size_t paddr;  	unsigned long prot;  	unsigned long vma_start = vma->vm_start;  	unsigned long vma_end = vma->vm_end; @@ -801,14 +801,14 @@ void untrack_pfn_vma(struct vm_area_struct *vma, unsigned long pfn,  	if (is_linear_pfn_mapping(vma)) {  		/* free the whole chunk starting from vm_pgoff */ -		paddr = (u64)vma->vm_pgoff << PAGE_SHIFT; +		paddr = (resource_size_t)vma->vm_pgoff << PAGE_SHIFT;  		free_pfn_range(paddr, vma_size);  		return;  	}  	if (size != 0 && size != vma_size) {  		/* free page by page, using pfn and size */ -		paddr = (u64)pfn << PAGE_SHIFT; +		paddr = (resource_size_t)pfn << PAGE_SHIFT;  		for (i = 0; i < size; i += PAGE_SIZE) {  			paddr = paddr + i;  			free_pfn_range(paddr, PAGE_SIZE); diff --git a/drivers/acpi/bus.c b/drivers/acpi/bus.c index 7edf6d913c13..765fd1c56cd6 100644 --- a/drivers/acpi/bus.c +++ b/drivers/acpi/bus.c @@ -688,14 +688,6 @@ void __init acpi_early_init(void)  	if (acpi_disabled)  		return; -	/* -	 * ACPI CA initializes acpi_dbg_level to non-zero, which means -	 * we get debug output merely by turning on CONFIG_ACPI_DEBUG. -	 * Turn it off so we don't get output unless the user specifies -	 * acpi.debug_level. -	 */ -	acpi_dbg_level = 0; -  	printk(KERN_INFO PREFIX "Core revision %08x\n", ACPI_CA_VERSION);  	/* enable workarounds, unless strict ACPI spec. compliance */ diff --git a/drivers/acpi/utilities/utglobal.c b/drivers/acpi/utilities/utglobal.c index 670551b95e56..17ed5ac840f7 100644 --- a/drivers/acpi/utilities/utglobal.c +++ b/drivers/acpi/utilities/utglobal.c @@ -64,7 +64,7 @@ u32 acpi_dbg_level = ACPI_DEBUG_DEFAULT;  /* Debug switch - layer (component) mask */ -u32 acpi_dbg_layer = ACPI_COMPONENT_DEFAULT | ACPI_ALL_DRIVERS; +u32 acpi_dbg_layer = 0;  u32 acpi_gbl_nesting_level = 0;  /* Debugger globals */ diff --git a/drivers/edac/edac_device.c b/drivers/edac/edac_device.c index 5fcd3d89c75d..4041e9143283 100644 --- a/drivers/edac/edac_device.c +++ b/drivers/edac/edac_device.c @@ -394,6 +394,12 @@ static void edac_device_workq_function(struct work_struct *work_req)  	mutex_lock(&device_ctls_mutex); +	/* If we are being removed, bail out immediately */ +	if (edac_dev->op_state == OP_OFFLINE) { +		mutex_unlock(&device_ctls_mutex); +		return; +	} +  	/* Only poll controllers that are running polled and have a check */  	if ((edac_dev->op_state == OP_RUNNING_POLL) &&  		(edac_dev->edac_check != NULL)) { @@ -585,14 +591,14 @@ struct edac_device_ctl_info *edac_device_del_device(struct device *dev)  	/* mark this instance as OFFLINE */  	edac_dev->op_state = OP_OFFLINE; -	/* clear workq processing on this instance */ -	edac_device_workq_teardown(edac_dev); -  	/* deregister from global list */  	del_edac_device_from_global_list(edac_dev);  	mutex_unlock(&device_ctls_mutex); +	/* clear workq processing on this instance */ +	edac_device_workq_teardown(edac_dev); +  	/* Tear down the sysfs entries for this instance */  	edac_device_remove_sysfs(edac_dev); diff --git a/drivers/gpu/drm/radeon/radeon_irq.c b/drivers/gpu/drm/radeon/radeon_irq.c index 99be11418ac2..8289e16419a8 100644 --- a/drivers/gpu/drm/radeon/radeon_irq.c +++ b/drivers/gpu/drm/radeon/radeon_irq.c @@ -44,7 +44,7 @@ void radeon_irq_set_state(struct drm_device *dev, u32 mask, int state)  	else  		dev_priv->irq_enable_reg &= ~mask; -	if (!dev->irq_enabled) +	if (dev->irq_enabled)  		RADEON_WRITE(RADEON_GEN_INT_CNTL, dev_priv->irq_enable_reg);  } @@ -57,7 +57,7 @@ static void r500_vbl_irq_set_state(struct drm_device *dev, u32 mask, int state)  	else  		dev_priv->r500_disp_irq_reg &= ~mask; -	if (!dev->irq_enabled) +	if (dev->irq_enabled)  		RADEON_WRITE(R500_DxMODE_INT_MASK, dev_priv->r500_disp_irq_reg);  } diff --git a/drivers/ide/cs5530.c b/drivers/ide/cs5530.c index 53f079cc00af..d8ede85fe17f 100644 --- a/drivers/ide/cs5530.c +++ b/drivers/ide/cs5530.c @@ -81,11 +81,12 @@ static u8 cs5530_udma_filter(ide_drive_t *drive)  {  	ide_hwif_t *hwif = drive->hwif;  	ide_drive_t *mate = ide_get_pair_dev(drive); -	u16 *mateid = mate->id; +	u16 *mateid;  	u8 mask = hwif->ultra_mask;  	if (mate == NULL)  		goto out; +	mateid = mate->id;  	if (ata_id_has_dma(mateid) && __ide_dma_bad_drive(mate) == 0) {  		if ((mateid[ATA_ID_FIELD_VALID] & 4) && diff --git a/drivers/ide/sc1200.c b/drivers/ide/sc1200.c index f1a8758e3a99..ec7f766ef5e4 100644 --- a/drivers/ide/sc1200.c +++ b/drivers/ide/sc1200.c @@ -104,11 +104,12 @@ static u8 sc1200_udma_filter(ide_drive_t *drive)  {  	ide_hwif_t *hwif = drive->hwif;  	ide_drive_t *mate = ide_get_pair_dev(drive); -	u16 *mateid = mate->id; +	u16 *mateid;  	u8 mask = hwif->ultra_mask;  	if (mate == NULL)  		goto out; +	mateid = mate->id;  	if (ata_id_has_dma(mateid) && __ide_dma_bad_drive(mate) == 0) {  		if ((mateid[ATA_ID_FIELD_VALID] & 4) && diff --git a/drivers/media/dvb/b2c2/Kconfig b/drivers/media/dvb/b2c2/Kconfig index 73dc2ee9b014..b34301d56cd2 100644 --- a/drivers/media/dvb/b2c2/Kconfig +++ b/drivers/media/dvb/b2c2/Kconfig @@ -9,11 +9,11 @@ config DVB_B2C2_FLEXCOP  	select DVB_STV0297 if !DVB_FE_CUSTOMISE  	select DVB_BCM3510 if !DVB_FE_CUSTOMISE  	select DVB_LGDT330X if !DVB_FE_CUSTOMISE -	select MEDIA_TUNER_SIMPLE if !DVB_FE_CUSTOMISE  	select DVB_S5H1420 if !DVB_FE_CUSTOMISE  	select DVB_TUNER_ITD1000 if !DVB_FE_CUSTOMISE  	select DVB_ISL6421 if !DVB_FE_CUSTOMISE  	select DVB_CX24123 if !DVB_FE_CUSTOMISE +	select MEDIA_TUNER_SIMPLE if !MEDIA_TUNER_CUSTOMIZE  	help  	  Support for the digital TV receiver chip made by B2C2 Inc. included in  	  Technisats PCI cards and USB boxes. diff --git a/drivers/media/dvb/b2c2/flexcop-fe-tuner.c b/drivers/media/dvb/b2c2/flexcop-fe-tuner.c index a127a4175c40..5cded3708541 100644 --- a/drivers/media/dvb/b2c2/flexcop-fe-tuner.c +++ b/drivers/media/dvb/b2c2/flexcop-fe-tuner.c @@ -628,12 +628,14 @@ int flexcop_frontend_init(struct flexcop_device *fc)  	}  	/* try the cable dvb (stv0297) */ +	fc->fc_i2c_adap[0].no_base_addr = 1;  	fc->fe = dvb_attach(stv0297_attach, &alps_tdee4_stv0297_config, i2c);  	if (fc->fe != NULL) {  		fc->dev_type = FC_CABLE;  		fc->fe->ops.tuner_ops.set_params = alps_tdee4_stv0297_tuner_set_params;  		goto fe_found;  	} +	fc->fc_i2c_adap[0].no_base_addr = 0;  	/* try the sky v2.3 (vp310/Samsung tbdu18132(tsa5059)) */  	fc->fe = dvb_attach(mt312_attach, diff --git a/drivers/media/dvb/b2c2/flexcop-i2c.c b/drivers/media/dvb/b2c2/flexcop-i2c.c index 43a112ec6d44..f13783f08f0f 100644 --- a/drivers/media/dvb/b2c2/flexcop-i2c.c +++ b/drivers/media/dvb/b2c2/flexcop-i2c.c @@ -47,9 +47,13 @@ static int flexcop_i2c_read4(struct flexcop_i2c_adapter *i2c,  	int len = r100.tw_sm_c_100.total_bytes, /* remember total_bytes is buflen-1 */  		ret; -	r100.tw_sm_c_100.no_base_addr_ack_error = i2c->no_base_addr;  	ret = flexcop_i2c_operation(i2c->fc, &r100);  	if (ret != 0) { +		deb_i2c("Retrying operation\n"); +		r100.tw_sm_c_100.no_base_addr_ack_error = i2c->no_base_addr; +		ret = flexcop_i2c_operation(i2c->fc, &r100); +	} +	if (ret != 0) {  		deb_i2c("read failed. %d\n", ret);  		return ret;  	} diff --git a/drivers/media/dvb/bt8xx/Kconfig b/drivers/media/dvb/bt8xx/Kconfig index 7e9c090fc04e..27edb0ece587 100644 --- a/drivers/media/dvb/bt8xx/Kconfig +++ b/drivers/media/dvb/bt8xx/Kconfig @@ -8,7 +8,7 @@ config DVB_BT8XX  	select DVB_OR51211 if !DVB_FE_CUSTOMISE  	select DVB_LGDT330X if !DVB_FE_CUSTOMISE  	select DVB_ZL10353 if !DVB_FE_CUSTOMISE -	select MEDIA_TUNER_SIMPLE if !DVB_FE_CUSTOMISE +	select MEDIA_TUNER_SIMPLE if !MEDIA_TUNER_CUSTOMIZE  	help  	  Support for PCI cards based on the Bt8xx PCI bridge. Examples are  	  the Nebula cards, the Pinnacle PCTV cards, the Twinhan DST cards, diff --git a/drivers/media/dvb/dvb-usb/Kconfig b/drivers/media/dvb/dvb-usb/Kconfig index 62b68c291d99..49f7b20c25d6 100644 --- a/drivers/media/dvb/dvb-usb/Kconfig +++ b/drivers/media/dvb/dvb-usb/Kconfig @@ -24,8 +24,8 @@ config DVB_USB_A800  	tristate "AVerMedia AverTV DVB-T USB 2.0 (A800)"  	depends on DVB_USB  	select DVB_DIB3000MC -	select MEDIA_TUNER_MT2060 if !DVB_FE_CUSTOMISE  	select DVB_PLL if !DVB_FE_CUSTOMISE +	select MEDIA_TUNER_MT2060 if !MEDIA_TUNER_CUSTOMIZE  	help  	  Say Y here to support the AVerMedia AverTV DVB-T USB 2.0 (A800) receiver. @@ -34,7 +34,7 @@ config DVB_USB_DIBUSB_MB  	depends on DVB_USB  	select DVB_PLL if !DVB_FE_CUSTOMISE  	select DVB_DIB3000MB -	select MEDIA_TUNER_MT2060 if !DVB_FE_CUSTOMISE +	select MEDIA_TUNER_MT2060 if !MEDIA_TUNER_CUSTOMIZE  	help  	  Support for USB 1.1 and 2.0 DVB-T receivers based on reference designs made by  	  DiBcom (<http://www.dibcom.fr>) equipped with a DiB3000M-B demodulator. @@ -55,7 +55,7 @@ config DVB_USB_DIBUSB_MC  	tristate "DiBcom USB DVB-T devices (based on the DiB3000M-C/P) (see help for device list)"  	depends on DVB_USB  	select DVB_DIB3000MC -	select MEDIA_TUNER_MT2060 if !DVB_FE_CUSTOMISE +	select MEDIA_TUNER_MT2060 if !MEDIA_TUNER_CUSTOMIZE  	help  	  Support for USB2.0 DVB-T receivers based on reference designs made by  	  DiBcom (<http://www.dibcom.fr>) equipped with a DiB3000M-C/P demodulator. @@ -73,11 +73,11 @@ config DVB_USB_DIB0700  	select DVB_DIB7000M  	select DVB_DIB3000MC  	select DVB_S5H1411 if !DVB_FE_CUSTOMISE -	select MEDIA_TUNER_MT2060 if !DVB_FE_CUSTOMISE -	select MEDIA_TUNER_MT2266 if !DVB_FE_CUSTOMISE -	select MEDIA_TUNER_XC2028 if !DVB_FE_CUSTOMISE -	select MEDIA_TUNER_XC5000 if !DVB_FE_CUSTOMIZE  	select DVB_TUNER_DIB0070 +	select MEDIA_TUNER_MT2060 if !MEDIA_TUNER_CUSTOMIZE +	select MEDIA_TUNER_MT2266 if !MEDIA_TUNER_CUSTOMIZE +	select MEDIA_TUNER_XC2028 if !MEDIA_TUNER_CUSTOMIZE +	select MEDIA_TUNER_XC5000 if !MEDIA_TUNER_CUSTOMIZE  	help  	  Support for USB2.0/1.1 DVB receivers based on the DiB0700 USB bridge. The  	  USB bridge is also present in devices having the DiB7700 DVB-T-USB @@ -95,7 +95,7 @@ config DVB_USB_UMT_010  	depends on DVB_USB  	select DVB_PLL if !DVB_FE_CUSTOMISE  	select DVB_DIB3000MC -	select MEDIA_TUNER_MT2060 if !DVB_FE_CUSTOMISE +	select MEDIA_TUNER_MT2060 if !MEDIA_TUNER_CUSTOMIZE  	help  	  Say Y here to support the HanfTek UMT-010 USB2.0 stick-sized DVB-T receiver. @@ -107,11 +107,11 @@ config DVB_USB_CXUSB  	select DVB_LGDT330X if !DVB_FE_CUSTOMISE  	select DVB_MT352 if !DVB_FE_CUSTOMISE  	select DVB_ZL10353 if !DVB_FE_CUSTOMISE -	select MEDIA_TUNER_SIMPLE if !DVB_FE_CUSTOMISE -	select MEDIA_TUNER_XC2028 if !DVB_FE_CUSTOMISE -	select MEDIA_TUNER_MXL5005S if !DVB_FE_CUSTOMISE  	select DVB_DIB7000P if !DVB_FE_CUSTOMISE  	select DVB_TUNER_DIB0070 if !DVB_FE_CUSTOMISE +	select MEDIA_TUNER_SIMPLE if !MEDIA_TUNER_CUSTOMIZE +	select MEDIA_TUNER_XC2028 if !MEDIA_TUNER_CUSTOMIZE +	select MEDIA_TUNER_MXL5005S if !MEDIA_TUNER_CUSTOMIZE  	help  	  Say Y here to support the Conexant USB2.0 hybrid reference design.  	  Currently, only DVB and ATSC modes are supported, analog mode @@ -124,9 +124,9 @@ config DVB_USB_M920X  	tristate "Uli m920x DVB-T USB2.0 support"  	depends on DVB_USB  	select DVB_MT352 if !DVB_FE_CUSTOMISE -	select MEDIA_TUNER_QT1010 if !DVB_FE_CUSTOMISE -	select MEDIA_TUNER_TDA827X if !DVB_FE_CUSTOMISE  	select DVB_TDA1004X if !DVB_FE_CUSTOMISE +	select MEDIA_TUNER_QT1010 if !MEDIA_TUNER_CUSTOMIZE +	select MEDIA_TUNER_TDA827X if !MEDIA_TUNER_CUSTOMIZE  	help  	  Say Y here to support the MSI Mega Sky 580 USB2.0 DVB-T receiver.  	  Currently, only devices with a product id of @@ -137,7 +137,7 @@ config DVB_USB_GL861  	tristate "Genesys Logic GL861 USB2.0 support"  	depends on DVB_USB  	select DVB_ZL10353 if !DVB_FE_CUSTOMISE -	select MEDIA_TUNER_QT1010 if !DVB_FE_CUSTOMISE +	select MEDIA_TUNER_QT1010 if !MEDIA_TUNER_CUSTOMIZE  	help  	  Say Y here to support the MSI Megasky 580 (55801) DVB-T USB2.0  	  receiver with USB ID 0db0:5581. @@ -146,7 +146,7 @@ config DVB_USB_AU6610  	tristate "Alcor Micro AU6610 USB2.0 support"  	depends on DVB_USB  	select DVB_ZL10353 if !DVB_FE_CUSTOMISE -	select MEDIA_TUNER_QT1010 if !DVB_FE_CUSTOMISE +	select MEDIA_TUNER_QT1010 if !MEDIA_TUNER_CUSTOMIZE  	help  	  Say Y here to support the Sigmatek DVB-110 DVB-T USB2.0 receiver. @@ -198,8 +198,8 @@ config DVB_USB_NOVA_T_USB2  	tristate "Hauppauge WinTV-NOVA-T usb2 DVB-T USB2.0 support"  	depends on DVB_USB  	select DVB_DIB3000MC -	select MEDIA_TUNER_MT2060 if !DVB_FE_CUSTOMISE  	select DVB_PLL if !DVB_FE_CUSTOMISE +	select MEDIA_TUNER_MT2060 if !MEDIA_TUNER_CUSTOMIZE  	help  	  Say Y here to support the Hauppauge WinTV-NOVA-T usb2 DVB-T USB2.0 receiver. @@ -235,8 +235,8 @@ config DVB_USB_OPERA1  config DVB_USB_AF9005  	tristate "Afatech AF9005 DVB-T USB1.1 support"  	depends on DVB_USB && EXPERIMENTAL -	select MEDIA_TUNER_MT2060 if !DVB_FE_CUSTOMISE -	select MEDIA_TUNER_QT1010 if !DVB_FE_CUSTOMISE +	select MEDIA_TUNER_MT2060 if !MEDIA_TUNER_CUSTOMIZE +	select MEDIA_TUNER_QT1010 if !MEDIA_TUNER_CUSTOMIZE  	help  	  Say Y here to support the Afatech AF9005 based DVB-T USB1.1 receiver  	  and the TerraTec Cinergy T USB XE (Rev.1) @@ -284,7 +284,7 @@ config DVB_USB_DTV5100  	tristate "AME DTV-5100 USB2.0 DVB-T support"  	depends on DVB_USB  	select DVB_ZL10353 if !DVB_FE_CUSTOMISE -	select MEDIA_TUNER_QT1010 if !DVB_FE_CUSTOMISE +	select MEDIA_TUNER_QT1010 if !MEDIA_TUNER_CUSTOMIZE  	help  	  Say Y here to support the AME DTV-5100 USB2.0 DVB-T receiver. @@ -293,9 +293,9 @@ config DVB_USB_AF9015  	depends on DVB_USB && EXPERIMENTAL  	select DVB_AF9013  	select DVB_PLL              if !DVB_FE_CUSTOMISE -	select MEDIA_TUNER_MT2060   if !DVB_FE_CUSTOMISE -	select MEDIA_TUNER_QT1010   if !DVB_FE_CUSTOMISE -	select MEDIA_TUNER_TDA18271 if !DVB_FE_CUSTOMISE -	select MEDIA_TUNER_MXL5005S if !DVB_FE_CUSTOMISE +	select MEDIA_TUNER_MT2060   if !MEDIA_TUNER_CUSTOMIZE +	select MEDIA_TUNER_QT1010   if !MEDIA_TUNER_CUSTOMIZE +	select MEDIA_TUNER_TDA18271 if !MEDIA_TUNER_CUSTOMIZE +	select MEDIA_TUNER_MXL5005S if !MEDIA_TUNER_CUSTOMIZE  	help  	  Say Y here to support the Afatech AF9015 based DVB-T USB2.0 receiver diff --git a/drivers/media/dvb/dvb-usb/dib0700_devices.c b/drivers/media/dvb/dvb-usb/dib0700_devices.c index f28d3ae59e04..391732788911 100644 --- a/drivers/media/dvb/dvb-usb/dib0700_devices.c +++ b/drivers/media/dvb/dvb-usb/dib0700_devices.c @@ -446,13 +446,13 @@ static int stk7700ph_tuner_attach(struct dvb_usb_adapter *adap)  		== NULL ? -ENODEV : 0;  } -#define DEFAULT_RC_INTERVAL 150 +#define DEFAULT_RC_INTERVAL 50  static u8 rc_request[] = { REQUEST_POLL_RC, 0 };  /* Number of keypresses to ignore before start repeating */ -#define RC_REPEAT_DELAY 2 -#define RC_REPEAT_DELAY_V1_20 5 +#define RC_REPEAT_DELAY 6 +#define RC_REPEAT_DELAY_V1_20 10 diff --git a/drivers/media/dvb/ttpci/Kconfig b/drivers/media/dvb/ttpci/Kconfig index 867027ceab3e..401a04effc06 100644 --- a/drivers/media/dvb/ttpci/Kconfig +++ b/drivers/media/dvb/ttpci/Kconfig @@ -106,7 +106,7 @@ config DVB_BUDGET_CI  	select DVB_TDA1004X if !DVB_FE_CUSTOMISE  	select DVB_LNBP21 if !DVB_FE_CUSTOMISE  	select DVB_TDA10023 if !DVB_FE_CUSTOMISE -	select MEDIA_TUNER_TDA827X if !DVB_FE_CUSTOMISE +	select MEDIA_TUNER_TDA827X if !MEDIA_TUNER_CUSTOMIZE  	select VIDEO_IR  	help  	  Support for simple SAA7146 based DVB cards diff --git a/drivers/media/video/compat_ioctl32.c b/drivers/media/video/compat_ioctl32.c index e6ca4012b5f0..0ea85a05e5c0 100644 --- a/drivers/media/video/compat_ioctl32.c +++ b/drivers/media/video/compat_ioctl32.c @@ -831,7 +831,7 @@ long v4l_compat_ioctl32(struct file *file, unsigned int cmd, unsigned long arg)  {  	int ret = -ENOIOCTLCMD; -	if (!file->f_op->ioctl) +	if (!file->f_op->ioctl && !file->f_op->unlocked_ioctl)  		return ret;  	switch (cmd) { diff --git a/drivers/media/video/cx18/Kconfig b/drivers/media/video/cx18/Kconfig index ef48565de7f1..8940b5387dec 100644 --- a/drivers/media/video/cx18/Kconfig +++ b/drivers/media/video/cx18/Kconfig @@ -9,7 +9,7 @@ config VIDEO_CX18  	select VIDEO_CX2341X  	select VIDEO_CS5345  	select DVB_S5H1409 if !DVB_FE_CUSTOMISE -	select MEDIA_TUNER_MXL5005S if !DVB_FE_CUSTOMISE +	select MEDIA_TUNER_MXL5005S if !MEDIA_TUNER_CUSTOMIZE  	---help---  	  This is a video4linux driver for Conexant cx23418 based  	  PCI combo video recorder devices. diff --git a/drivers/media/video/cx23885/Kconfig b/drivers/media/video/cx23885/Kconfig index 8c1b7fa47a41..00f1e2e8889e 100644 --- a/drivers/media/video/cx23885/Kconfig +++ b/drivers/media/video/cx23885/Kconfig @@ -11,16 +11,16 @@ config VIDEO_CX23885  	select VIDEO_CX25840  	select VIDEO_CX2341X  	select DVB_DIB7000P if !DVB_FE_CUSTOMISE -	select MEDIA_TUNER_MT2131 if !DVB_FE_CUSTOMISE  	select DVB_S5H1409 if !DVB_FE_CUSTOMISE  	select DVB_S5H1411 if !DVB_FE_CUSTOMISE  	select DVB_LGDT330X if !DVB_FE_CUSTOMISE  	select DVB_ZL10353 if !DVB_FE_CUSTOMISE +	select DVB_TDA10048 if !DVB_FE_CUSTOMIZE +	select MEDIA_TUNER_MT2131 if !MEDIA_TUNER_CUSTOMIZE  	select MEDIA_TUNER_XC2028 if !DVB_FE_CUSTOMIZE  	select MEDIA_TUNER_TDA8290 if !DVB_FE_CUSTOMIZE  	select MEDIA_TUNER_TDA18271 if !DVB_FE_CUSTOMIZE  	select MEDIA_TUNER_XC5000 if !DVB_FE_CUSTOMIZE -	select DVB_TDA10048 if !DVB_FE_CUSTOMIZE  	---help---  	  This is a video4linux driver for Conexant 23885 based  	  TV cards. diff --git a/drivers/media/video/cx88/Kconfig b/drivers/media/video/cx88/Kconfig index 0b9e5fac6239..b0f837588e01 100644 --- a/drivers/media/video/cx88/Kconfig +++ b/drivers/media/video/cx88/Kconfig @@ -56,12 +56,12 @@ config VIDEO_CX88_DVB  	select DVB_NXT200X if !DVB_FE_CUSTOMISE  	select DVB_CX24123 if !DVB_FE_CUSTOMISE  	select DVB_ISL6421 if !DVB_FE_CUSTOMISE -	select MEDIA_TUNER_SIMPLE if !DVB_FE_CUSTOMISE  	select DVB_S5H1411 if !DVB_FE_CUSTOMISE  	select DVB_CX24116 if !DVB_FE_CUSTOMISE  	select DVB_STV0299 if !DVB_FE_CUSTOMISE  	select DVB_STV0288 if !DVB_FE_CUSTOMISE  	select DVB_STB6000 if !DVB_FE_CUSTOMISE +	select MEDIA_TUNER_SIMPLE if !MEDIA_TUNER_CUSTOMIZE  	---help---  	  This adds support for DVB/ATSC cards based on the  	  Conexant 2388x chip. diff --git a/drivers/media/video/em28xx/em28xx-video.c b/drivers/media/video/em28xx/em28xx-video.c index 610f535a257c..4ea1f1e04897 100644 --- a/drivers/media/video/em28xx/em28xx-video.c +++ b/drivers/media/video/em28xx/em28xx-video.c @@ -549,10 +549,11 @@ static int em28xx_config(struct em28xx *dev)  static void em28xx_config_i2c(struct em28xx *dev)  {  	struct v4l2_routing route; +	int zero = 0;  	route.input = INPUT(dev->ctl_input)->vmux;  	route.output = 0; -	em28xx_i2c_call_clients(dev, VIDIOC_INT_RESET, NULL); +	em28xx_i2c_call_clients(dev, VIDIOC_INT_RESET, &zero);  	em28xx_i2c_call_clients(dev, VIDIOC_INT_S_VIDEO_ROUTING, &route);  	em28xx_i2c_call_clients(dev, VIDIOC_STREAMON, NULL);  } diff --git a/drivers/media/video/gspca/gspca.c b/drivers/media/video/gspca/gspca.c index 748a87e82e44..02a6e9ef0337 100644 --- a/drivers/media/video/gspca/gspca.c +++ b/drivers/media/video/gspca/gspca.c @@ -1264,10 +1264,10 @@ static int vidioc_s_jpegcomp(struct file *file, void *priv,  	struct gspca_dev *gspca_dev = priv;  	int ret; -	if (mutex_lock_interruptible(&gspca_dev->usb_lock)) -		return -ERESTARTSYS;  	if (!gspca_dev->sd_desc->set_jcomp)  		return -EINVAL; +	if (mutex_lock_interruptible(&gspca_dev->usb_lock)) +		return -ERESTARTSYS;  	ret = gspca_dev->sd_desc->set_jcomp(gspca_dev, jpegcomp);  	mutex_unlock(&gspca_dev->usb_lock);  	return ret; diff --git a/drivers/media/video/pvrusb2/Kconfig b/drivers/media/video/pvrusb2/Kconfig index 19eb274c9cd0..854c2a885358 100644 --- a/drivers/media/video/pvrusb2/Kconfig +++ b/drivers/media/video/pvrusb2/Kconfig @@ -42,7 +42,7 @@ config VIDEO_PVRUSB2_DVB  	select DVB_S5H1411 if !DVB_FE_CUSTOMISE  	select DVB_TDA10048 if !DVB_FE_CUSTOMIZE  	select MEDIA_TUNER_TDA18271 if !DVB_FE_CUSTOMIZE -	select MEDIA_TUNER_SIMPLE if !DVB_FE_CUSTOMISE +	select MEDIA_TUNER_SIMPLE if !MEDIA_TUNER_CUSTOMIZE  	select MEDIA_TUNER_TDA8290 if !DVB_FE_CUSTOMIZE  	---help--- diff --git a/drivers/media/video/saa7134/Kconfig b/drivers/media/video/saa7134/Kconfig index 7021bbf5897b..fc2164e28e76 100644 --- a/drivers/media/video/saa7134/Kconfig +++ b/drivers/media/video/saa7134/Kconfig @@ -34,9 +34,9 @@ config VIDEO_SAA7134_DVB  	select DVB_NXT200X if !DVB_FE_CUSTOMISE  	select DVB_TDA10086 if !DVB_FE_CUSTOMISE  	select DVB_TDA826X if !DVB_FE_CUSTOMISE -	select MEDIA_TUNER_TDA827X if !DVB_FE_CUSTOMISE  	select DVB_ISL6421 if !DVB_FE_CUSTOMISE -	select MEDIA_TUNER_SIMPLE if !DVB_FE_CUSTOMISE +	select MEDIA_TUNER_TDA827X if !MEDIA_TUNER_CUSTOMIZE +	select MEDIA_TUNER_SIMPLE if !MEDIA_TUNER_CUSTOMIZE  	---help---  	  This adds support for DVB cards based on the  	  Philips saa7134 chip. diff --git a/drivers/net/ppp_generic.c b/drivers/net/ppp_generic.c index 7e857e938adb..714a23035de1 100644 --- a/drivers/net/ppp_generic.c +++ b/drivers/net/ppp_generic.c @@ -116,6 +116,7 @@ struct ppp {  	unsigned long	last_xmit;	/* jiffies when last pkt sent 9c */  	unsigned long	last_recv;	/* jiffies when last pkt rcvd a0 */  	struct net_device *dev;		/* network interface device a4 */ +	int		closing;	/* is device closing down? a8 */  #ifdef CONFIG_PPP_MULTILINK  	int		nxchan;		/* next channel to send something on */  	u32		nxseq;		/* next sequence number to send */ @@ -995,7 +996,7 @@ ppp_xmit_process(struct ppp *ppp)  	struct sk_buff *skb;  	ppp_xmit_lock(ppp); -	if (ppp->dev) { +	if (!ppp->closing) {  		ppp_push(ppp);  		while (!ppp->xmit_pending  		       && (skb = skb_dequeue(&ppp->file.xq))) @@ -1463,8 +1464,7 @@ static inline void  ppp_do_recv(struct ppp *ppp, struct sk_buff *skb, struct channel *pch)  {  	ppp_recv_lock(ppp); -	/* ppp->dev == 0 means interface is closing down */ -	if (ppp->dev) +	if (!ppp->closing)  		ppp_receive_frame(ppp, skb, pch);  	else  		kfree_skb(skb); @@ -2498,18 +2498,16 @@ init_ppp_file(struct ppp_file *pf, int kind)   */  static void ppp_shutdown_interface(struct ppp *ppp)  { -	struct net_device *dev; -  	mutex_lock(&all_ppp_mutex); -	ppp_lock(ppp); -	dev = ppp->dev; -	ppp->dev = NULL; -	ppp_unlock(ppp);  	/* This will call dev_close() for us. */ -	if (dev) { -		unregister_netdev(dev); -		free_netdev(dev); -	} +	ppp_lock(ppp); +	if (!ppp->closing) { +		ppp->closing = 1; +		ppp_unlock(ppp); +		unregister_netdev(ppp->dev); +	} else +		ppp_unlock(ppp); +  	cardmap_set(&all_ppp_units, ppp->file.index, NULL);  	ppp->file.dead = 1;  	ppp->owner = NULL; @@ -2554,7 +2552,7 @@ static void ppp_destroy_interface(struct ppp *ppp)  	if (ppp->xmit_pending)  		kfree_skb(ppp->xmit_pending); -	kfree(ppp); +	free_netdev(ppp->dev);  }  /* @@ -2616,7 +2614,7 @@ ppp_connect_channel(struct channel *pch, int unit)  	if (pch->file.hdrlen > ppp->file.hdrlen)  		ppp->file.hdrlen = pch->file.hdrlen;  	hdrlen = pch->file.hdrlen + 2;	/* for protocol bytes */ -	if (ppp->dev && hdrlen > ppp->dev->hard_header_len) +	if (hdrlen > ppp->dev->hard_header_len)  		ppp->dev->hard_header_len = hdrlen;  	list_add_tail(&pch->clist, &ppp->channels);  	++ppp->n_channels; diff --git a/drivers/rtc/rtc-isl1208.c b/drivers/rtc/rtc-isl1208.c index 2cd77ab8fc66..054e05294af8 100644 --- a/drivers/rtc/rtc-isl1208.c +++ b/drivers/rtc/rtc-isl1208.c @@ -328,6 +328,13 @@ isl1208_i2c_set_time(struct i2c_client *client, struct rtc_time const *tm)  	int sr;  	u8 regs[ISL1208_RTC_SECTION_LEN] = { 0, }; +	/* The clock has an 8 bit wide bcd-coded register (they never learn) +	 * for the year. tm_year is an offset from 1900 and we are interested +	 * in the 2000-2099 range, so any value less than 100 is invalid. +	 */ +	if (tm->tm_year < 100) +		return -EINVAL; +  	regs[ISL1208_REG_SC] = bin2bcd(tm->tm_sec);  	regs[ISL1208_REG_MN] = bin2bcd(tm->tm_min);  	regs[ISL1208_REG_HR] = bin2bcd(tm->tm_hour) | ISL1208_REG_HR_MIL; diff --git a/drivers/w1/w1_io.c b/drivers/w1/w1_io.c index 0d15b0eaf79a..5139c25ca962 100644 --- a/drivers/w1/w1_io.c +++ b/drivers/w1/w1_io.c @@ -356,7 +356,9 @@ int w1_reset_select_slave(struct w1_slave *sl)  		w1_write_8(sl->master, W1_SKIP_ROM);  	else {  		u8 match[9] = {W1_MATCH_ROM, }; -		memcpy(&match[1], (u8 *)&sl->reg_num, 8); +		u64 rn = le64_to_cpu(*((u64*)&sl->reg_num)); + +		memcpy(&match[1], &rn, 8);  		w1_write_block(sl->master, match, 9);  	}  	return 0; diff --git a/include/acpi/acoutput.h b/include/acpi/acoutput.h index 09d33c7740f0..db8852d8bcf7 100644 --- a/include/acpi/acoutput.h +++ b/include/acpi/acoutput.h @@ -172,7 +172,7 @@  /* Defaults for debug_level, debug and normal */ -#define ACPI_DEBUG_DEFAULT          (ACPI_LV_INIT | ACPI_LV_DEBUG_OBJECT) +#define ACPI_DEBUG_DEFAULT          (ACPI_LV_INFO)  #define ACPI_NORMAL_DEFAULT         (ACPI_LV_INIT | ACPI_LV_DEBUG_OBJECT)  #define ACPI_DEBUG_ALL              (ACPI_LV_AML_DISASSEMBLE | ACPI_LV_ALL_EXCEPTIONS | ACPI_LV_ALL) diff --git a/include/acpi/platform/aclinux.h b/include/acpi/platform/aclinux.h index 029c8c06c151..0515e754449d 100644 --- a/include/acpi/platform/aclinux.h +++ b/include/acpi/platform/aclinux.h @@ -141,6 +141,10 @@ static inline void *acpi_os_acquire_object(acpi_cache_t * cache)  /*   * We need to show where it is safe to preempt execution of ACPICA   */ -#define ACPI_PREEMPTION_POINT()	cond_resched() +#define ACPI_PREEMPTION_POINT()		\ +	do {				\ +		if (!irqs_disabled())	\ +			cond_resched();	\ +	} while (0)  #endif				/* __ACLINUX_H__ */ diff --git a/kernel/cgroup.c b/kernel/cgroup.c index 8185a0f09594..2606d0fb4e54 100644 --- a/kernel/cgroup.c +++ b/kernel/cgroup.c @@ -1024,7 +1024,7 @@ static int cgroup_get_sb(struct file_system_type *fs_type,  		if (ret == -EBUSY) {  			mutex_unlock(&cgroup_mutex);  			mutex_unlock(&inode->i_mutex); -			goto drop_new_super; +			goto free_cg_links;  		}  		/* EBUSY should be the only error here */ @@ -1073,10 +1073,11 @@ static int cgroup_get_sb(struct file_system_type *fs_type,  	return simple_set_mnt(mnt, sb); + free_cg_links: +	free_cg_links(&tmp_cg_links);   drop_new_super:  	up_write(&sb->s_umount);  	deactivate_super(sb); -	free_cg_links(&tmp_cg_links);  	return ret;  } @@ -2934,9 +2935,6 @@ int cgroup_clone(struct task_struct *tsk, struct cgroup_subsys *subsys,   again:  	root = subsys->root;  	if (root == &rootnode) { -		printk(KERN_INFO -		       "Not cloning cgroup for unused subsystem %s\n", -		       subsys->name);  		mutex_unlock(&cgroup_mutex);  		return 0;  	} diff --git a/net/bluetooth/rfcomm/core.c b/net/bluetooth/rfcomm/core.c index ba537fae0a4c..ce68e046d963 100644 --- a/net/bluetooth/rfcomm/core.c +++ b/net/bluetooth/rfcomm/core.c @@ -1786,8 +1786,6 @@ static inline void rfcomm_accept_connection(struct rfcomm_session *s)  	if (err < 0)  		return; -	__module_get(nsock->ops->owner); -  	/* Set our callbacks */  	nsock->sk->sk_data_ready   = rfcomm_l2data_ready;  	nsock->sk->sk_state_change = rfcomm_l2state_change; diff --git a/net/socket.c b/net/socket.c index 92764d836891..76ba80aeac1a 100644 --- a/net/socket.c +++ b/net/socket.c @@ -2307,6 +2307,7 @@ int kernel_accept(struct socket *sock, struct socket **newsock, int flags)  	}  	(*newsock)->ops = sock->ops; +	__module_get((*newsock)->ops->owner);  done:  	return err; diff --git a/sound/pci/hda/patch_sigmatel.c b/sound/pci/hda/patch_sigmatel.c index 596ceabd6504..b77f330d2650 100644 --- a/sound/pci/hda/patch_sigmatel.c +++ b/sound/pci/hda/patch_sigmatel.c @@ -859,6 +859,7 @@ static struct hda_verb stac92hd83xxx_core_init[] = {  	/* power state controls amps */  	{ 0x01, AC_VERB_SET_EAPD, 1 << 2}, +	{}  };  static struct hda_verb stac92hd71bxx_core_init[] = { @@ -870,6 +871,7 @@ static struct hda_verb stac92hd71bxx_core_init[] = {  	{ 0x0a, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(0)},  	{ 0x0d, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(0)},  	{ 0x0f, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(0)}, +	{}  };  #define HD_DISABLE_PORTF 2 @@ -1667,6 +1669,7 @@ static struct snd_pci_quirk stac92hd83xxx_cfg_tbl[] = {  	/* SigmaTel reference board */  	SND_PCI_QUIRK(PCI_VENDOR_ID_INTEL, 0x2668,  		      "DFI LanParty", STAC_92HD71BXX_REF), +	{} /* terminator */  };  static unsigned int ref92hd71bxx_pin_configs[11] = { | 
