* debian/changelog: Update version to 3.2.10-1.
* debian/config/defines: Ignore some local ABI changes. * debian/patches: Remove merged patches. svn path=/dists/sid/linux-2.6/; revision=18821
This commit is contained in:
parent
6de2014fd4
commit
f867fb53df
|
@ -1,4 +1,7 @@
|
|||
linux-2.6 (3.2.9-2) UNRELEASED; urgency=low
|
||||
linux-2.6 (3.2.10-1) UNRELEASED; urgency=low
|
||||
|
||||
* New upstream stable update:
|
||||
http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.2.10
|
||||
|
||||
[ Uwe Kleine-König ]
|
||||
* [rt] bump rt patch to version 3.2.9-rt17
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
[abi]
|
||||
abiname: 2
|
||||
ignore-changes: module:drivers/net/wireless/ath/ath9k/*
|
||||
|
||||
[base]
|
||||
arches:
|
||||
|
|
|
@ -1,140 +0,0 @@
|
|||
From: Ben Hutchings <ben@decadent.org.uk>
|
||||
Date: Wed, 16 Nov 2011 01:49:41 -0300
|
||||
Subject: [PATCH 1/5] [media] staging: lirc_serial: Fix init/exit order
|
||||
|
||||
commit 9105b8b200410383d0854bbe237ee385d7d33ba6 upstream.
|
||||
|
||||
Currently the module init function registers a platform_device and
|
||||
only then allocates its IRQ and I/O region. This allows allocation to
|
||||
race with the device's suspend() function. Instead, allocate
|
||||
resources in the platform driver's probe() function and free them in
|
||||
the remove() function.
|
||||
|
||||
The module exit function removes the platform device before the
|
||||
character device that provides access to it. Change it to reverse the
|
||||
order of initialisation.
|
||||
|
||||
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
|
||||
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
|
||||
---
|
||||
drivers/staging/media/lirc/lirc_serial.c | 56 +++++++++++------------------
|
||||
1 files changed, 21 insertions(+), 35 deletions(-)
|
||||
|
||||
diff --git a/drivers/staging/media/lirc/lirc_serial.c b/drivers/staging/media/lirc/lirc_serial.c
|
||||
index 8a060a8..8637631 100644
|
||||
--- a/drivers/staging/media/lirc/lirc_serial.c
|
||||
+++ b/drivers/staging/media/lirc/lirc_serial.c
|
||||
@@ -836,7 +836,7 @@ static int hardware_init_port(void)
|
||||
return 0;
|
||||
}
|
||||
|
||||
-static int init_port(void)
|
||||
+static int __devinit lirc_serial_probe(struct platform_device *dev)
|
||||
{
|
||||
int i, nlow, nhigh, result;
|
||||
|
||||
@@ -913,6 +913,18 @@ static int init_port(void)
|
||||
return 0;
|
||||
}
|
||||
|
||||
+static int __devexit lirc_serial_remove(struct platform_device *dev)
|
||||
+{
|
||||
+ free_irq(irq, (void *)&hardware);
|
||||
+
|
||||
+ if (iommap != 0)
|
||||
+ release_mem_region(iommap, 8 << ioshift);
|
||||
+ else
|
||||
+ release_region(io, 8);
|
||||
+
|
||||
+ return 0;
|
||||
+}
|
||||
+
|
||||
static int set_use_inc(void *data)
|
||||
{
|
||||
unsigned long flags;
|
||||
@@ -1076,16 +1088,6 @@ static struct lirc_driver driver = {
|
||||
|
||||
static struct platform_device *lirc_serial_dev;
|
||||
|
||||
-static int __devinit lirc_serial_probe(struct platform_device *dev)
|
||||
-{
|
||||
- return 0;
|
||||
-}
|
||||
-
|
||||
-static int __devexit lirc_serial_remove(struct platform_device *dev)
|
||||
-{
|
||||
- return 0;
|
||||
-}
|
||||
-
|
||||
static int lirc_serial_suspend(struct platform_device *dev,
|
||||
pm_message_t state)
|
||||
{
|
||||
@@ -1188,10 +1190,6 @@ static int __init lirc_serial_init_module(void)
|
||||
{
|
||||
int result;
|
||||
|
||||
- result = lirc_serial_init();
|
||||
- if (result)
|
||||
- return result;
|
||||
-
|
||||
switch (type) {
|
||||
case LIRC_HOMEBREW:
|
||||
case LIRC_IRDEO:
|
||||
@@ -1211,8 +1209,7 @@ static int __init lirc_serial_init_module(void)
|
||||
break;
|
||||
#endif
|
||||
default:
|
||||
- result = -EINVAL;
|
||||
- goto exit_serial_exit;
|
||||
+ return -EINVAL;
|
||||
}
|
||||
if (!softcarrier) {
|
||||
switch (type) {
|
||||
@@ -1228,37 +1225,26 @@ static int __init lirc_serial_init_module(void)
|
||||
}
|
||||
}
|
||||
|
||||
- result = init_port();
|
||||
- if (result < 0)
|
||||
- goto exit_serial_exit;
|
||||
+ result = lirc_serial_init();
|
||||
+ if (result)
|
||||
+ return result;
|
||||
+
|
||||
driver.features = hardware[type].features;
|
||||
driver.dev = &lirc_serial_dev->dev;
|
||||
driver.minor = lirc_register_driver(&driver);
|
||||
if (driver.minor < 0) {
|
||||
printk(KERN_ERR LIRC_DRIVER_NAME
|
||||
": register_chrdev failed!\n");
|
||||
- result = -EIO;
|
||||
- goto exit_release;
|
||||
+ lirc_serial_exit();
|
||||
+ return -EIO;
|
||||
}
|
||||
return 0;
|
||||
-exit_release:
|
||||
- release_region(io, 8);
|
||||
-exit_serial_exit:
|
||||
- lirc_serial_exit();
|
||||
- return result;
|
||||
}
|
||||
|
||||
static void __exit lirc_serial_exit_module(void)
|
||||
{
|
||||
- lirc_serial_exit();
|
||||
-
|
||||
- free_irq(irq, (void *)&hardware);
|
||||
-
|
||||
- if (iommap != 0)
|
||||
- release_mem_region(iommap, 8 << ioshift);
|
||||
- else
|
||||
- release_region(io, 8);
|
||||
lirc_unregister_driver(driver.minor);
|
||||
+ lirc_serial_exit();
|
||||
dprintk("cleaned up module\n");
|
||||
}
|
||||
|
||||
--
|
||||
1.7.7.3
|
||||
|
|
@ -1,59 +0,0 @@
|
|||
From: Ben Hutchings <ben@decadent.org.uk>
|
||||
Date: Wed, 16 Nov 2011 01:52:11 -0300
|
||||
Subject: [PATCH 2/5] [media] staging: lirc_serial: Free resources on failure
|
||||
paths of lirc_serial_probe()
|
||||
|
||||
commit c8e57e1b766c2321aa76ee5e6878c69bd2313d62 upstream.
|
||||
|
||||
Failure to allocate the I/O region leaves the IRQ allocated.
|
||||
A later failure leaves them both allocated.
|
||||
|
||||
Reported-by: Torsten Crass <torsten.crass@eBiology.de>
|
||||
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
|
||||
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
|
||||
---
|
||||
drivers/staging/media/lirc/lirc_serial.c | 19 ++++++++++++++++---
|
||||
1 files changed, 16 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/drivers/staging/media/lirc/lirc_serial.c b/drivers/staging/media/lirc/lirc_serial.c
|
||||
index 8637631..d833772 100644
|
||||
--- a/drivers/staging/media/lirc/lirc_serial.c
|
||||
+++ b/drivers/staging/media/lirc/lirc_serial.c
|
||||
@@ -875,11 +875,14 @@ static int __devinit lirc_serial_probe(struct platform_device *dev)
|
||||
": or compile the serial port driver as module and\n");
|
||||
printk(KERN_WARNING LIRC_DRIVER_NAME
|
||||
": make sure this module is loaded first\n");
|
||||
- return -EBUSY;
|
||||
+ result = -EBUSY;
|
||||
+ goto exit_free_irq;
|
||||
}
|
||||
|
||||
- if (hardware_init_port() < 0)
|
||||
- return -EINVAL;
|
||||
+ if (hardware_init_port() < 0) {
|
||||
+ result = -EINVAL;
|
||||
+ goto exit_release_region;
|
||||
+ }
|
||||
|
||||
/* Initialize pulse/space widths */
|
||||
init_timing_params(duty_cycle, freq);
|
||||
@@ -911,6 +914,16 @@ static int __devinit lirc_serial_probe(struct platform_device *dev)
|
||||
|
||||
dprintk("Interrupt %d, port %04x obtained\n", irq, io);
|
||||
return 0;
|
||||
+
|
||||
+exit_release_region:
|
||||
+ if (iommap != 0)
|
||||
+ release_mem_region(iommap, 8 << ioshift);
|
||||
+ else
|
||||
+ release_region(io, 8);
|
||||
+exit_free_irq:
|
||||
+ free_irq(irq, (void *)&hardware);
|
||||
+
|
||||
+ return result;
|
||||
}
|
||||
|
||||
static int __devexit lirc_serial_remove(struct platform_device *dev)
|
||||
--
|
||||
1.7.7.3
|
||||
|
|
@ -1,34 +0,0 @@
|
|||
From: Ben Hutchings <ben@decadent.org.uk>
|
||||
Date: Wed, 16 Nov 2011 01:53:25 -0300
|
||||
Subject: [PATCH 3/5] [media] staging: lirc_serial: Fix deadlock on resume
|
||||
failure
|
||||
|
||||
commit 1ff1d88e862948ae5bfe490248c023ff8ac2855d upstream.
|
||||
|
||||
A resume function cannot remove the device it is resuming!
|
||||
|
||||
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
|
||||
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
|
||||
---
|
||||
drivers/staging/media/lirc/lirc_serial.c | 4 +---
|
||||
1 files changed, 1 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/drivers/staging/media/lirc/lirc_serial.c b/drivers/staging/media/lirc/lirc_serial.c
|
||||
index d833772..befe626 100644
|
||||
--- a/drivers/staging/media/lirc/lirc_serial.c
|
||||
+++ b/drivers/staging/media/lirc/lirc_serial.c
|
||||
@@ -1127,10 +1127,8 @@ static int lirc_serial_resume(struct platform_device *dev)
|
||||
{
|
||||
unsigned long flags;
|
||||
|
||||
- if (hardware_init_port() < 0) {
|
||||
- lirc_serial_exit();
|
||||
+ if (hardware_init_port() < 0)
|
||||
return -EINVAL;
|
||||
- }
|
||||
|
||||
spin_lock_irqsave(&hardware[type].lock, flags);
|
||||
/* Enable Interrupt */
|
||||
--
|
||||
1.7.7.3
|
||||
|
|
@ -1,51 +0,0 @@
|
|||
From: Ben Hutchings <ben@decadent.org.uk>
|
||||
Date: Wed, 16 Nov 2011 01:54:04 -0300
|
||||
Subject: [PATCH 5/5] [media] staging: lirc_serial: Do not assume error codes
|
||||
returned by request_irq()
|
||||
|
||||
commit affc9a0d59ac49bd304e2137bd5e4ffdd6fdfa52 upstream.
|
||||
|
||||
lirc_serial_probe() must fail if request_irq() returns an error, even if
|
||||
it isn't EBUSY or EINVAL,
|
||||
|
||||
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
|
||||
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
|
||||
---
|
||||
drivers/staging/media/lirc/lirc_serial.c | 21 +++++++++------------
|
||||
1 files changed, 9 insertions(+), 12 deletions(-)
|
||||
|
||||
diff --git a/drivers/staging/media/lirc/lirc_serial.c b/drivers/staging/media/lirc/lirc_serial.c
|
||||
index 6f5257e..0ca308a 100644
|
||||
--- a/drivers/staging/media/lirc/lirc_serial.c
|
||||
+++ b/drivers/staging/media/lirc/lirc_serial.c
|
||||
@@ -843,18 +843,15 @@ static int __devinit lirc_serial_probe(struct platform_device *dev)
|
||||
result = request_irq(irq, irq_handler,
|
||||
(share_irq ? IRQF_SHARED : 0),
|
||||
LIRC_DRIVER_NAME, (void *)&hardware);
|
||||
-
|
||||
- switch (result) {
|
||||
- case -EBUSY:
|
||||
- printk(KERN_ERR LIRC_DRIVER_NAME ": IRQ %d busy\n", irq);
|
||||
- return -EBUSY;
|
||||
- case -EINVAL:
|
||||
- printk(KERN_ERR LIRC_DRIVER_NAME
|
||||
- ": Bad irq number or handler\n");
|
||||
- return -EINVAL;
|
||||
- default:
|
||||
- break;
|
||||
- };
|
||||
+ if (result < 0) {
|
||||
+ if (result == -EBUSY)
|
||||
+ printk(KERN_ERR LIRC_DRIVER_NAME ": IRQ %d busy\n",
|
||||
+ irq);
|
||||
+ else if (result == -EINVAL)
|
||||
+ printk(KERN_ERR LIRC_DRIVER_NAME
|
||||
+ ": Bad irq number or handler\n");
|
||||
+ return result;
|
||||
+ }
|
||||
|
||||
/* Reserve io region. */
|
||||
/*
|
||||
--
|
||||
1.7.7.3
|
||||
|
|
@ -1,57 +0,0 @@
|
|||
From: Johannes Berg <johannes.berg@intel.com>
|
||||
Date: Fri, 17 Feb 2012 09:47:14 -0800
|
||||
Subject: [PATCH] iwlwifi: fix key removal
|
||||
|
||||
commit 5dcbf480473f6c3f06ad2426b7517038a2a18911 upstream.
|
||||
|
||||
When trying to remove a key, we always send key
|
||||
flags just setting the key type, not including
|
||||
the multicast flag and the key ID. As a result,
|
||||
whenever any key was removed, the unicast key 0
|
||||
would be removed, causing a complete connection
|
||||
loss after the second rekey (the first doesn't
|
||||
cause a key removal). Fix the key removal code
|
||||
to include the key ID and multicast flag, thus
|
||||
removing the correct key.
|
||||
|
||||
Cc: stable@vger.kernel.org
|
||||
Reported-by: Alexander Schnaidt <alex.schnaidt@googlemail.com>
|
||||
Tested-by: Alexander Schnaidt <alex.schnaidt@googlemail.com>
|
||||
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
|
||||
Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
|
||||
Signed-off-by: John W. Linville <linville@tuxdriver.com>
|
||||
---
|
||||
drivers/net/wireless/iwlwifi/iwl-agn-sta.c | 10 +++++++++-
|
||||
1 files changed, 9 insertions(+), 1 deletions(-)
|
||||
|
||||
diff --git a/drivers/net/wireless/iwlwifi/iwl-agn-sta.c b/drivers/net/wireless/iwlwifi/iwl-agn-sta.c
|
||||
index 7353826..e483cfa 100644
|
||||
--- a/drivers/net/wireless/iwlwifi/iwl-agn-sta.c
|
||||
+++ b/drivers/net/wireless/iwlwifi/iwl-agn-sta.c
|
||||
@@ -1187,6 +1187,7 @@ int iwl_remove_dynamic_key(struct iwl_priv *priv,
|
||||
unsigned long flags;
|
||||
struct iwl_addsta_cmd sta_cmd;
|
||||
u8 sta_id = iwlagn_key_sta_id(priv, ctx->vif, sta);
|
||||
+ __le16 key_flags;
|
||||
|
||||
/* if station isn't there, neither is the key */
|
||||
if (sta_id == IWL_INVALID_STATION)
|
||||
@@ -1212,7 +1213,14 @@ int iwl_remove_dynamic_key(struct iwl_priv *priv,
|
||||
IWL_ERR(priv, "offset %d not used in uCode key table.\n",
|
||||
keyconf->hw_key_idx);
|
||||
|
||||
- sta_cmd.key.key_flags = STA_KEY_FLG_NO_ENC | STA_KEY_FLG_INVALID;
|
||||
+ key_flags = cpu_to_le16(keyconf->keyidx << STA_KEY_FLG_KEYID_POS);
|
||||
+ key_flags |= STA_KEY_FLG_MAP_KEY_MSK | STA_KEY_FLG_NO_ENC |
|
||||
+ STA_KEY_FLG_INVALID;
|
||||
+
|
||||
+ if (!(keyconf->flags & IEEE80211_KEY_FLAG_PAIRWISE))
|
||||
+ key_flags |= STA_KEY_MULTICAST_MSK;
|
||||
+
|
||||
+ sta_cmd.key.key_flags = key_flags;
|
||||
sta_cmd.key.key_offset = WEP_INVALID_OFFSET;
|
||||
sta_cmd.sta.modify_mask = STA_MODIFY_KEY_MASK;
|
||||
sta_cmd.mode = STA_CONTROL_MODIFY_MSK;
|
||||
--
|
||||
1.7.9.1
|
||||
|
|
@ -48,11 +48,7 @@
|
|||
|
||||
+ debian/bcma-Do-not-claim-PCI-device-IDs-also-claimed-by-brc.patch
|
||||
|
||||
+ bugfix/all/0001-media-staging-lirc_serial-Fix-init-exit-order.patch
|
||||
+ bugfix/all/0002-media-staging-lirc_serial-Free-resources-on-failure-.patch
|
||||
+ bugfix/all/0003-media-staging-lirc_serial-Fix-deadlock-on-resume-fai.patch
|
||||
+ bugfix/all/0004-media-staging-lirc_serial-Fix-bogus-error-codes.patch
|
||||
+ bugfix/all/0005-media-staging-lirc_serial-Do-not-assume-error-codes-.patch
|
||||
|
||||
+ features/all/topology-Provide-CPU-topology-in-sysfs-in-SMP-configura.patch
|
||||
+ bugfix/all/cpu-Do-not-return-errors-from-cpu_dev_init-which-wil.patch
|
||||
|
@ -86,4 +82,3 @@
|
|||
+ features/all/fs-hardlink-creation-restrictions.patch
|
||||
+ features/all/fs-hardlink-creation-restrictions-fix.patch
|
||||
+ features/all/fs-hardlink-creation-restriction-cleanup.patch
|
||||
+ bugfix/all/iwlwifi-fix-key-removal.patch
|
||||
|
|
Loading…
Reference in New Issue