Commit 79a66b96 authored by Ingo Molnar's avatar Ingo Molnar

Merge branches 'x86/pat2' and 'x86/fpu'; commit 'v2.6.28' into x86/core

...@@ -220,14 +220,17 @@ and is between 256 and 4096 characters. It is defined in the file ...@@ -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 Bits in debug_level correspond to a level in
ACPI_DEBUG_PRINT statements, e.g., ACPI_DEBUG_PRINT statements, e.g.,
ACPI_DEBUG_PRINT((ACPI_DB_INFO, ... ACPI_DEBUG_PRINT((ACPI_DB_INFO, ...
See Documentation/acpi/debug.txt for more information The debug_level mask defaults to "info". See
about debug layers and levels. 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 Enable AML "Debug" output, i.e., stores to the Debug
object while interpreting AML: object while interpreting AML:
acpi.debug_layer=0xffffffff acpi.debug_level=0x2 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: Enable all messages related to ACPI hardware:
acpi.debug_layer=0x2 acpi.debug_level=0xffffffff acpi.debug_layer=0x2 acpi.debug_level=0xffffffff
......
...@@ -4529,7 +4529,7 @@ S: Maintained ...@@ -4529,7 +4529,7 @@ S: Maintained
USB VIDEO CLASS USB VIDEO CLASS
P: Laurent Pinchart P: Laurent Pinchart
M: laurent.pinchart@skynet.be 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 L: video4linux-list@redhat.com
W: http://linux-uvc.berlios.de W: http://linux-uvc.berlios.de
S: Maintained S: Maintained
......
VERSION = 2 VERSION = 2
PATCHLEVEL = 6 PATCHLEVEL = 6
SUBLEVEL = 28 SUBLEVEL = 28
EXTRAVERSION = -rc9 EXTRAVERSION =
NAME = Erotic Pickled Herring NAME = Erotic Pickled Herring
# *DOCUMENTATION* # *DOCUMENTATION*
......
...@@ -50,9 +50,8 @@ static inline __attribute_const__ __u32 __arch_swab32(__u32 x) ...@@ -50,9 +50,8 @@ static inline __attribute_const__ __u32 __arch_swab32(__u32 x)
static inline __attribute_const__ __u64 __arch_swab64(__u64 x) static inline __attribute_const__ __u64 __arch_swab64(__u64 x)
{ {
__asm__( __asm__(
" dsbh %0, %1 \n" " dsbh %0, %1\n"
" dshd %0, %0 \n" " dshd %0, %0"
" drotr %0, %0, 32 \n"
: "=r" (x) : "=r" (x)
: "r" (x)); : "r" (x));
......
...@@ -232,7 +232,7 @@ typedef elf_fpreg_t elf_fpregset_t[ELF_NFPREG]; ...@@ -232,7 +232,7 @@ typedef elf_fpreg_t elf_fpregset_t[ELF_NFPREG];
*/ */
#ifdef __MIPSEB__ #ifdef __MIPSEB__
#define ELF_DATA ELFDATA2MSB #define ELF_DATA ELFDATA2MSB
#elif __MIPSEL__ #elif defined(__MIPSEL__)
#define ELF_DATA ELFDATA2LSB #define ELF_DATA ELFDATA2LSB
#endif #endif
#define ELF_ARCH EM_MIPS #define ELF_ARCH EM_MIPS
......
...@@ -44,9 +44,12 @@ static inline void flush_tlb_mm(struct mm_struct *mm) ...@@ -44,9 +44,12 @@ static inline void flush_tlb_mm(struct mm_struct *mm)
{ {
BUG_ON(mm == &init_mm); /* Should never happen */ BUG_ON(mm == &init_mm); /* Should never happen */
#ifdef CONFIG_SMP #if 1 || defined(CONFIG_SMP)
flush_tlb_all(); flush_tlb_all();
#else #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) {
if (mm->context != 0) if (mm->context != 0)
free_sid(mm->context); free_sid(mm->context);
......
...@@ -520,6 +520,7 @@ config X86_PTRACE_BTS ...@@ -520,6 +520,7 @@ config X86_PTRACE_BTS
bool "Branch Trace Store" bool "Branch Trace Store"
default y default y
depends on X86_DEBUGCTLMSR depends on X86_DEBUGCTLMSR
depends on BROKEN
help help
This adds a ptrace interface to the hardware's branch trace store. This adds a ptrace interface to the hardware's branch trace store.
......
...@@ -687,7 +687,7 @@ void math_error(void __user *ip) ...@@ -687,7 +687,7 @@ void math_error(void __user *ip)
err = swd & ~cwd & 0x3f; err = swd & ~cwd & 0x3f;
#if CONFIG_X86_32 #ifdef CONFIG_X86_32
if (!err) if (!err)
return; return;
#endif #endif
......
...@@ -684,7 +684,7 @@ int track_pfn_vma_copy(struct vm_area_struct *vma) ...@@ -684,7 +684,7 @@ int track_pfn_vma_copy(struct vm_area_struct *vma)
{ {
int retval = 0; int retval = 0;
unsigned long i, j; unsigned long i, j;
u64 paddr; resource_size_t paddr;
unsigned long prot; unsigned long prot;
unsigned long vma_start = vma->vm_start; unsigned long vma_start = vma->vm_start;
unsigned long vma_end = vma->vm_end; unsigned long vma_end = vma->vm_end;
...@@ -746,8 +746,8 @@ int track_pfn_vma_new(struct vm_area_struct *vma, pgprot_t prot, ...@@ -746,8 +746,8 @@ int track_pfn_vma_new(struct vm_area_struct *vma, pgprot_t prot,
{ {
int retval = 0; int retval = 0;
unsigned long i, j; unsigned long i, j;
u64 base_paddr; resource_size_t base_paddr;
u64 paddr; resource_size_t paddr;
unsigned long vma_start = vma->vm_start; unsigned long vma_start = vma->vm_start;
unsigned long vma_end = vma->vm_end; unsigned long vma_end = vma->vm_end;
unsigned long vma_size = vma_end - vma_start; 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, ...@@ -757,12 +757,12 @@ int track_pfn_vma_new(struct vm_area_struct *vma, pgprot_t prot,
if (is_linear_pfn_mapping(vma)) { if (is_linear_pfn_mapping(vma)) {
/* reserve the whole chunk starting from vm_pgoff */ /* 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); return reserve_pfn_range(paddr, vma_size, prot);
} }
/* reserve page by page using pfn and size */ /* 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) { for (i = 0; i < size; i += PAGE_SIZE) {
paddr = base_paddr + i; paddr = base_paddr + i;
retval = reserve_pfn_range(paddr, PAGE_SIZE, prot); retval = reserve_pfn_range(paddr, PAGE_SIZE, prot);
...@@ -790,7 +790,7 @@ void untrack_pfn_vma(struct vm_area_struct *vma, unsigned long pfn, ...@@ -790,7 +790,7 @@ void untrack_pfn_vma(struct vm_area_struct *vma, unsigned long pfn,
unsigned long size) unsigned long size)
{ {
unsigned long i; unsigned long i;
u64 paddr; resource_size_t paddr;
unsigned long prot; unsigned long prot;
unsigned long vma_start = vma->vm_start; unsigned long vma_start = vma->vm_start;
unsigned long vma_end = vma->vm_end; unsigned long vma_end = vma->vm_end;
...@@ -801,14 +801,14 @@ void untrack_pfn_vma(struct vm_area_struct *vma, unsigned long pfn, ...@@ -801,14 +801,14 @@ void untrack_pfn_vma(struct vm_area_struct *vma, unsigned long pfn,
if (is_linear_pfn_mapping(vma)) { if (is_linear_pfn_mapping(vma)) {
/* free the whole chunk starting from vm_pgoff */ /* 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); free_pfn_range(paddr, vma_size);
return; return;
} }
if (size != 0 && size != vma_size) { if (size != 0 && size != vma_size) {
/* free page by page, using pfn and 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) { for (i = 0; i < size; i += PAGE_SIZE) {
paddr = paddr + i; paddr = paddr + i;
free_pfn_range(paddr, PAGE_SIZE); free_pfn_range(paddr, PAGE_SIZE);
......
...@@ -688,14 +688,6 @@ void __init acpi_early_init(void) ...@@ -688,14 +688,6 @@ void __init acpi_early_init(void)
if (acpi_disabled) if (acpi_disabled)
return; 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); printk(KERN_INFO PREFIX "Core revision %08x\n", ACPI_CA_VERSION);
/* enable workarounds, unless strict ACPI spec. compliance */ /* enable workarounds, unless strict ACPI spec. compliance */
......
...@@ -64,7 +64,7 @@ u32 acpi_dbg_level = ACPI_DEBUG_DEFAULT; ...@@ -64,7 +64,7 @@ u32 acpi_dbg_level = ACPI_DEBUG_DEFAULT;
/* Debug switch - layer (component) mask */ /* 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; u32 acpi_gbl_nesting_level = 0;
/* Debugger globals */ /* Debugger globals */
......
...@@ -394,6 +394,12 @@ static void edac_device_workq_function(struct work_struct *work_req) ...@@ -394,6 +394,12 @@ static void edac_device_workq_function(struct work_struct *work_req)
mutex_lock(&device_ctls_mutex); 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 */ /* Only poll controllers that are running polled and have a check */
if ((edac_dev->op_state == OP_RUNNING_POLL) && if ((edac_dev->op_state == OP_RUNNING_POLL) &&
(edac_dev->edac_check != NULL)) { (edac_dev->edac_check != NULL)) {
...@@ -585,14 +591,14 @@ struct edac_device_ctl_info *edac_device_del_device(struct device *dev) ...@@ -585,14 +591,14 @@ struct edac_device_ctl_info *edac_device_del_device(struct device *dev)
/* mark this instance as OFFLINE */ /* mark this instance as OFFLINE */
edac_dev->op_state = OP_OFFLINE; edac_dev->op_state = OP_OFFLINE;
/* clear workq processing on this instance */
edac_device_workq_teardown(edac_dev);
/* deregister from global list */ /* deregister from global list */
del_edac_device_from_global_list(edac_dev); del_edac_device_from_global_list(edac_dev);
mutex_unlock(&device_ctls_mutex); 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 */ /* Tear down the sysfs entries for this instance */
edac_device_remove_sysfs(edac_dev); edac_device_remove_sysfs(edac_dev);
......
...@@ -44,7 +44,7 @@ void radeon_irq_set_state(struct drm_device *dev, u32 mask, int state) ...@@ -44,7 +44,7 @@ void radeon_irq_set_state(struct drm_device *dev, u32 mask, int state)
else else
dev_priv->irq_enable_reg &= ~mask; 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); 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) ...@@ -57,7 +57,7 @@ static void r500_vbl_irq_set_state(struct drm_device *dev, u32 mask, int state)
else else
dev_priv->r500_disp_irq_reg &= ~mask; 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); RADEON_WRITE(R500_DxMODE_INT_MASK, dev_priv->r500_disp_irq_reg);
} }
......
...@@ -81,11 +81,12 @@ static u8 cs5530_udma_filter(ide_drive_t *drive) ...@@ -81,11 +81,12 @@ static u8 cs5530_udma_filter(ide_drive_t *drive)
{ {
ide_hwif_t *hwif = drive->hwif; ide_hwif_t *hwif = drive->hwif;
ide_drive_t *mate = ide_get_pair_dev(drive); ide_drive_t *mate = ide_get_pair_dev(drive);
u16 *mateid = mate->id; u16 *mateid;
u8 mask = hwif->ultra_mask; u8 mask = hwif->ultra_mask;
if (mate == NULL) if (mate == NULL)
goto out; goto out;
mateid = mate->id;
if (ata_id_has_dma(mateid) && __ide_dma_bad_drive(mate) == 0) { if (ata_id_has_dma(mateid) && __ide_dma_bad_drive(mate) == 0) {
if ((mateid[ATA_ID_FIELD_VALID] & 4) && if ((mateid[ATA_ID_FIELD_VALID] & 4) &&
......
...@@ -104,11 +104,12 @@ static u8 sc1200_udma_filter(ide_drive_t *drive) ...@@ -104,11 +104,12 @@ static u8 sc1200_udma_filter(ide_drive_t *drive)
{ {
ide_hwif_t *hwif = drive->hwif; ide_hwif_t *hwif = drive->hwif;
ide_drive_t *mate = ide_get_pair_dev(drive); ide_drive_t *mate = ide_get_pair_dev(drive);
u16 *mateid = mate->id; u16 *mateid;
u8 mask = hwif->ultra_mask; u8 mask = hwif->ultra_mask;
if (mate == NULL) if (mate == NULL)
goto out; goto out;
mateid = mate->id;
if (ata_id_has_dma(mateid) && __ide_dma_bad_drive(mate) == 0) { if (ata_id_has_dma(mateid) && __ide_dma_bad_drive(mate) == 0) {
if ((mateid[ATA_ID_FIELD_VALID] & 4) && if ((mateid[ATA_ID_FIELD_VALID] & 4) &&
......
...@@ -9,11 +9,11 @@ config DVB_B2C2_FLEXCOP ...@@ -9,11 +9,11 @@ config DVB_B2C2_FLEXCOP
select DVB_STV0297 if !DVB_FE_CUSTOMISE select DVB_STV0297 if !DVB_FE_CUSTOMISE
select DVB_BCM3510 if !DVB_FE_CUSTOMISE select DVB_BCM3510 if !DVB_FE_CUSTOMISE
select DVB_LGDT330X 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_S5H1420 if !DVB_FE_CUSTOMISE
select DVB_TUNER_ITD1000 if !DVB_FE_CUSTOMISE select DVB_TUNER_ITD1000 if !DVB_FE_CUSTOMISE
select DVB_ISL6421 if !DVB_FE_CUSTOMISE select DVB_ISL6421 if !DVB_FE_CUSTOMISE
select DVB_CX24123 if !DVB_FE_CUSTOMISE select DVB_CX24123 if !DVB_FE_CUSTOMISE
select MEDIA_TUNER_SIMPLE if !MEDIA_TUNER_CUSTOMIZE
help help
Support for the digital TV receiver chip made by B2C2 Inc. included in Support for the digital TV receiver chip made by B2C2 Inc. included in
Technisats PCI cards and USB boxes. Technisats PCI cards and USB boxes.
......
...@@ -628,12 +628,14 @@ int flexcop_frontend_init(struct flexcop_device *fc) ...@@ -628,12 +628,14 @@ int flexcop_frontend_init(struct flexcop_device *fc)
} }
/* try the cable dvb (stv0297) */ /* 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); fc->fe = dvb_attach(stv0297_attach, &alps_tdee4_stv0297_config, i2c);
if (fc->fe != NULL) { if (fc->fe != NULL) {
fc->dev_type = FC_CABLE; fc->dev_type = FC_CABLE;
fc->fe->ops.tuner_ops.set_params = alps_tdee4_stv0297_tuner_set_params; fc->fe->ops.tuner_ops.set_params = alps_tdee4_stv0297_tuner_set_params;
goto fe_found; goto fe_found;
} }
fc->fc_i2c_adap[0].no_base_addr = 0;
/* try the sky v2.3 (vp310/Samsung tbdu18132(tsa5059)) */ /* try the sky v2.3 (vp310/Samsung tbdu18132(tsa5059)) */
fc->fe = dvb_attach(mt312_attach, fc->fe = dvb_attach(mt312_attach,
......
...@@ -47,8 +47,12 @@ static int flexcop_i2c_read4(struct flexcop_i2c_adapter *i2c, ...@@ -47,8 +47,12 @@ 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 */ int len = r100.tw_sm_c_100.total_bytes, /* remember total_bytes is buflen-1 */
ret; ret;
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; r100.tw_sm_c_100.no_base_addr_ack_error = i2c->no_base_addr;
ret = flexcop_i2c_operation(i2c->fc, &r100); ret = flexcop_i2c_operation(i2c->fc, &r100);
}
if (ret != 0) { if (ret != 0) {
deb_i2c("read failed. %d\n", ret); deb_i2c("read failed. %d\n", ret);
return ret; return ret;
......
...@@ -8,7 +8,7 @@ config DVB_BT8XX ...@@ -8,7 +8,7 @@ config DVB_BT8XX
select DVB_OR51211 if !DVB_FE_CUSTOMISE select DVB_OR51211 if !DVB_FE_CUSTOMISE
select DVB_LGDT330X if !DVB_FE_CUSTOMISE select DVB_LGDT330X if !DVB_FE_CUSTOMISE
select DVB_ZL10353 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 help
Support for PCI cards based on the Bt8xx PCI bridge. Examples are Support for PCI cards based on the Bt8xx PCI bridge. Examples are
the Nebula cards, the Pinnacle PCTV cards, the Twinhan DST cards, the Nebula cards, the Pinnacle PCTV cards, the Twinhan DST cards,
......
...@@ -24,8 +24,8 @@ config DVB_USB_A800 ...@@ -24,8 +24,8 @@ config DVB_USB_A800
tristate "AVerMedia AverTV DVB-T USB 2.0 (A800)" tristate "AVerMedia AverTV DVB-T USB 2.0 (A800)"
depends on DVB_USB depends on DVB_USB
select DVB_DIB3000MC select DVB_DIB3000MC
select MEDIA_TUNER_MT2060 if !DVB_FE_CUSTOMISE
select DVB_PLL if !DVB_FE_CUSTOMISE select DVB_PLL if !DVB_FE_CUSTOMISE
select MEDIA_TUNER_MT2060 if !MEDIA_TUNER_CUSTOMIZE
help help
Say Y here to support the AVerMedia AverTV DVB-T USB 2.0 (A800) receiver. Say Y here to support the AVerMedia AverTV DVB-T USB 2.0 (A800) receiver.
...@@ -34,7 +34,7 @@ config DVB_USB_DIBUSB_MB ...@@ -34,7 +34,7 @@ config DVB_USB_DIBUSB_MB
depends on DVB_USB depends on DVB_USB
select DVB_PLL if !DVB_FE_CUSTOMISE select DVB_PLL if !DVB_FE_CUSTOMISE
select DVB_DIB3000MB select DVB_DIB3000MB
select MEDIA_TUNER_MT2060 if !DVB_FE_CUSTOMISE select MEDIA_TUNER_MT2060 if !MEDIA_TUNER_CUSTOMIZE
help help
Support for USB 1.1 and 2.0 DVB-T receivers based on reference designs made by 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. DiBcom (<http://www.dibcom.fr>) equipped with a DiB3000M-B demodulator.
...@@ -55,7 +55,7 @@ config DVB_USB_DIBUSB_MC ...@@ -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)" tristate "DiBcom USB DVB-T devices (based on the DiB3000M-C/P) (see help for device list)"
depends on DVB_USB depends on DVB_USB
select DVB_DIB3000MC select DVB_DIB3000MC
select MEDIA_TUNER_MT2060 if !DVB_FE_CUSTOMISE select MEDIA_TUNER_MT2060 if !MEDIA_TUNER_CUSTOMIZE
help help
Support for USB2.0 DVB-T receivers based on reference designs made by 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. DiBcom (<http://www.dibcom.fr>) equipped with a DiB3000M-C/P demodulator.
...@@ -73,11 +73,11 @@ config DVB_USB_DIB0700 ...@@ -73,11 +73,11 @@ config DVB_USB_DIB0700
select DVB_DIB7000M select DVB_DIB7000M
select DVB_DIB3000MC select DVB_DIB3000MC
select DVB_S5H1411 if !DVB_FE_CUSTOMISE 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 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 help
Support for USB2.0/1.1 DVB receivers based on the DiB0700 USB bridge. The 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 USB bridge is also present in devices having the DiB7700 DVB-T-USB
...@@ -95,7 +95,7 @@ config DVB_USB_UMT_010 ...@@ -95,7 +95,7 @@ config DVB_USB_UMT_010
depends on DVB_USB depends on DVB_USB
select DVB_PLL if !DVB_FE_CUSTOMISE select DVB_PLL if !DVB_FE_CUSTOMISE
select DVB_DIB3000MC select DVB_DIB3000MC
select MEDIA_TUNER_MT2060 if !DVB_FE_CUSTOMISE select MEDIA_TUNER_MT2060 if !MEDIA_TUNER_CUSTOMIZE
help help
Say Y here to support the HanfTek UMT-010 USB2.0 stick-sized DVB-T receiver. Say Y here to support the HanfTek UMT-010 USB2.0 stick-sized DVB-T receiver.
...@@ -107,11 +107,11 @@ config DVB_USB_CXUSB ...@@ -107,11 +107,11 @@ config DVB_USB_CXUSB
select DVB_LGDT330X if !DVB_FE_CUSTOMISE select DVB_LGDT330X if !DVB_FE_CUSTOMISE
select DVB_MT352 if !DVB_FE_CUSTOMISE select DVB_MT352 if !DVB_FE_CUSTOMISE
select DVB_ZL10353 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_DIB7000P if !DVB_FE_CUSTOMISE
select DVB_TUNER_DIB0070 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 help
Say Y here to support the Conexant USB2.0 hybrid reference design. Say Y here to support the Conexant USB2.0 hybrid reference design.
Currently, only DVB and ATSC modes are supported, analog mode Currently, only DVB and ATSC modes are supported, analog mode
...@@ -124,9 +124,9 @@ config DVB_USB_M920X ...@@ -124,9 +124,9 @@ config DVB_USB_M920X
tristate "Uli m920x DVB-T USB2.0 support" tristate "Uli m920x DVB-T USB2.0 support"
depends on DVB_USB depends on DVB_USB
select DVB_MT352 if !DVB_FE_CUSTOMISE 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 DVB_TDA1004X if !DVB_FE_CUSTOMISE
select MEDIA_TUNER_QT1010 if !MEDIA_TUNER_CUSTOMIZE
select MEDIA_TUNER_TDA827X if !MEDIA_TUNER_CUSTOMIZE
help help
Say Y here to support the MSI Mega Sky 580 USB2.0 DVB-T receiver. Say Y here to support the MSI Mega Sky 580 USB2.0 DVB-T receiver.
Currently, only devices with a product id of Currently, only devices with a product id of
...@@ -137,7 +137,7 @@ config DVB_USB_GL861 ...@@ -137,7 +137,7 @@ config DVB_USB_GL861
tristate "Genesys Logic GL861 USB2.0 support" tristate "Genesys Logic GL861 USB2.0 support"
depends on DVB_USB depends on DVB_USB
select DVB_ZL10353 if !DVB_FE_CUSTOMISE select DVB_ZL10353 if !DVB_FE_CUSTOMISE
select MEDIA_TUNER_QT1010 if !DVB_FE_CUSTOMISE select MEDIA_TUNER_QT1010 if !MEDIA_TUNER_CUSTOMIZE
help help
Say Y here to support the MSI Megasky 580 (55801) DVB-T USB2.0 Say Y here to support the MSI Megasky 580 (55801) DVB-T USB2.0
receiver with USB ID 0db0:5581. receiver with USB ID 0db0:5581.
...@@ -146,7 +146,7 @@ config DVB_USB_AU6610 ...@@ -146,7 +146,7 @@ config DVB_USB_AU6610
tristate "Alcor Micro AU6610 USB2.0 support" tristate "Alcor Micro AU6610 USB2.0 support"
depends on DVB_USB depends on DVB_USB
select DVB_ZL10353 if !DVB_FE_CUSTOMISE select DVB_ZL10353 if !DVB_FE_CUSTOMISE
select MEDIA_TUNER_QT1010 if !DVB_FE_CUSTOMISE select MEDIA_TUNER_QT1010 if !MEDIA_TUNER_CUSTOMIZE
help help
Say Y here to support the Sigmatek DVB-110 DVB-T USB2.0 receiver. Say Y here to support the Sigmatek DVB-110 DVB-T USB2.0 receiver.
...@@ -198,8 +198,8 @@ config DVB_USB_NOVA_T_USB2 ...@@ -198,8 +198,8 @@ config DVB_USB_NOVA_T_USB2
tristate "Hauppauge WinTV-NOVA-T usb2 DVB-T USB2.0 support" tristate "Hauppauge WinTV-NOVA-T usb2 DVB-T USB2.0 support"
depends on DVB_USB depends on DVB_USB
select DVB_DIB3000MC select DVB_DIB3000MC
select MEDIA_TUNER_MT2060 if !DVB_FE_CUSTOMISE
select DVB_PLL if !DVB_FE_CUSTOMISE select DVB_PLL if !DVB_FE_CUSTOMISE
select MEDIA_TUNER_MT2060 if !MEDIA_TUNER_CUSTOMIZE
help help
Say Y here to support the Hauppauge WinTV-NOVA-T usb2 DVB-T USB2.0 receiver. Say Y here to support the Hauppauge WinTV-NOVA-T usb2 DVB-T USB2.0 receiver.
...@@ -235,8 +235,8 @@ config DVB_USB_OPERA1 ...@@ -235,8 +235,8 @@ config DVB_USB_OPERA1
config DVB_USB_AF9005 config DVB_USB_AF9005
tristate "Afatech AF9005 DVB-T USB1.1 support" tristate "Afatech AF9005 DVB-T USB1.1 support"
depends on DVB_USB && EXPERIMENTAL depends on DVB_USB && EXPERIMENTAL
select MEDIA_TUNER_MT2060 if !DVB_FE_CUSTOMISE select MEDIA_TUNER_MT2060 if !MEDIA_TUNER_CUSTOMIZE
select MEDIA_TUNER_QT1010 if !DVB_FE_CUSTOMISE select MEDIA_TUNER_QT1010 if !MEDIA_TUNER_CUSTOMIZE
help help
Say Y here to support the Afatech AF9005 based DVB-T USB1.1 receiver Say Y here to support the Afatech AF9005 based DVB-T USB1.1 receiver
and the TerraTec Cinergy T USB XE (Rev.1) and the TerraTec Cinergy T USB XE (Rev.1)
...@@ -284,7 +284,7 @@ config DVB_USB_DTV5100 ...@@ -284,7 +284,7 @@ config DVB_USB_DTV5100
tristate "AME DTV-5100 USB2.0 DVB-T support" tristate "AME DTV-5100 USB2.0 DVB-T support"
depends on DVB_USB depends on DVB_USB
select DVB_ZL10353 if !DVB_FE_CUSTOMISE select DVB_ZL10353 if !DVB_FE_CUSTOMISE
select MEDIA_TUNER_QT1010 if !DVB_FE_CUSTOMISE select MEDIA_TUNER_QT1010 if !MEDIA_TUNER_CUSTOMIZE
help help
Say Y here to support the AME DTV-5100 USB2.0 DVB-T receiver. Say Y here to support the AME DTV-5100 USB2.0 DVB-T receiver.
...@@ -293,9 +293,9 @@ config DVB_USB_AF9015 ...@@ -293,9 +293,9 @@ config DVB_USB_AF9015
depends on DVB_USB && EXPERIMENTAL depends on DVB_USB && EXPERIMENTAL
select DVB_AF9013 select DVB_AF9013
select DVB_PLL if !DVB_FE_CUSTOMISE select DVB_PLL if !DVB_FE_CUSTOMISE
select MEDIA_TUNER_MT2060 if !DVB_FE_CUSTOMISE select MEDIA_TUNER_MT2060 if !MEDIA_TUNER_CUSTOMIZE
select MEDIA_TUNER_QT1010 if !DVB_FE_CUSTOMISE select MEDIA_TUNER_QT1010 if !MEDIA_TUNER_CUSTOMIZE
select MEDIA_TUNER_TDA18271 if !DVB_FE_CUSTOMISE select MEDIA_TUNER_TDA18271 if !MEDIA_TUNER_CUSTOMIZE
select MEDIA_TUNER_MXL5005S if !DVB_FE_CUSTOMISE select MEDIA_TUNER_MXL5005S if !MEDIA_TUNER_CUSTOMIZE
help help
Say Y here to support the Afatech AF9015 based DVB-T USB2.0 receiver Say Y here to support the Afatech AF9015 based DVB-T USB2.0 receiver
...@@ -446,13 +446,13 @@ static int stk7700ph_tuner_attach(struct dvb_usb_adapter *adap) ...@@ -446,13 +446,13 @@ static int stk7700ph_tuner_attach(struct dvb_usb_adapter *adap)
== NULL ? -ENODEV : 0; == NULL ? -ENODEV : 0;
} }
#define DEFAULT_RC_INTERVAL 150 #define DEFAULT_RC_INTERVAL 50
static u8 rc_request[] = { REQUEST_POLL_RC, 0 }; static u8 rc_request[] = { REQUEST_POLL_RC, 0 };
/* Number of keypresses to ignore before start repeating */ /* Number of keypresses to ignore before start repeating */
#define RC_REPEAT_DELAY 2 #define RC_REPEAT_DELAY 6
#define RC_REPEAT_DELAY_V1_20 5 #define RC_REPEAT_DELAY_V1_20 10
......
...@@ -106,7 +106,7 @@ config DVB_BUDGET_CI ...@@ -106,7 +106,7 @@ config DVB_BUDGET_CI
select DVB_TDA1004X if !DVB_FE_CUSTOMISE select DVB_TDA1004X if !DVB_FE_CUSTOMISE
select DVB_LNBP21 if !DVB_FE_CUSTOMISE select DVB_LNBP21 if !DVB_FE_CUSTOMISE
select DVB_TDA10023 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 select VIDEO_IR
help help
Support for simple SAA7146 based DVB cards Support for simple SAA7146 based DVB cards
......
...@@ -831,7 +831,7 @@ long v4l_compat_ioctl32(struct file *file, unsigned int cmd, unsigned long arg) ...@@ -831,7 +831,7 @@ long v4l_compat_ioctl32(struct file *file, unsigned int cmd, unsigned long arg)
{ {
int ret = -ENOIOCTLCMD; int ret = -ENOIOCTLCMD;
if (!file->f_op->ioctl) if (!file->f_op->ioctl && !file->f_op->unlocked_ioctl)
return ret; return ret;
switch (cmd) { switch (cmd) {
......
...@@ -9,7 +9,7 @@ config VIDEO_CX18 ...@@ -9,7 +9,7 @@ config VIDEO_CX18
select VIDEO_CX2341X select VIDEO_CX2341X
select VIDEO_CS5345 select VIDEO_CS5345
select DVB_S5H1409 if !DVB_FE_CUSTOMISE select DVB_S5H1409 if !DVB_FE_CUSTOMISE
select MEDIA_TUNER_MXL5005S if !DVB_FE_CUSTOMISE select MEDIA_TUNER_MXL5005S if !MEDIA_TUNER_CUSTOMIZE
---help--- ---help---
This is a video4linux driver for Conexant cx23418 based This is a video4linux driver for Conexant cx23418 based
PCI combo video recorder devices. PCI combo video recorder devices.
......
...@@ -11,16 +11,16 @@ config VIDEO_CX23885 ...@@ -11,16 +11,16 @@ config VIDEO_CX23885
select VIDEO_CX25840 select VIDEO_CX25840
select VIDEO_CX2341X select VIDEO_CX2341X
select DVB_DIB7000P if !DVB_FE_CUSTOMISE select DVB_DIB7000P if !DVB_FE_CUSTOMISE
select MEDIA_TUNER_MT2131 if !DVB_FE_CUSTOMISE
select DVB_S5H1409 if !DVB_FE_CUSTOMISE select DVB_S5H1409 if !DVB_FE_CUSTOMISE
select DVB_S5H1411 if !DVB_FE_CUSTOMISE select DVB_S5H1411 if !DVB_FE_CUSTOMISE
select DVB_LGDT330X if !DVB_FE_CUSTOMISE select DVB_LGDT330X if !DVB_FE_CUSTOMISE
select DVB_ZL10353 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_XC2028 if !DVB_FE_CUSTOMIZE
select MEDIA_TUNER_TDA8290 if !DVB_FE_CUSTOMIZE select MEDIA_TUNER_TDA8290 if !DVB_FE_CUSTOMIZE
select MEDIA_TUNER_TDA18271 if !DVB_FE_CUSTOMIZE select MEDIA_TUNER_TDA18271 if !DVB_FE_CUSTOMIZE
select MEDIA_TUNER_XC5000 if !DVB_FE_CUSTOMIZE select MEDIA_TUNER_XC5000 if !DVB_FE_CUSTOMIZE
select DVB_TDA10048 if !DVB_FE_CUSTOMIZE
---help--- ---help---
This is a video4linux driver for Conexant 23885 based This is a video4linux driver for Conexant 23885 based
TV cards. TV cards.
......
...@@ -56,12 +56,12 @@ config VIDEO_CX88_DVB ...@@ -56,12 +56,12 @@ config VIDEO_CX88_DVB
select DVB_NXT200X if !DVB_FE_CUSTOMISE select DVB_NXT200X if !DVB_FE_CUSTOMISE
select DVB_CX24123 if !DVB_FE_CUSTOMISE select DVB_CX24123 if !DVB_FE_CUSTOMISE
select DVB_ISL6421 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_S5H1411 if !DVB_FE_CUSTOMISE
select DVB_CX24116 if !DVB_FE_CUSTOMISE select DVB_CX24116 if !DVB_FE_CUSTOMISE
select DVB_STV0299 if !DVB_FE_CUSTOMISE select DVB_STV0299 if !DVB_FE_CUSTOMISE
select DVB_STV0288 if !DVB_FE_CUSTOMISE select DVB_STV0288 if !DVB_FE_CUSTOMISE
select DVB_STB6000 if !DVB_FE_CUSTOMISE select DVB_STB6000 if !DVB_FE_CUSTOMISE
select MEDIA_TUNER_SIMPLE if !MEDIA_TUNER_CUSTOMIZE
---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.
......
...@@ -549,10 +549,11 @@ static int em28xx_config(struct em28xx *dev) ...@@ -549,10 +549,11 @@ static int em28xx_config(struct em28xx *dev)
static void em28xx_config_i2c(struct em28xx *dev) static void em28xx_config_i2c(struct em28xx *dev)
{ {
struct v4l2_routing route; struct v4l2_routing route;
int zero = 0;
route.input = INPUT(dev->ctl_input)->vmux; route.input = INPUT(dev->ctl_input)->vmux;
route.output = 0; 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_INT_S_VIDEO_ROUTING, &route);
em28xx_i2c_call_clients(dev, VIDIOC_STREAMON, NULL); em28xx_i2c_call_clients(dev, VIDIOC_STREAMON, NULL);
} }
......
...@@ -1264,10 +1264,10 @@ static int vidioc_s_jpegcomp(struct file *file, void *priv, ...@@ -1264,10 +1264,10 @@ static int vidioc_s_jpegcomp(struct file *file, void *priv,
struct gspca_dev *gspca_dev = priv; struct gspca_dev *gspca_dev = priv;
int ret; int ret;
if (mutex_lock_interruptible(&gspca_dev->usb_lock))
return -ERESTARTSYS;
if (!gspca_dev->sd_desc->set_jcomp) if (!gspca_dev->sd_desc->set_jcomp)
return -EINVAL; return -EINVAL;
if (mutex_lock_interruptible(&gspca_dev->usb_lock))
return -ERESTARTSYS;
ret = gspca_dev->sd_desc->set_jcomp(gspca_dev, jpegcomp); ret = gspca_dev->sd_desc->set_jcomp(gspca_dev, jpegcomp);
mutex_unlock(&gspca_dev->usb_lock); mutex_unlock(&gspca_dev->usb_lock);
return ret; return ret;
......
...@@ -42,7 +42,7 @@ config VIDEO_PVRUSB2_DVB ...@@ -42,7 +42,7 @@ config VIDEO_PVRUSB2_DVB
select DVB_S5H1411 if !DVB_FE_CUSTOMISE select DVB_S5H1411 if !DVB_FE_CUSTOMISE
select DVB_TDA10048 if !DVB_FE_CUSTOMIZE select DVB_TDA10048 if !DVB_FE_CUSTOMIZE
select MEDIA_TUNER_TDA18271 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 select MEDIA_TUNER_TDA8290 if !DVB_FE_CUSTOMIZE
---help--- ---help---
......
...@@ -34,9 +34,9 @@ config VIDEO_SAA7134_DVB ...@@ -34,9 +34,9 @@ config VIDEO_SAA7134_DVB
select DVB_NXT200X if !DVB_FE_CUSTOMISE select DVB_NXT200X if !DVB_FE_CUSTOMISE
select DVB_TDA10086 if !DVB_FE_CUSTOMISE select DVB_TDA10086 if !DVB_FE_CUSTOMISE
select DVB_TDA826X 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 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--- ---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.
......
...@@ -116,6 +116,7 @@ struct ppp { ...@@ -116,6 +116,7 @@ struct ppp {
unsigned long last_xmit; /* jiffies when last pkt sent 9c */ unsigned long last_xmit; /* jiffies when last pkt sent 9c */
unsigned long last_recv; /* jiffies when last pkt rcvd a0 */ unsigned long last_recv; /* jiffies when last pkt rcvd a0 */
struct net_device *dev; /* network interface device a4 */ struct net_device *dev; /* network interface device a4 */
int closing; /* is device closing down? a8 */
#ifdef CONFIG_PPP_MULTILINK #ifdef CONFIG_PPP_MULTILINK
int nxchan; /* next channel to send something on */ int nxchan; /* next channel to send something on */
u32 nxseq; /* next sequence number to send */ u32 nxseq; /* next sequence number to send */
...@@ -995,7 +996,7 @@ ppp_xmit_process(struct ppp *ppp) ...@@ -995,7 +996,7 @@ ppp_xmit_process(struct ppp *ppp)
struct sk_buff *skb; struct sk_buff *skb;
ppp_xmit_lock(ppp); ppp_xmit_lock(ppp);
if (ppp->dev) { if (!ppp->closing) {
ppp_push(ppp); ppp_push(ppp);
while (!ppp->xmit_pending while (!ppp->xmit_pending
&& (skb = skb_dequeue(&ppp->file.xq))) && (skb = skb_dequeue(&ppp->file.xq)))
...@@ -1463,8 +1464,7 @@ static inline void ...@@ -1463,8 +1464,7 @@ static inline void
ppp_do_recv(struct ppp *ppp, struct sk_buff *skb, struct channel *pch) ppp_do_recv(struct ppp *ppp, struct sk_buff *skb, struct channel *pch)
{ {
ppp_recv_lock(ppp); ppp_recv_lock(ppp);
/* ppp->dev == 0 means interface is closing down */ if (!ppp->closing)
if (ppp->dev)
ppp_receive_frame(ppp, skb, pch); ppp_receive_frame(ppp, skb, pch);
else else
kfree_skb(skb); kfree_skb(skb);
...@@ -2498,18 +2498,16 @@ init_ppp_file(struct ppp_file *pf, int kind) ...@@ -2498,18 +2498,16 @@ init_ppp_file(struct ppp_file *pf, int kind)
*/ */
static void ppp_shutdown_interface(struct ppp *ppp) static void ppp_shutdown_interface(struct ppp *ppp)
{ {
struct net_device *dev;
mutex_lock(&all_ppp_mutex); mutex_lock(&all_ppp_mutex);
/* This will call dev_close() for us. */
ppp_lock(ppp); ppp_lock(ppp);
dev = ppp->dev; if (!ppp->closing) {
ppp->dev = NULL; ppp->closing = 1;
ppp_unlock(ppp); ppp_unlock(ppp);
/* This will call dev_close() for us. */ unregister_netdev(ppp->dev);
if (dev) { } else
unregister_netdev(dev); ppp_unlock(ppp);
free_netdev(dev);
}
cardmap_set(&all_ppp_units, ppp->file.index, NULL); cardmap_set(&all_ppp_units, ppp->file.index, NULL);
ppp->file.dead = 1; ppp->file.dead = 1;
ppp->owner = NULL; ppp->owner = NULL;
...@@ -2554,7 +2552,7 @@ static void ppp_destroy_interface(struct ppp *ppp) ...@@ -2554,7 +2552,7 @@ static void ppp_destroy_interface(struct ppp *ppp)
if (ppp->xmit_pending) if (ppp->xmit_pending)
kfree_skb(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) ...@@ -2616,7 +2614,7 @@ ppp_connect_channel(struct channel *pch, int unit)
if (pch->file.hdrlen > ppp->file.hdrlen) if (pch->file.hdrlen > ppp->file.hdrlen)
ppp->file.hdrlen = pch->file.hdrlen; ppp->file.hdrlen = pch->file.hdrlen;
hdrlen = pch->file.hdrlen + 2; /* for protocol bytes */ 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; ppp->dev->hard_header_len = hdrlen;
list_add_tail(&pch->clist, &ppp->channels); list_add_tail(&pch->clist, &ppp->channels);
++ppp->n_channels; ++ppp->n_channels;
......
...@@ -328,6 +328,13 @@ isl1208_i2c_set_time(struct i2c_client *client, struct rtc_time const *tm) ...@@ -328,6 +328,13 @@ isl1208_i2c_set_time(struct i2c_client *client, struct rtc_time const *tm)
int sr; int sr;
u8 regs[ISL1208_RTC_SECTION_LEN] = { 0, }; 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_SC] = bin2bcd(tm->tm_sec);
regs[ISL1208_REG_MN] = bin2bcd(tm->tm_min); regs[ISL1208_REG_MN] = bin2bcd(tm->tm_min);
regs[ISL1208_REG_HR] = bin2bcd(tm->tm_hour) | ISL1208_REG_HR_MIL; regs[ISL1208_REG_HR] = bin2bcd(tm->tm_hour) | ISL1208_REG_HR_MIL;
......
...@@ -356,7 +356,9 @@ int w1_reset_select_slave(struct w1_slave *sl) ...@@ -356,7 +356,9 @@ int w1_reset_select_slave(struct w1_slave *sl)
w1_write_8(sl->master, W1_SKIP_ROM); w1_write_8(sl->master, W1_SKIP_ROM);
else { else {
u8 match[9] = {W1_MATCH_ROM, }; 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); w1_write_block(sl->master, match, 9);
} }
return 0; return 0;
......
...@@ -172,7 +172,7 @@ ...@@ -172,7 +172,7 @@
/* Defaults for debug_level, debug and normal */ /* 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_NORMAL_DEFAULT (ACPI_LV_INIT | ACPI_LV_DEBUG_OBJECT)
#define ACPI_DEBUG_ALL (ACPI_LV_AML_DISASSEMBLE | ACPI_LV_ALL_EXCEPTIONS | ACPI_LV_ALL) #define ACPI_DEBUG_ALL (ACPI_LV_AML_DISASSEMBLE | ACPI_LV_ALL_EXCEPTIONS | ACPI_LV_ALL)
......
...@@ -141,6 +141,10 @@ static inline void *acpi_os_acquire_object(acpi_cache_t * cache) ...@@ -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 * 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__ */ #endif /* __ACLINUX_H__ */
...@@ -1024,7 +1024,7 @@ static int cgroup_get_sb(struct file_system_type *fs_type, ...@@ -1024,7 +1024,7 @@ static int cgroup_get_sb(struct file_system_type *fs_type,
if (ret == -EBUSY) { if (ret == -EBUSY) {
mutex_unlock(&cgroup_mutex); mutex_unlock(&cgroup_mutex);
mutex_unlock(&inode->i_mutex); mutex_unlock(&inode->i_mutex);
goto drop_new_super; goto free_cg_links;
} }
/* EBUSY should be the only error here */ /* EBUSY should be the only error here */
...@@ -1073,10 +1073,11 @@ static int cgroup_get_sb(struct file_system_type *fs_type, ...@@ -1073,10 +1073,11 @@ static int cgroup_get_sb(struct file_system_type *fs_type,
return simple_set_mnt(mnt, sb); return simple_set_mnt(mnt, sb);
free_cg_links:
free_cg_links(&tmp_cg_links);
drop_new_super: drop_new_super:
up_write(&sb->s_umount); up_write(&sb->s_umount);
deactivate_super(sb); deactivate_super(sb);
free_cg_links(&tmp_cg_links);
return ret; return ret;
} }
...@@ -2934,9 +2935,6 @@ int cgroup_clone(struct task_struct *tsk, struct cgroup_subsys *subsys, ...@@ -2934,9 +2935,6 @@ int cgroup_clone(struct task_struct *tsk, struct cgroup_subsys *subsys,
again: again:
root = subsys->root; root = subsys->root;
if (root == &rootnode) { if (root == &rootnode) {
printk(KERN_INFO
"Not cloning cgroup for unused subsystem %s\n",
subsys->name);
mutex_unlock(&cgroup_mutex); mutex_unlock(&cgroup_mutex);
return 0; return 0;
} }
......
...@@ -1786,8 +1786,6 @@ static inline void rfcomm_accept_connection(struct rfcomm_session *s) ...@@ -1786,8 +1786,6 @@ static inline void rfcomm_accept_connection(struct rfcomm_session *s)
if (err < 0) if (err < 0)
return; return;
__module_get(nsock->ops->owner);
/* Set our callbacks */ /* Set our callbacks */
nsock->sk->sk_data_ready = rfcomm_l2data_ready; nsock->sk->sk_data_ready = rfcomm_l2data_ready;
nsock->sk->sk_state_change = rfcomm_l2state_change; nsock->sk->sk_state_change = rfcomm_l2state_change;
......
...@@ -2307,6 +2307,7 @@ int kernel_accept(struct socket *sock, struct socket **newsock, int flags) ...@@ -2307,6 +2307,7 @@ int kernel_accept(struct socket *sock, struct socket **newsock, int flags)
} }
(*newsock)->ops = sock->ops; (*newsock)->ops = sock->ops;
__module_get((*newsock)->ops->owner);
done: done:
return err; return err;
......
...@@ -859,6 +859,7 @@ static struct hda_verb stac92hd83xxx_core_init[] = { ...@@ -859,6 +859,7 @@ static struct hda_verb stac92hd83xxx_core_init[] = {
/* power state controls amps */ /* power state controls amps */
{ 0x01, AC_VERB_SET_EAPD, 1 << 2}, { 0x01, AC_VERB_SET_EAPD, 1 << 2},
{}
}; };
static struct hda_verb stac92hd71bxx_core_init[] = { static struct hda_verb stac92hd71bxx_core_init[] = {
...@@ -870,6 +871,7 @@ 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)}, { 0x0a, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(0)},
{ 0x0d, 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)}, { 0x0f, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(0)},
{}
}; };
#define HD_DISABLE_PORTF 2 #define HD_DISABLE_PORTF 2
...@@ -1667,6 +1669,7 @@ static struct snd_pci_quirk stac92hd83xxx_cfg_tbl[] = { ...@@ -1667,6 +1669,7 @@ static struct snd_pci_quirk stac92hd83xxx_cfg_tbl[] = {
/* SigmaTel reference board */ /* SigmaTel reference board */
SND_PCI_QUIRK(PCI_VENDOR_ID_INTEL, 0x2668, SND_PCI_QUIRK(PCI_VENDOR_ID_INTEL, 0x2668,
"DFI LanParty", STAC_92HD71BXX_REF), "DFI LanParty", STAC_92HD71BXX_REF),
{} /* terminator */
}; };
static unsigned int ref92hd71bxx_pin_configs[11] = { static unsigned int ref92hd71bxx_pin_configs[11] = {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment