* [patch 00/46] 2.6.27.7-stable review
@ 2008-11-17 7:13 ` Greg KH
2008-11-17 7:14 ` [patch 01/46] touch_mnt_namespace when the mount flags change Greg KH
` (45 more replies)
0 siblings, 46 replies; 52+ messages in thread
From: Greg KH @ 2008-11-17 7:13 UTC (permalink / raw)
To: linux-kernel, stable
Cc: Justin Forbes, Zwane Mwaikambo, Theodore Ts'o, Randy Dunlap,
Dave Jones, Chuck Wolber, Chris Wedgwood, Michael Krufky,
Chuck Ebbert, Domenico Andreoli, Willy Tarreau,
Rodrigo Rubira Branco, Jake Edge, Eugene Teo, torvalds, akpm,
alan
Ok, let's try this again. The 2.6.27.7-rc1 patch was a mess. It had a
patch that was applied corrupted, and some other problems. So here's a
second try at this kernel release. I've added a few more patches that
have gone into Linus's tree and people have asked for, so it is bigger
than 2.6.27.7-rc1 was. Because of this, I'm resetting the review period
clock to start over, as this all needs a good review.
There are 46 patches in this series, all will be posted as a response to
this one. If anyone has any issues with these being applied, please let
us know. If anyone is a maintainer of the proper subsystem, and wants
to add a Signed-off-by: line to the patch, please respond with it.
These patches are sent out with a number of different people on the Cc:
line. If you wish to be a reviewer, please email stable@kernel.org to
add your name to the list. If you want to be off the reviewer list,
also email us.
Responses should be made by November 19, 2008, 07:00:00 UTC. Anything
received after that time might be too late.
The whole patch series can be found in one patch at:
kernel.org/pub/linux/kernel/v2.6/stable-review/patch-2.6.27.7-rc2.gz
and the diffstat can be found below.
thanks,
greg k-h
--------------
Makefile | 2 +-
arch/arm/mm/cache-feroceon-l2.c | 4 +-
arch/m68k/kernel/ints.c | 2 +-
arch/powerpc/include/asm/mpic.h | 2 +
arch/powerpc/platforms/85xx/mpc85xx_ds.c | 3 +-
arch/powerpc/platforms/86xx/pic.c | 3 +-
arch/powerpc/sysdev/mpic.c | 59 +++++++++++++++++++--
arch/s390/kernel/topology.c | 11 +++--
block/blk-merge.c | 19 ++++++-
drivers/acpi/bus.c | 16 +++---
drivers/acpi/ec.c | 84 ++++++++++++++++++++---------
drivers/acpi/scan.c | 35 +++++++++----
drivers/acpi/system.c | 25 ++++++---
drivers/char/ipmi/ipmi_msghandler.c | 20 ++++---
drivers/char/ipmi/ipmi_si_intf.c | 16 +++---
drivers/hwmon/ibmaem.c | 18 ++++---
drivers/input/mouse/alps.c | 1 +
drivers/md/dm-raid1.c | 1 +
drivers/media/video/tvaudio.c | 15 +++---
drivers/misc/sony-laptop.c | 6 ++-
drivers/net/Kconfig | 1 +
drivers/net/bnx2x_init.h | 9 ++--
drivers/net/bnx2x_main.c | 6 ++-
drivers/net/wireless/ath5k/base.c | 67 ++++++++++++-----------
drivers/net/wireless/ath5k/base.h | 3 +-
drivers/net/wireless/ath5k/hw.c | 22 +++-----
drivers/net/wireless/ath5k/initvals.c | 2 +
drivers/net/wireless/hostap/hostap_wlan.h | 5 ++-
drivers/net/wireless/iwlwifi/iwl-agn.c | 6 ++-
drivers/net/wireless/rtl8187_dev.c | 3 +
drivers/pnp/pnpacpi/core.c | 6 ++-
drivers/scsi/dpt_i2o.c | 4 +-
drivers/scsi/qla2xxx/qla_def.h | 1 -
drivers/scsi/qla2xxx/qla_init.c | 2 +-
drivers/scsi/qla2xxx/qla_mbx.c | 2 +-
drivers/scsi/qla2xxx/qla_os.c | 1 +
drivers/scsi/qla2xxx/qla_sup.c | 19 +++----
drivers/usb/class/cdc-acm.c | 9 ++--
drivers/usb/core/message.c | 1 +
drivers/usb/core/sysfs.c | 2 +-
drivers/usb/gadget/f_acm.c | 4 ++
drivers/usb/host/Kconfig | 23 ++------
drivers/usb/host/ehci-hcd.c | 25 ++++-----
drivers/usb/host/ehci-ps3.c | 1 +
drivers/usb/host/ehci-sched.c | 4 +-
drivers/usb/host/isp1760-if.c | 22 ++++----
drivers/usb/host/ohci-ps3.c | 3 +-
drivers/usb/storage/unusual_devs.h | 7 +++
fs/namespace.c | 7 ++-
fs/proc/proc_sysctl.c | 1 +
include/linux/bio.h | 7 +++
include/linux/usb.h | 2 +
mm/hugetlb.c | 5 +-
mm/page_isolation.c | 5 +-
net/ipv4/proc.c | 58 ++++++++++----------
scripts/package/builddeb | 24 ++++++++-
56 files changed, 449 insertions(+), 262 deletions(-)
^ permalink raw reply [flat|nested] 52+ messages in thread
* [patch 01/46] touch_mnt_namespace when the mount flags change
2008-11-17 7:13 ` [patch 00/46] 2.6.27.7-stable review Greg KH
@ 2008-11-17 7:14 ` Greg KH
2008-11-17 7:14 ` [patch 02/46] iwlagn: avoid sleep in softirq context Greg KH
` (44 subsequent siblings)
45 siblings, 0 replies; 52+ messages in thread
From: Greg KH @ 2008-11-17 7:14 UTC (permalink / raw)
To: linux-kernel, stable
Cc: Justin Forbes, Zwane Mwaikambo, Theodore Ts'o, Randy Dunlap,
Dave Jones, Chuck Wolber, Chris Wedgwood, Michael Krufky,
Chuck Ebbert, Domenico Andreoli, Willy Tarreau,
Rodrigo Rubira Branco, Jake Edge, Eugene Teo, torvalds, akpm,
alan, Kay Sievers, Neil Brown, Dan Williams, Greg Kroah-Hartman
[-- Attachment #1: touch_mnt_namespace-when-the-mount-flags-change.patch --]
[-- Type: text/plain, Size: 1031 bytes --]
2.6.27-stable review patch. If anyone has any objections, please let us know.
------------------
From: Dan Williams <dan.j.williams@intel.com>
commit 0e55a7cca4b66f625d67b292f80b6a976e77c51b upstream
Daemons that need to be launched while the rootfs is read-only can now
poll /proc/mounts to be notified when their O_RDWR requests may no
longer end in EROFS.
Cc: Kay Sievers <kay.sievers@vrfy.org>
Cc: Neil Brown <neilb@suse.de>
Signed-off-by: Dan Williams <dan.j.williams@intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
---
fs/namespace.c | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)
--- a/fs/namespace.c
+++ b/fs/namespace.c
@@ -1553,8 +1553,13 @@ static noinline int do_remount(struct na
if (!err)
nd->path.mnt->mnt_flags = mnt_flags;
up_write(&sb->s_umount);
- if (!err)
+ if (!err) {
security_sb_post_remount(nd->path.mnt, flags, data);
+
+ spin_lock(&vfsmount_lock);
+ touch_mnt_namespace(nd->path.mnt->mnt_ns);
+ spin_unlock(&vfsmount_lock);
+ }
return err;
}
--
^ permalink raw reply [flat|nested] 52+ messages in thread
* [patch 02/46] iwlagn: avoid sleep in softirq context
2008-11-17 7:13 ` [patch 00/46] 2.6.27.7-stable review Greg KH
2008-11-17 7:14 ` [patch 01/46] touch_mnt_namespace when the mount flags change Greg KH
@ 2008-11-17 7:14 ` Greg KH
2008-11-17 7:14 ` [patch 03/46] ath5k: fix suspend-related oops on rmmod Greg KH
` (43 subsequent siblings)
45 siblings, 0 replies; 52+ messages in thread
From: Greg KH @ 2008-11-17 7:14 UTC (permalink / raw)
To: linux-kernel, stable
Cc: Justin Forbes, Zwane Mwaikambo, Theodore Ts'o, Randy Dunlap,
Dave Jones, Chuck Wolber, Chris Wedgwood, Michael Krufky,
Chuck Ebbert, Domenico Andreoli, Willy Tarreau,
Rodrigo Rubira Branco, Jake Edge, Eugene Teo, torvalds, akpm,
alan, John W. Linville, Holger Macht, Greg Kroah-Hartman
[-- Attachment #1: iwlagn-avoid-sleep-in-softirq-context.patch --]
[-- Type: text/plain, Size: 1458 bytes --]
2.6.27-stable review patch. If anyone has any objections, please let us know.
------------------
From: John W. Linville <linville@tuxdriver.com>
commit 964d2777438bf7687324243d38ade538d9bbfe3c upstream.
__ieee80211_tasklet_handler -> __ieee80211_rx ->
__ieee80211_rx_handle_packet -> ieee80211_invoke_rx_handlers ->
ieee80211_rx_h_decrypt -> ieee80211_crypto_tkip_decrypt ->
ieee80211_tkip_decrypt_data -> iwl4965_mac_update_tkip_key ->
iwl_scan_cancel_timeout -> msleep
Ooops!
Avoid the sleep by changing iwl_scan_cancel_timeout with
iwl_scan_cancel and simply returning on failure if the scan persists.
This will cause hardware decryption to fail and we'll handle a few more
frames with software decryption.
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Cc: Holger Macht <hmacht@novell.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
---
drivers/net/wireless/iwlwifi/iwl-agn.c | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
--- a/drivers/net/wireless/iwlwifi/iwl-agn.c
+++ b/drivers/net/wireless/iwlwifi/iwl-agn.c
@@ -3275,7 +3275,11 @@ static void iwl4965_mac_update_tkip_key(
return;
}
- iwl_scan_cancel_timeout(priv, 100);
+ if (iwl_scan_cancel(priv)) {
+ /* cancel scan failed, just live w/ bad key and rely
+ briefly on SW decryption */
+ return;
+ }
key_flags |= (STA_KEY_FLG_TKIP | STA_KEY_FLG_MAP_KEY_MSK);
key_flags |= cpu_to_le16(keyconf->keyidx << STA_KEY_FLG_KEYID_POS);
--
^ permalink raw reply [flat|nested] 52+ messages in thread
* [patch 03/46] ath5k: fix suspend-related oops on rmmod
2008-11-17 7:13 ` [patch 00/46] 2.6.27.7-stable review Greg KH
2008-11-17 7:14 ` [patch 01/46] touch_mnt_namespace when the mount flags change Greg KH
2008-11-17 7:14 ` [patch 02/46] iwlagn: avoid sleep in softirq context Greg KH
@ 2008-11-17 7:14 ` Greg KH
2008-11-17 7:14 ` [patch 04/46] ath5k: Fix reset sequence for AR5212 in general and RF5111 in particular Greg KH
` (42 subsequent siblings)
45 siblings, 0 replies; 52+ messages in thread
From: Greg KH @ 2008-11-17 7:14 UTC (permalink / raw)
To: linux-kernel, stable
Cc: Justin Forbes, Zwane Mwaikambo, Theodore Ts'o, Randy Dunlap,
Dave Jones, Chuck Wolber, Chris Wedgwood, Michael Krufky,
Chuck Ebbert, Domenico Andreoli, Willy Tarreau,
Rodrigo Rubira Branco, Jake Edge, Eugene Teo, torvalds, akpm,
alan, Bob Copeland, John W. Linville, Elias Oltmanns,
Greg Kroah-Hartman
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: ath5k-fix-suspend-related-oops-on-rmmod.patch --]
[-- Type: text/plain; charset=utf-8, Size: 6937 bytes --]
2.6.27-stable review patch. If anyone has any objections, please let us know.
------------------
From: Elias Oltmanns <eo@nebensachen.de>
Cumulative patch backporting the following two commits from upstream:
commit 8bdd5b9c6bd53add260756b6673a0545fbdbba21 upstream
Author: Bob Copeland <me@bobcopeland.com>
Based on a patch by Elias Oltmanns, we call ath5k_init in resume even
if we didn't previously open the device. Besides starting up the
device unnecessarily, this also causes an oops on rmmod because
mac80211 will not invoke ath5k_stop and softirqs are left running after
the module has been unloaded. Add a new state bit, ATH_STAT_STARTED,
to indicate that we have been started up.
commit bc1b32d6bdd2d6f3fbee9a7c01c9b099f11c579c upstream
Author: Elias Oltmanns <eo@nebensachen.de>
After a s2ram / resume cycle, resetting the key cache does not work
unless it is deferred until after the hardware has been reinitialised by
a call to ath5k_hw_reset(). This fixes a regression introduced by
"ath5k: fix suspend-related oops on rmmod".
Reported-by: Toralf Förster <toralf.foerster@gmx.de>
Signed-off-by: Elias Oltmanns <eo@nebensachen.de>
Signed-off-by: Bob Copeland <me@bobcopeland.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
---
drivers/net/wireless/ath5k/base.c | 67 +++++++++++++++++++-------------------
drivers/net/wireless/ath5k/base.h | 3 +
2 files changed, 36 insertions(+), 34 deletions(-)
--- a/drivers/net/wireless/ath5k/base.c
+++ b/drivers/net/wireless/ath5k/base.c
@@ -294,9 +294,9 @@ static inline u64 ath5k_extend_tsf(struc
}
/* Interrupt handling */
-static int ath5k_init(struct ath5k_softc *sc);
+static int ath5k_init(struct ath5k_softc *sc, bool is_resume);
static int ath5k_stop_locked(struct ath5k_softc *sc);
-static int ath5k_stop_hw(struct ath5k_softc *sc);
+static int ath5k_stop_hw(struct ath5k_softc *sc, bool is_suspend);
static irqreturn_t ath5k_intr(int irq, void *dev_id);
static void ath5k_tasklet_reset(unsigned long data);
@@ -584,7 +584,7 @@ ath5k_pci_suspend(struct pci_dev *pdev,
ath5k_led_off(sc);
- ath5k_stop_hw(sc);
+ ath5k_stop_hw(sc, true);
free_irq(pdev->irq, sc);
pci_save_state(pdev);
@@ -599,8 +599,7 @@ ath5k_pci_resume(struct pci_dev *pdev)
{
struct ieee80211_hw *hw = pci_get_drvdata(pdev);
struct ath5k_softc *sc = hw->priv;
- struct ath5k_hw *ah = sc->ah;
- int i, err;
+ int err;
pci_restore_state(pdev);
@@ -621,21 +620,11 @@ ath5k_pci_resume(struct pci_dev *pdev)
goto err_no_irq;
}
- err = ath5k_init(sc);
+ err = ath5k_init(sc, true);
if (err)
goto err_irq;
ath5k_led_enable(sc);
- /*
- * Reset the key cache since some parts do not
- * reset the contents on initial power up or resume.
- *
- * FIXME: This may need to be revisited when mac80211 becomes
- * aware of suspend/resume.
- */
- for (i = 0; i < AR5K_KEYTABLE_SIZE; i++)
- ath5k_hw_reset_key(ah, i);
-
return 0;
err_irq:
free_irq(pdev->irq, sc);
@@ -657,7 +646,6 @@ ath5k_attach(struct pci_dev *pdev, struc
struct ath5k_softc *sc = hw->priv;
struct ath5k_hw *ah = sc->ah;
u8 mac[ETH_ALEN];
- unsigned int i;
int ret;
ATH5K_DBG(sc, ATH5K_DEBUG_ANY, "devid 0x%x\n", pdev->device);
@@ -676,13 +664,6 @@ ath5k_attach(struct pci_dev *pdev, struc
__set_bit(ATH_STAT_MRRETRY, sc->status);
/*
- * Reset the key cache since some parts do not
- * reset the contents on initial power up.
- */
- for (i = 0; i < AR5K_KEYTABLE_SIZE; i++)
- ath5k_hw_reset_key(ah, i);
-
- /*
* Collect the channel list. The 802.11 layer
* is resposible for filtering this list based
* on settings like the phy mode and regulatory
@@ -2197,12 +2178,18 @@ ath5k_beacon_config(struct ath5k_softc *
\********************/
static int
-ath5k_init(struct ath5k_softc *sc)
+ath5k_init(struct ath5k_softc *sc, bool is_resume)
{
- int ret;
+ struct ath5k_hw *ah = sc->ah;
+ int ret, i;
mutex_lock(&sc->lock);
+ if (is_resume && !test_bit(ATH_STAT_STARTED, sc->status))
+ goto out_ok;
+
+ __clear_bit(ATH_STAT_STARTED, sc->status);
+
ATH5K_DBG(sc, ATH5K_DEBUG_RESET, "mode %d\n", sc->opmode);
/*
@@ -2220,7 +2207,7 @@ ath5k_init(struct ath5k_softc *sc)
*/
sc->curchan = sc->hw->conf.channel;
sc->curband = &sc->sbands[sc->curchan->band];
- ret = ath5k_hw_reset(sc->ah, sc->opmode, sc->curchan, false);
+ ret = ath5k_hw_reset(ah, sc->opmode, sc->curchan, false);
if (ret) {
ATH5K_ERR(sc, "unable to reset hardware: %d\n", ret);
goto done;
@@ -2229,7 +2216,14 @@ ath5k_init(struct ath5k_softc *sc)
* This is needed only to setup initial state
* but it's best done after a reset.
*/
- ath5k_hw_set_txpower_limit(sc->ah, 0);
+ ath5k_hw_set_txpower_limit(ah, 0);
+
+ /*
+ * Reset the key cache since some parts do not reset the
+ * contents on initial power up or resume from suspend.
+ */
+ for (i = 0; i < AR5K_KEYTABLE_SIZE; i++)
+ ath5k_hw_reset_key(ah, i);
/*
* Setup the hardware after reset: the key cache
@@ -2249,13 +2243,17 @@ ath5k_init(struct ath5k_softc *sc)
AR5K_INT_RXORN | AR5K_INT_FATAL | AR5K_INT_GLOBAL |
AR5K_INT_MIB;
- ath5k_hw_set_intr(sc->ah, sc->imask);
+ ath5k_hw_set_intr(ah, sc->imask);
+
+ __set_bit(ATH_STAT_STARTED, sc->status);
+
/* Set ack to be sent at low bit-rates */
- ath5k_hw_set_ack_bitrate_high(sc->ah, false);
+ ath5k_hw_set_ack_bitrate_high(ah, false);
mod_timer(&sc->calib_tim, round_jiffies(jiffies +
msecs_to_jiffies(ath5k_calinterval * 1000)));
+out_ok:
ret = 0;
done:
mmiowb();
@@ -2310,7 +2308,7 @@ ath5k_stop_locked(struct ath5k_softc *sc
* stop is preempted).
*/
static int
-ath5k_stop_hw(struct ath5k_softc *sc)
+ath5k_stop_hw(struct ath5k_softc *sc, bool is_suspend)
{
int ret;
@@ -2341,6 +2339,9 @@ ath5k_stop_hw(struct ath5k_softc *sc)
}
}
ath5k_txbuf_free(sc, sc->bbuf);
+ if (!is_suspend)
+ __clear_bit(ATH_STAT_STARTED, sc->status);
+
mmiowb();
mutex_unlock(&sc->lock);
@@ -2719,12 +2720,12 @@ err:
static int ath5k_start(struct ieee80211_hw *hw)
{
- return ath5k_init(hw->priv);
+ return ath5k_init(hw->priv, false);
}
static void ath5k_stop(struct ieee80211_hw *hw)
{
- ath5k_stop_hw(hw->priv);
+ ath5k_stop_hw(hw->priv, false);
}
static int ath5k_add_interface(struct ieee80211_hw *hw,
--- a/drivers/net/wireless/ath5k/base.h
+++ b/drivers/net/wireless/ath5k/base.h
@@ -132,11 +132,12 @@ struct ath5k_softc {
size_t desc_len; /* size of TX/RX descriptors */
u16 cachelsz; /* cache line size */
- DECLARE_BITMAP(status, 4);
+ DECLARE_BITMAP(status, 5);
#define ATH_STAT_INVALID 0 /* disable hardware accesses */
#define ATH_STAT_MRRETRY 1 /* multi-rate retry support */
#define ATH_STAT_PROMISC 2
#define ATH_STAT_LEDSOFT 3 /* enable LED gpio status */
+#define ATH_STAT_STARTED 4 /* opened & irqs enabled */
unsigned int filter_flags; /* HW flags, AR5K_RX_FILTER_* */
unsigned int curmode; /* current phy mode */
--
^ permalink raw reply [flat|nested] 52+ messages in thread
* [patch 04/46] ath5k: Fix reset sequence for AR5212 in general and RF5111 in particular
2008-11-17 7:13 ` [patch 00/46] 2.6.27.7-stable review Greg KH
` (2 preceding siblings ...)
2008-11-17 7:14 ` [patch 03/46] ath5k: fix suspend-related oops on rmmod Greg KH
@ 2008-11-17 7:14 ` Greg KH
2008-11-17 7:14 ` [patch 05/46] bnx2x: Removing the PMF indication when unloading Greg KH
` (41 subsequent siblings)
45 siblings, 0 replies; 52+ messages in thread
From: Greg KH @ 2008-11-17 7:14 UTC (permalink / raw)
To: linux-kernel, stable
Cc: Justin Forbes, Zwane Mwaikambo, Theodore Ts'o, Randy Dunlap,
Dave Jones, Chuck Wolber, Chris Wedgwood, Michael Krufky,
Chuck Ebbert, Domenico Andreoli, Willy Tarreau,
Rodrigo Rubira Branco, Jake Edge, Eugene Teo, torvalds, akpm,
alan, Bob Copeland, John W. Linville, Elias Oltmanns,
Greg Kroah-Hartman
[-- Attachment #1: ath5k-fix-reset-sequence-for-ar5212-in-general-and-rf5111-in-particular.patch --]
[-- Type: text/plain, Size: 2762 bytes --]
2.6.27-stable review patch. If anyone has any objections, please let us know.
------------------
From: Elias Oltmanns <eo@nebensachen.de>
commit 7d19267b8d1e12c0baebf9be96e04cddffe63f67 upstream
Take care to handle register 0xa228 exactly as in the HAL released by
Atheros. This change is required to make ath5k work again on my system
since commit 2203d6be (ath5k: Misc hw_reset updates), thus fixing a
regression in 2.6.27 and therefore hopefully eligible for inclusion into
a stable release.
v2: Only overwrite initial register values on later revisions of AR5212
chips.
v3: Use standard macros to manipulate the register.
Signed-off-by: Elias Oltmanns <eo@nebensachen.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
---
drivers/net/wireless/ath5k/hw.c | 22 +++++++---------------
drivers/net/wireless/ath5k/initvals.c | 2 ++
2 files changed, 9 insertions(+), 15 deletions(-)
--- a/drivers/net/wireless/ath5k/hw.c
+++ b/drivers/net/wireless/ath5k/hw.c
@@ -826,9 +826,10 @@ int ath5k_hw_reset(struct ath5k_hw *ah,
mdelay(1);
/*
- * Write some more initial register settings
+ * Write some more initial register settings for revised chips
*/
- if (ah->ah_version == AR5K_AR5212) {
+ if (ah->ah_version == AR5K_AR5212 &&
+ ah->ah_phy_revision > 0x41) {
ath5k_hw_reg_write(ah, 0x0002a002, 0x982c);
if (channel->hw_value == CHANNEL_G)
@@ -847,19 +848,10 @@ int ath5k_hw_reset(struct ath5k_hw *ah,
else
ath5k_hw_reg_write(ah, 0x00000000, 0x994c);
- /* Some bits are disabled here, we know nothing about
- * register 0xa228 yet, most of the times this ends up
- * with a value 0x9b5 -haven't seen any dump with
- * a different value- */
- /* Got this from decompiling binary HAL */
- data = ath5k_hw_reg_read(ah, 0xa228);
- data &= 0xfffffdff;
- ath5k_hw_reg_write(ah, data, 0xa228);
-
- data = ath5k_hw_reg_read(ah, 0xa228);
- data &= 0xfffe03ff;
- ath5k_hw_reg_write(ah, data, 0xa228);
- data = 0;
+ /* Got this from legacy-hal */
+ AR5K_REG_DISABLE_BITS(ah, 0xa228, 0x200);
+
+ AR5K_REG_MASKED_BITS(ah, 0xa228, 2 << 10, ~0x1fc00);
/* Just write 0x9b5 ? */
/* ath5k_hw_reg_write(ah, 0x000009b5, 0xa228); */
--- a/drivers/net/wireless/ath5k/initvals.c
+++ b/drivers/net/wireless/ath5k/initvals.c
@@ -810,6 +810,8 @@ static const struct ath5k_ini_mode ar521
{ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 } },
{ AR5K_PHY(642),
{ 0xd03e6788, 0xd03e6788, 0xd03e6788, 0xd03e6788, 0xd03e6788 } },
+ { 0xa228,
+ { 0x000001b5, 0x000001b5, 0x000001b5, 0x000001b5, 0x000001b5 } },
{ 0xa23c,
{ 0x13c889af, 0x13c889af, 0x13c889af, 0x13c889af, 0x13c889af } },
};
--
^ permalink raw reply [flat|nested] 52+ messages in thread
* [patch 05/46] bnx2x: Removing the PMF indication when unloading
2008-11-17 7:13 ` [patch 00/46] 2.6.27.7-stable review Greg KH
` (3 preceding siblings ...)
2008-11-17 7:14 ` [patch 04/46] ath5k: Fix reset sequence for AR5212 in general and RF5111 in particular Greg KH
@ 2008-11-17 7:14 ` Greg KH
2008-11-17 7:14 ` [patch 06/46] bnx2x: PCI configuration bug on big-endian Greg KH
` (40 subsequent siblings)
45 siblings, 0 replies; 52+ messages in thread
From: Greg KH @ 2008-11-17 7:14 UTC (permalink / raw)
To: linux-kernel, stable
Cc: Justin Forbes, Zwane Mwaikambo, Theodore Ts'o, Randy Dunlap,
Dave Jones, Chuck Wolber, Chris Wedgwood, Michael Krufky,
Chuck Ebbert, Domenico Andreoli, Willy Tarreau,
Rodrigo Rubira Branco, Jake Edge, Eugene Teo, torvalds, akpm,
alan, Eilon Greenstein, David S. Miller, Alex Chiang,
Greg Kroah-Hartman
[-- Attachment #1: bnx2x-removing-the-pmf-indication-when-unloading.patch --]
[-- Type: text/plain, Size: 1244 bytes --]
2.6.27-stable review patch. If anyone has any objections, please let us know.
------------------
From: Eilon Greenstein <eilong@broadcom.com>
commit 9a0354405feb0f8bd460349a93db05e4cca8d166 upstream.
When the PMF flag is set, the driver can access the HW freely. When the
driver is unloaded, it should not access the HW. The problem caused fatal
errors when "ethtool -i" was called after the calling instance was unloaded
and another instance was already loaded
Signed-off-by: Eilon Greenstein <eilong@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Cc: Alex Chiang <achiang@hp.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
---
drivers/net/bnx2x_main.c | 2 ++
1 file changed, 2 insertions(+)
--- a/drivers/net/bnx2x_main.c
+++ b/drivers/net/bnx2x_main.c
@@ -6480,6 +6480,7 @@ load_int_disable:
bnx2x_free_irq(bp);
load_error:
bnx2x_free_mem(bp);
+ bp->port.pmf = 0;
/* TBD we really need to reset the chip
if we want to recover from this */
@@ -6790,6 +6791,7 @@ unload_error:
/* Report UNLOAD_DONE to MCP */
if (!BP_NOMCP(bp))
bnx2x_fw_command(bp, DRV_MSG_CODE_UNLOAD_DONE);
+ bp->port.pmf = 0;
/* Free SKBs, SGEs, TPA pool and driver internals */
bnx2x_free_skbs(bp);
--
^ permalink raw reply [flat|nested] 52+ messages in thread
* [patch 06/46] bnx2x: PCI configuration bug on big-endian
2008-11-17 7:13 ` [patch 00/46] 2.6.27.7-stable review Greg KH
` (4 preceding siblings ...)
2008-11-17 7:14 ` [patch 05/46] bnx2x: Removing the PMF indication when unloading Greg KH
@ 2008-11-17 7:14 ` Greg KH
2008-11-17 7:14 ` [patch 07/46] bnx2x: Calling netif_carrier_off at the end of the probe Greg KH
` (39 subsequent siblings)
45 siblings, 0 replies; 52+ messages in thread
From: Greg KH @ 2008-11-17 7:14 UTC (permalink / raw)
To: linux-kernel, stable
Cc: Justin Forbes, Zwane Mwaikambo, Theodore Ts'o, Randy Dunlap,
Dave Jones, Chuck Wolber, Chris Wedgwood, Michael Krufky,
Chuck Ebbert, Domenico Andreoli, Willy Tarreau,
Rodrigo Rubira Branco, Jake Edge, Eugene Teo, torvalds, akpm,
alan, Eilon Greenstein, David S. Miller, Alex Chiang,
Greg Kroah-Hartman
[-- Attachment #1: bnx2x-pci-configuration-bug-on-big-endian.patch --]
[-- Type: text/plain, Size: 1560 bytes --]
2.6.27-stable review patch. If anyone has any objections, please let us know.
------------------
From: Eilon Greenstein <eilong@broadcom.com>
commit 7d96567ac0527703cf1b80043fc0ebd7f21a10ad upstream.
The current code read nothing but zeros on big-endian (wrong part of the
32bits). This caused poor performance on big-endian machines. Though this
issue did not cause the system to crash, the performance is significantly
better with the fix so I view it as critical bug fix.
Signed-off-by: Eilon Greenstein <eilong@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Cc: Alex Chiang <achiang@hp.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
---
drivers/net/bnx2x_init.h | 9 +++++----
1 file changed, 5 insertions(+), 4 deletions(-)
--- a/drivers/net/bnx2x_init.h
+++ b/drivers/net/bnx2x_init.h
@@ -564,14 +564,15 @@ static const struct arb_line write_arb_a
static void bnx2x_init_pxp(struct bnx2x *bp)
{
+ u16 devctl;
int r_order, w_order;
u32 val, i;
pci_read_config_word(bp->pdev,
- bp->pcie_cap + PCI_EXP_DEVCTL, (u16 *)&val);
- DP(NETIF_MSG_HW, "read 0x%x from devctl\n", (u16)val);
- w_order = ((val & PCI_EXP_DEVCTL_PAYLOAD) >> 5);
- r_order = ((val & PCI_EXP_DEVCTL_READRQ) >> 12);
+ bp->pcie_cap + PCI_EXP_DEVCTL, &devctl);
+ DP(NETIF_MSG_HW, "read 0x%x from devctl\n", devctl);
+ w_order = ((devctl & PCI_EXP_DEVCTL_PAYLOAD) >> 5);
+ r_order = ((devctl & PCI_EXP_DEVCTL_READRQ) >> 12);
if (r_order > MAX_RD_ORD) {
DP(NETIF_MSG_HW, "read order of %d order adjusted to %d\n",
--
^ permalink raw reply [flat|nested] 52+ messages in thread
* [patch 07/46] bnx2x: Calling netif_carrier_off at the end of the probe
2008-11-17 7:13 ` [patch 00/46] 2.6.27.7-stable review Greg KH
` (5 preceding siblings ...)
2008-11-17 7:14 ` [patch 06/46] bnx2x: PCI configuration bug on big-endian Greg KH
@ 2008-11-17 7:14 ` Greg KH
2008-11-17 7:14 ` [patch 08/46] ARM: 5329/1: Feroceon: fix feroceon_l2_inv_range Greg KH
` (38 subsequent siblings)
45 siblings, 0 replies; 52+ messages in thread
From: Greg KH @ 2008-11-17 7:14 UTC (permalink / raw)
To: linux-kernel, stable
Cc: Justin Forbes, Zwane Mwaikambo, Theodore Ts'o, Randy Dunlap,
Dave Jones, Chuck Wolber, Chris Wedgwood, Michael Krufky,
Chuck Ebbert, Domenico Andreoli, Willy Tarreau,
Rodrigo Rubira Branco, Jake Edge, Eugene Teo, torvalds, akpm,
alan, Eilon Greenstein, David S. Miller, Alex Chiang,
Greg Kroah-Hartman
[-- Attachment #1: bnx2x-calling-netif_carrier_off-at-the-end-of-the-probe.patch --]
[-- Type: text/plain, Size: 1184 bytes --]
2.6.27-stable review patch. If anyone has any objections, please let us know.
------------------
From: Eilon Greenstein <eilong@broadcom.com>
commit 12b56ea89e70d4b04f2f5199750310e82894ebbd upstream.
netif_carrier_off was called too early at the probe. In case of failure
or simply bad timing, this can cause a fatal error since linkwatch_event
might run too soon.
Signed-off-by: Eilon Greenstein <eilong@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Cc: Alex Chiang <achiang@hp.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
---
drivers/net/bnx2x_main.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
--- a/drivers/net/bnx2x_main.c
+++ b/drivers/net/bnx2x_main.c
@@ -10205,8 +10205,6 @@ static int __devinit bnx2x_init_one(stru
return -ENOMEM;
}
- netif_carrier_off(dev);
-
bp = netdev_priv(dev);
bp->msglevel = debug;
@@ -10230,6 +10228,8 @@ static int __devinit bnx2x_init_one(stru
goto init_one_exit;
}
+ netif_carrier_off(dev);
+
bp->common.name = board_info[ent->driver_data].name;
printk(KERN_INFO "%s: %s (%c%d) PCI-E x%d %s found at mem %lx,"
" IRQ %d, ", dev->name, bp->common.name,
--
^ permalink raw reply [flat|nested] 52+ messages in thread
* [patch 08/46] ARM: 5329/1: Feroceon: fix feroceon_l2_inv_range
2008-11-17 7:13 ` [patch 00/46] 2.6.27.7-stable review Greg KH
` (6 preceding siblings ...)
2008-11-17 7:14 ` [patch 07/46] bnx2x: Calling netif_carrier_off at the end of the probe Greg KH
@ 2008-11-17 7:14 ` Greg KH
2008-11-17 7:14 ` [patch 09/46] Fix platform drivers that crash on suspend/resume Greg KH
` (37 subsequent siblings)
45 siblings, 0 replies; 52+ messages in thread
From: Greg KH @ 2008-11-17 7:14 UTC (permalink / raw)
To: linux-kernel, stable
Cc: Justin Forbes, Zwane Mwaikambo, Theodore Ts'o, Randy Dunlap,
Dave Jones, Chuck Wolber, Chris Wedgwood, Michael Krufky,
Chuck Ebbert, Domenico Andreoli, Willy Tarreau,
Rodrigo Rubira Branco, Jake Edge, Eugene Teo, torvalds, akpm,
alan, Nicolas Pitre, Russell King, Greg Kroah-Hartman
[-- Attachment #1: arm-5329-1-feroceon-fix-feroceon_l2_inv_range.patch --]
[-- Type: text/plain, Size: 1331 bytes --]
2.6.27-stable review patch. If anyone has any objections, please let us know.
------------------
From: Nicolas Pitre <nico@cam.org>
commit 72bc2b1ad62f4d2f0a51b35829093d41f55accce upstream.
Same fix as commit c7cf72dcadb: when 'start' and 'end' are less than a
cacheline apart and 'start' is unaligned we are done after cleaning and
invalidating the first cacheline.
Signed-off-by: Nicolas Pitre <nico@marvell.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
---
arch/arm/mm/cache-feroceon-l2.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
--- a/arch/arm/mm/cache-feroceon-l2.c
+++ b/arch/arm/mm/cache-feroceon-l2.c
@@ -148,7 +148,7 @@ static void feroceon_l2_inv_range(unsign
/*
* Clean and invalidate partial last cache line.
*/
- if (end & (CACHE_LINE_SIZE - 1)) {
+ if (start < end && end & (CACHE_LINE_SIZE - 1)) {
l2_clean_inv_pa(end & ~(CACHE_LINE_SIZE - 1));
end &= ~(CACHE_LINE_SIZE - 1);
}
@@ -156,7 +156,7 @@ static void feroceon_l2_inv_range(unsign
/*
* Invalidate all full cache lines between 'start' and 'end'.
*/
- while (start != end) {
+ while (start < end) {
unsigned long range_end = calc_range_end(start, end);
l2_inv_pa_range(start, range_end - CACHE_LINE_SIZE);
start = range_end;
--
^ permalink raw reply [flat|nested] 52+ messages in thread
* [patch 09/46] Fix platform drivers that crash on suspend/resume
2008-11-17 7:13 ` [patch 00/46] 2.6.27.7-stable review Greg KH
` (7 preceding siblings ...)
2008-11-17 7:14 ` [patch 08/46] ARM: 5329/1: Feroceon: fix feroceon_l2_inv_range Greg KH
@ 2008-11-17 7:14 ` Greg KH
2008-11-17 7:14 ` [patch 10/46] hostap: pad the skb->cb usage in lieu of a proper fix Greg KH
` (36 subsequent siblings)
45 siblings, 0 replies; 52+ messages in thread
From: Greg KH @ 2008-11-17 7:14 UTC (permalink / raw)
To: linux-kernel, stable
Cc: Justin Forbes, Zwane Mwaikambo, Theodore Ts'o, Randy Dunlap,
Dave Jones, Chuck Wolber, Chris Wedgwood, Michael Krufky,
Chuck Ebbert, Domenico Andreoli, Willy Tarreau,
Rodrigo Rubira Branco, Jake Edge, Eugene Teo, torvalds, akpm,
alan, Darrick J. Wong, Corey Minyard, Jean Delvare, Kay Sievers,
Greg Kroah-Hartman
[-- Attachment #1: fix-platform-drivers-that-crash-on-suspend-resume.patch --]
[-- Type: text/plain, Size: 6440 bytes --]
2.6.27-stable review patch. If anyone has any objections, please let us know.
------------------
From: Darrick J. Wong <djwong@us.ibm.com>
commit fe2d5ffc74a1de6a31e9fd65b65cce72d881edf7 upstream.
It turns out that if one registers a struct platform_device, the
platform device code expects that platform_device.device->driver points
to a struct driver inside a struct platform_driver.
This is not the case with the ipmi-si, ipmi-msghandler and ibmaem
drivers, which causes the suspend/resume hook functions to jump off into
nowhere, causing a crash. Make this assumption hold true for these
three drivers.
Signed-off-by: Darrick J. Wong <djwong@us.ibm.com>
Acked-by: Corey Minyard <cminyard@mvista.com>
Cc: Jean Delvare <khali@linux-fr.org>
Cc: Kay Sievers <kay.sievers@vrfy.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
---
drivers/char/ipmi/ipmi_msghandler.c | 20 +++++++++++---------
drivers/char/ipmi/ipmi_si_intf.c | 16 +++++++++-------
drivers/hwmon/ibmaem.c | 18 ++++++++++--------
3 files changed, 30 insertions(+), 24 deletions(-)
--- a/drivers/char/ipmi/ipmi_msghandler.c
+++ b/drivers/char/ipmi/ipmi_msghandler.c
@@ -422,9 +422,11 @@ struct ipmi_smi {
/**
* The driver model view of the IPMI messaging driver.
*/
-static struct device_driver ipmidriver = {
- .name = "ipmi",
- .bus = &platform_bus_type
+static struct platform_driver ipmidriver = {
+ .driver = {
+ .name = "ipmi",
+ .bus = &platform_bus_type
+ }
};
static DEFINE_MUTEX(ipmidriver_mutex);
@@ -2384,9 +2386,9 @@ static int ipmi_bmc_register(ipmi_smi_t
* representing the interfaced BMC already
*/
if (bmc->guid_set)
- old_bmc = ipmi_find_bmc_guid(&ipmidriver, bmc->guid);
+ old_bmc = ipmi_find_bmc_guid(&ipmidriver.driver, bmc->guid);
else
- old_bmc = ipmi_find_bmc_prod_dev_id(&ipmidriver,
+ old_bmc = ipmi_find_bmc_prod_dev_id(&ipmidriver.driver,
bmc->id.product_id,
bmc->id.device_id);
@@ -2416,7 +2418,7 @@ static int ipmi_bmc_register(ipmi_smi_t
snprintf(name, sizeof(name),
"ipmi_bmc.%4.4x", bmc->id.product_id);
- while (ipmi_find_bmc_prod_dev_id(&ipmidriver,
+ while (ipmi_find_bmc_prod_dev_id(&ipmidriver.driver,
bmc->id.product_id,
bmc->id.device_id)) {
if (!warn_printed) {
@@ -2446,7 +2448,7 @@ static int ipmi_bmc_register(ipmi_smi_t
" Unable to allocate platform device\n");
return -ENOMEM;
}
- bmc->dev->dev.driver = &ipmidriver;
+ bmc->dev->dev.driver = &ipmidriver.driver;
dev_set_drvdata(&bmc->dev->dev, bmc);
kref_init(&bmc->refcount);
@@ -4247,7 +4249,7 @@ static int ipmi_init_msghandler(void)
if (initialized)
return 0;
- rv = driver_register(&ipmidriver);
+ rv = driver_register(&ipmidriver.driver);
if (rv) {
printk(KERN_ERR PFX "Could not register IPMI driver\n");
return rv;
@@ -4308,7 +4310,7 @@ static __exit void cleanup_ipmi(void)
remove_proc_entry(proc_ipmi_root->name, NULL);
#endif /* CONFIG_PROC_FS */
- driver_unregister(&ipmidriver);
+ driver_unregister(&ipmidriver.driver);
initialized = 0;
--- a/drivers/char/ipmi/ipmi_si_intf.c
+++ b/drivers/char/ipmi/ipmi_si_intf.c
@@ -114,9 +114,11 @@ static char *si_to_str[] = { "kcs", "smi
#define DEVICE_NAME "ipmi_si"
-static struct device_driver ipmi_driver = {
- .name = DEVICE_NAME,
- .bus = &platform_bus_type
+static struct platform_driver ipmi_driver = {
+ .driver = {
+ .name = DEVICE_NAME,
+ .bus = &platform_bus_type
+ }
};
@@ -2868,7 +2870,7 @@ static int try_smi_init(struct smi_info
goto out_err;
}
new_smi->dev = &new_smi->pdev->dev;
- new_smi->dev->driver = &ipmi_driver;
+ new_smi->dev->driver = &ipmi_driver.driver;
rv = platform_device_add(new_smi->pdev);
if (rv) {
@@ -2983,7 +2985,7 @@ static __devinit int init_ipmi_si(void)
initialized = 1;
/* Register the device drivers. */
- rv = driver_register(&ipmi_driver);
+ rv = driver_register(&ipmi_driver.driver);
if (rv) {
printk(KERN_ERR
"init_ipmi_si: Unable to register driver: %d\n",
@@ -3052,7 +3054,7 @@ static __devinit int init_ipmi_si(void)
#ifdef CONFIG_PPC_OF
of_unregister_platform_driver(&ipmi_of_platform_driver);
#endif
- driver_unregister(&ipmi_driver);
+ driver_unregister(&ipmi_driver.driver);
printk(KERN_WARNING
"ipmi_si: Unable to find any System Interface(s)\n");
return -ENODEV;
@@ -3151,7 +3153,7 @@ static __exit void cleanup_ipmi_si(void)
cleanup_one_si(e);
mutex_unlock(&smi_infos_lock);
- driver_unregister(&ipmi_driver);
+ driver_unregister(&ipmi_driver.driver);
}
module_exit(cleanup_ipmi_si);
--- a/drivers/hwmon/ibmaem.c
+++ b/drivers/hwmon/ibmaem.c
@@ -88,9 +88,11 @@
static DEFINE_IDR(aem_idr);
static DEFINE_SPINLOCK(aem_idr_lock);
-static struct device_driver aem_driver = {
- .name = DRVNAME,
- .bus = &platform_bus_type,
+static struct platform_driver aem_driver = {
+ .driver = {
+ .name = DRVNAME,
+ .bus = &platform_bus_type,
+ }
};
struct aem_ipmi_data {
@@ -583,7 +585,7 @@ static int aem_init_aem1_inst(struct aem
data->pdev = platform_device_alloc(DRVNAME, data->id);
if (!data->pdev)
goto dev_err;
- data->pdev->dev.driver = &aem_driver;
+ data->pdev->dev.driver = &aem_driver.driver;
res = platform_device_add(data->pdev);
if (res)
@@ -716,7 +718,7 @@ static int aem_init_aem2_inst(struct aem
data->pdev = platform_device_alloc(DRVNAME, data->id);
if (!data->pdev)
goto dev_err;
- data->pdev->dev.driver = &aem_driver;
+ data->pdev->dev.driver = &aem_driver.driver;
res = platform_device_add(data->pdev);
if (res)
@@ -1085,7 +1087,7 @@ static int __init aem_init(void)
{
int res;
- res = driver_register(&aem_driver);
+ res = driver_register(&aem_driver.driver);
if (res) {
printk(KERN_ERR "Can't register aem driver\n");
return res;
@@ -1097,7 +1099,7 @@ static int __init aem_init(void)
return 0;
ipmi_reg_err:
- driver_unregister(&aem_driver);
+ driver_unregister(&aem_driver.driver);
return res;
}
@@ -1107,7 +1109,7 @@ static void __exit aem_exit(void)
struct aem_data *p1, *next1;
ipmi_smi_watcher_unregister(&driver_data.bmc_events);
- driver_unregister(&aem_driver);
+ driver_unregister(&aem_driver.driver);
list_for_each_entry_safe(p1, next1, &driver_data.aem_devices, list)
aem_delete(p1);
}
--
^ permalink raw reply [flat|nested] 52+ messages in thread
* [patch 10/46] hostap: pad the skb->cb usage in lieu of a proper fix
2008-11-17 7:13 ` [patch 00/46] 2.6.27.7-stable review Greg KH
` (8 preceding siblings ...)
2008-11-17 7:14 ` [patch 09/46] Fix platform drivers that crash on suspend/resume Greg KH
@ 2008-11-17 7:14 ` Greg KH
2008-11-17 7:14 ` [patch 11/46] ACPI: avoid empty file name in sysfs Greg KH
` (35 subsequent siblings)
45 siblings, 0 replies; 52+ messages in thread
From: Greg KH @ 2008-11-17 7:14 UTC (permalink / raw)
To: linux-kernel, stable
Cc: Justin Forbes, Zwane Mwaikambo, Theodore Ts'o, Randy Dunlap,
Dave Jones, Chuck Wolber, Chris Wedgwood, Michael Krufky,
Chuck Ebbert, Domenico Andreoli, Willy Tarreau,
Rodrigo Rubira Branco, Jake Edge, Eugene Teo, torvalds, akpm,
alan, Johannes Berg, John W. Linville, Greg Kroah-Hartman
[-- Attachment #1: hostap-pad-the-skb-cb-usage-in-lieu-of-a-proper-fix.patch --]
[-- Type: text/plain, Size: 1570 bytes --]
2.6.27-stable review patch. If anyone has any objections, please let us know.
------------------
From: Johannes Berg <johannes@sipsolutions.net>
commit f7cd168645dda3e9067f24fabbfa787f9a237488 upstream.
Like mac80211 did, this driver makes 'clever' use of skb->cb to pass
information along with an skb as it is requeued from the virtual device
to the physical wireless device. Unfortunately, that trick no longer
works...
Unlike mac80211, code complexity and driver apathy makes this hack
the best option we have in the short run. Hopefully someone will
eventually be motivated to code a proper fix before all the effected
hardware dies.
(Above text by me. Johannes officially disavows all knowledge of this
hack. -- JWL)
Signed-off-by: Johannes Berg <johannes@sipsolutions.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
---
drivers/net/wireless/hostap/hostap_wlan.h | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
--- a/drivers/net/wireless/hostap/hostap_wlan.h
+++ b/drivers/net/wireless/hostap/hostap_wlan.h
@@ -918,9 +918,12 @@ struct hostap_interface {
/*
* TX meta data - stored in skb->cb buffer, so this must not be increased over
- * the 40-byte limit
+ * the 48-byte limit.
+ * THE PADDING THIS STARTS WITH IS A HORRIBLE HACK THAT SHOULD NOT LIVE
+ * TO SEE THE DAY.
*/
struct hostap_skb_tx_data {
+ unsigned int __padding_for_default_qdiscs;
u32 magic; /* HOSTAP_SKB_TX_DATA_MAGIC */
u8 rate; /* transmit rate */
#define HOSTAP_TX_FLAGS_WDS BIT(0)
--
^ permalink raw reply [flat|nested] 52+ messages in thread
* [patch 11/46] ACPI: avoid empty file name in sysfs
2008-11-17 7:13 ` [patch 00/46] 2.6.27.7-stable review Greg KH
` (9 preceding siblings ...)
2008-11-17 7:14 ` [patch 10/46] hostap: pad the skb->cb usage in lieu of a proper fix Greg KH
@ 2008-11-17 7:14 ` Greg KH
2008-11-17 7:14 ` [patch 12/46] ACPI: EC: make kernel messages more useful when GPE storm is detected Greg KH
` (34 subsequent siblings)
45 siblings, 0 replies; 52+ messages in thread
From: Greg KH @ 2008-11-17 7:14 UTC (permalink / raw)
To: linux-kernel, stable
Cc: Justin Forbes, Zwane Mwaikambo, Theodore Ts'o, Randy Dunlap,
Dave Jones, Chuck Wolber, Chris Wedgwood, Michael Krufky,
Chuck Ebbert, Domenico Andreoli, Willy Tarreau,
Rodrigo Rubira Branco, Jake Edge, Eugene Teo, torvalds, akpm,
alan, Zhang Rui, Len Brown, Greg Kroah-Hartman
[-- Attachment #1: acpi-avoid-empty-file-name-in-sysfs.patch --]
[-- Type: text/plain, Size: 2615 bytes --]
2.6.27-stable review patch. If anyone has any objections, please let us know.
------------------
From: Peter Gruber <nokos@gmx.net>
commit 4feba70a2c1a1a0c96909f657f48b2e11e682370 upstream.
Since commit bc45b1d39a925b56796bebf8a397a0491489d85c acpi tables are
allowed to have an empty signature and /sys/firmware/acpi/tables uses the
signature as filename. Applications using naive recursion through /sys
loop forever. A possible solution would be: (replacing the zero length
filename with the string "NULL")
http://bugzilla.kernel.org/show_bug.cgi?id=11539
Acked-by: Zhang Rui <rui.zhang@intel.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Len Brown <len.brown@intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
---
drivers/acpi/system.c | 25 +++++++++++++++++--------
1 file changed, 17 insertions(+), 8 deletions(-)
--- a/drivers/acpi/system.c
+++ b/drivers/acpi/system.c
@@ -78,9 +78,15 @@ static ssize_t acpi_table_show(struct ko
container_of(bin_attr, struct acpi_table_attr, attr);
struct acpi_table_header *table_header = NULL;
acpi_status status;
+ char name[ACPI_NAME_SIZE];
+
+ if (strncmp(table_attr->name, "NULL", 4))
+ memcpy(name, table_attr->name, ACPI_NAME_SIZE);
+ else
+ memcpy(name, "\0\0\0\0", 4);
status =
- acpi_get_table(table_attr->name, table_attr->instance,
+ acpi_get_table(name, table_attr->instance,
&table_header);
if (ACPI_FAILURE(status))
return -ENODEV;
@@ -95,21 +101,24 @@ static void acpi_table_attr_init(struct
struct acpi_table_header *header = NULL;
struct acpi_table_attr *attr = NULL;
- memcpy(table_attr->name, table_header->signature, ACPI_NAME_SIZE);
+ if (table_header->signature[0] != '\0')
+ memcpy(table_attr->name, table_header->signature,
+ ACPI_NAME_SIZE);
+ else
+ memcpy(table_attr->name, "NULL", 4);
list_for_each_entry(attr, &acpi_table_attr_list, node) {
- if (!memcmp(table_header->signature, attr->name,
- ACPI_NAME_SIZE))
+ if (!memcmp(table_attr->name, attr->name, ACPI_NAME_SIZE))
if (table_attr->instance < attr->instance)
table_attr->instance = attr->instance;
}
table_attr->instance++;
if (table_attr->instance > 1 || (table_attr->instance == 1 &&
- !acpi_get_table(table_header->
- signature, 2,
- &header)))
- sprintf(table_attr->name + 4, "%d", table_attr->instance);
+ !acpi_get_table
+ (table_header->signature, 2, &header)))
+ sprintf(table_attr->name + ACPI_NAME_SIZE, "%d",
+ table_attr->instance);
table_attr->attr.size = 0;
table_attr->attr.read = acpi_table_show;
--
^ permalink raw reply [flat|nested] 52+ messages in thread
* [patch 12/46] ACPI: EC: make kernel messages more useful when GPE storm is detected
2008-11-17 7:13 ` [patch 00/46] 2.6.27.7-stable review Greg KH
` (10 preceding siblings ...)
2008-11-17 7:14 ` [patch 11/46] ACPI: avoid empty file name in sysfs Greg KH
@ 2008-11-17 7:14 ` Greg KH
2008-11-17 7:15 ` [patch 13/46] hugetlb: make unmap_ref_private multi-size-aware Greg KH
` (33 subsequent siblings)
45 siblings, 0 replies; 52+ messages in thread
From: Greg KH @ 2008-11-17 7:14 UTC (permalink / raw)
To: linux-kernel, stable
Cc: Justin Forbes, Zwane Mwaikambo, Theodore Ts'o, Randy Dunlap,
Dave Jones, Chuck Wolber, Chris Wedgwood, Michael Krufky,
Chuck Ebbert, Domenico Andreoli, Willy Tarreau,
Rodrigo Rubira Branco, Jake Edge, Eugene Teo, torvalds, akpm,
alan, Alan Jenkins, Alexey Starikovskiy, Len Brown,
Rafael J. Wysocki, Greg Kroah-Hartman
[-- Attachment #1: acpi-ec-make-kernel-messages-more-useful-when-gpe-storm-is-detected.patch --]
[-- Type: text/plain, Size: 1971 bytes --]
2.6.27-stable review patch. If anyone has any objections, please let us know.
------------------
From: Alan Jenkins <alan-jenkins@tuffmail.co.uk>
commit f8248434e6a11d7cd314281be3b39bbcf82fc243 upstream.
Make sure we can tell if the GPE storm workaround gets activated,
and avoid flooding the logs afterwards.
http://bugzilla.kernel.org/show_bug.cgi?id=11841
"plenty of line "ACPI: EC: non-query interrupt received,
switching to interrupt mode" in dmesg"
Signed-off-by: Alan Jenkins <alan-jenkins@tuffmail.co.uk>
Acked-by: Alexey Starikovskiy <astarikovskiy@suse.de>
Signed-off-by: Len Brown <len.brown@intel.com>
Cc: Rafael J. Wysocki <rjw@sisk.pl>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
---
drivers/acpi/ec.c | 13 ++++++++++---
1 file changed, 10 insertions(+), 3 deletions(-)
--- a/drivers/acpi/ec.c
+++ b/drivers/acpi/ec.c
@@ -286,7 +286,8 @@ static int acpi_ec_transaction_unlocked(
acpi_enable_gpe(NULL, ec->gpe, ACPI_NOT_ISR);
} else if (test_bit(EC_FLAGS_GPE_MODE, &ec->flags) &&
t->irq_count > ACPI_EC_STORM_THRESHOLD) {
- pr_debug(PREFIX "GPE storm detected\n");
+ pr_info(PREFIX "GPE storm detected, "
+ "transactions will use polling mode\n");
set_bit(EC_FLAGS_GPE_STORM, &ec->flags);
}
return ret;
@@ -566,9 +567,15 @@ static u32 acpi_ec_gpe_handler(void *dat
if (!test_bit(EC_FLAGS_GPE_MODE, &ec->flags) &&
!test_bit(EC_FLAGS_NO_GPE, &ec->flags)) {
/* this is non-query, must be confirmation */
- if (printk_ratelimit())
- pr_info(PREFIX "non-query interrupt received,"
+ if (!test_bit(EC_FLAGS_GPE_STORM, &ec->flags)) {
+ if (printk_ratelimit())
+ pr_info(PREFIX "non-query interrupt received,"
+ " switching to interrupt mode\n");
+ } else {
+ /* hush, STORM switches the mode every transaction */
+ pr_debug(PREFIX "non-query interrupt received,"
" switching to interrupt mode\n");
+ }
set_bit(EC_FLAGS_GPE_MODE, &ec->flags);
}
return ACPI_INTERRUPT_HANDLED;
--
^ permalink raw reply [flat|nested] 52+ messages in thread
* [patch 13/46] hugetlb: make unmap_ref_private multi-size-aware
2008-11-17 7:13 ` [patch 00/46] 2.6.27.7-stable review Greg KH
` (11 preceding siblings ...)
2008-11-17 7:14 ` [patch 12/46] ACPI: EC: make kernel messages more useful when GPE storm is detected Greg KH
@ 2008-11-17 7:15 ` Greg KH
2008-11-17 7:15 ` [patch 14/46] rtl8187: Add Abocom USB ID Greg KH
` (32 subsequent siblings)
45 siblings, 0 replies; 52+ messages in thread
From: Greg KH @ 2008-11-17 7:15 UTC (permalink / raw)
To: linux-kernel, stable
Cc: Justin Forbes, Zwane Mwaikambo, Theodore Ts'o, Randy Dunlap,
Dave Jones, Chuck Wolber, Chris Wedgwood, Michael Krufky,
Chuck Ebbert, Domenico Andreoli, Willy Tarreau,
Rodrigo Rubira Branco, Jake Edge, Eugene Teo, torvalds, akpm,
alan, Adam Litke, Jon Tollefson, Mel Gorman, Greg Kroah-Hartman
[-- Attachment #1: hugetlb-make-unmap_ref_private-multi-size-aware.patch --]
[-- Type: text/plain, Size: 1969 bytes --]
2.6.27-stable review patch. If anyone has any objections, please let us know.
------------------
From: Adam Litke <agl@us.ibm.com>
commit 7526674de0c921e7f1e9b6f71a1f9d832557b554 upstream.
Oops. Part of the hugetlb private reservation code was not fully
converted to use hstates.
When a huge page must be unmapped from VMAs due to a failed COW,
HPAGE_SIZE is used in the call to unmap_hugepage_range() regardless of
the page size being used. This works if the VMA is using the default
huge page size. Otherwise we might unmap too much, too little, or
trigger a BUG_ON. Rare but serious -- fix it.
Signed-off-by: Adam Litke <agl@us.ibm.com>
Cc: Jon Tollefson <kniht@linux.vnet.ibm.com>
Cc: Mel Gorman <mel@csn.ul.ie>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
---
mm/hugetlb.c | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
--- a/mm/hugetlb.c
+++ b/mm/hugetlb.c
@@ -1797,6 +1797,7 @@ int unmap_ref_private(struct mm_struct *
struct page *page,
unsigned long address)
{
+ struct hstate *h = hstate_vma(vma);
struct vm_area_struct *iter_vma;
struct address_space *mapping;
struct prio_tree_iter iter;
@@ -1806,7 +1807,7 @@ int unmap_ref_private(struct mm_struct *
* vm_pgoff is in PAGE_SIZE units, hence the different calculation
* from page cache lookup which is in HPAGE_SIZE units.
*/
- address = address & huge_page_mask(hstate_vma(vma));
+ address = address & huge_page_mask(h);
pgoff = ((address - vma->vm_start) >> PAGE_SHIFT)
+ (vma->vm_pgoff >> PAGE_SHIFT);
mapping = (struct address_space *)page_private(page);
@@ -1825,7 +1826,7 @@ int unmap_ref_private(struct mm_struct *
*/
if (!is_vma_resv_set(iter_vma, HPAGE_RESV_OWNER))
unmap_hugepage_range(iter_vma,
- address, address + HPAGE_SIZE,
+ address, address + huge_page_size(h),
page);
}
--
^ permalink raw reply [flat|nested] 52+ messages in thread
* [patch 14/46] rtl8187: Add Abocom USB ID
2008-11-17 7:13 ` [patch 00/46] 2.6.27.7-stable review Greg KH
` (12 preceding siblings ...)
2008-11-17 7:15 ` [patch 13/46] hugetlb: make unmap_ref_private multi-size-aware Greg KH
@ 2008-11-17 7:15 ` Greg KH
2008-11-17 7:15 ` [patch 15/46] rtl8187 : support for Sitecom WL-168 0001 v4 Greg KH
` (31 subsequent siblings)
45 siblings, 0 replies; 52+ messages in thread
From: Greg KH @ 2008-11-17 7:15 UTC (permalink / raw)
To: linux-kernel, stable
Cc: Justin Forbes, Zwane Mwaikambo, Theodore Ts'o, Randy Dunlap,
Dave Jones, Chuck Wolber, Chris Wedgwood, Michael Krufky,
Chuck Ebbert, Domenico Andreoli, Willy Tarreau,
Rodrigo Rubira Branco, Jake Edge, Eugene Teo, torvalds, akpm,
alan, Ivan Kuten, Larry Finger, John W. Linville,
Greg Kroah-Hartman
[-- Attachment #1: rtl8187-add-abocom-usb-id.patch --]
[-- Type: text/plain, Size: 879 bytes --]
2.6.27-stable review patch. If anyone has any objections, please let us know.
------------------
From: Ivan Kuten <ivan.kuten@promwad.com>
commit 8f7c41d4cec91cdbfa89b4a77d5a628938875366 upstream.
Signed-off-by: Ivan Kuten <ivan.kuten@promwad.com>
Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
---
drivers/net/wireless/rtl8187_dev.c | 2 ++
1 file changed, 2 insertions(+)
--- a/drivers/net/wireless/rtl8187_dev.c
+++ b/drivers/net/wireless/rtl8187_dev.c
@@ -45,6 +45,8 @@ static struct usb_device_id rtl8187_tabl
{USB_DEVICE(0x03f0, 0xca02), .driver_info = DEVICE_RTL8187},
/* Sitecom */
{USB_DEVICE(0x0df6, 0x000d), .driver_info = DEVICE_RTL8187},
+ /* Abocom */
+ {USB_DEVICE(0x13d1, 0xabe6), .driver_info = DEVICE_RTL8187},
{}
};
--
^ permalink raw reply [flat|nested] 52+ messages in thread
* [patch 15/46] rtl8187 : support for Sitecom WL-168 0001 v4
2008-11-17 7:13 ` [patch 00/46] 2.6.27.7-stable review Greg KH
` (13 preceding siblings ...)
2008-11-17 7:15 ` [patch 14/46] rtl8187: Add Abocom USB ID Greg KH
@ 2008-11-17 7:15 ` Greg KH
2008-11-17 7:15 ` [patch 16/46] kbuild: Fixup deb-pkg target to generate separate firmware deb Greg KH
` (30 subsequent siblings)
45 siblings, 0 replies; 52+ messages in thread
From: Greg KH @ 2008-11-17 7:15 UTC (permalink / raw)
To: linux-kernel, stable
Cc: Justin Forbes, Zwane Mwaikambo, Theodore Ts'o, Randy Dunlap,
Dave Jones, Chuck Wolber, Chris Wedgwood, Michael Krufky,
Chuck Ebbert, Domenico Andreoli, Willy Tarreau,
Rodrigo Rubira Branco, Jake Edge, Eugene Teo, torvalds, akpm,
alan, John W. Linville, Greg Kroah-Hartman
[-- Attachment #1: rtl8187-support-for-sitecom-wl-168-0001-v4.patch --]
[-- Type: text/plain, Size: 941 bytes --]
2.6.27-stable review patch. If anyone has any objections, please let us know.
------------------
From: Bob Jolliffe <bobjolliffe@gmail.com>
commit f3c769185a28b7947d97b3552a977102c1fac3f2 upstream.
the Sitecom 0001 v4 with product id 0x0df6:0028, uses Realtek's
RTL8187B and work fine with new 2.6.27 driver.
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
---
drivers/net/wireless/rtl8187_dev.c | 1 +
1 file changed, 1 insertion(+)
--- a/drivers/net/wireless/rtl8187_dev.c
+++ b/drivers/net/wireless/rtl8187_dev.c
@@ -45,6 +45,7 @@ static struct usb_device_id rtl8187_tabl
{USB_DEVICE(0x03f0, 0xca02), .driver_info = DEVICE_RTL8187},
/* Sitecom */
{USB_DEVICE(0x0df6, 0x000d), .driver_info = DEVICE_RTL8187},
+ {USB_DEVICE(0x0df6, 0x0028), .driver_info = DEVICE_RTL8187B},
/* Abocom */
{USB_DEVICE(0x13d1, 0xabe6), .driver_info = DEVICE_RTL8187},
{}
--
^ permalink raw reply [flat|nested] 52+ messages in thread
* [patch 16/46] kbuild: Fixup deb-pkg target to generate separate firmware deb
2008-11-17 7:13 ` [patch 00/46] 2.6.27.7-stable review Greg KH
` (14 preceding siblings ...)
2008-11-17 7:15 ` [patch 15/46] rtl8187 : support for Sitecom WL-168 0001 v4 Greg KH
@ 2008-11-17 7:15 ` Greg KH
2008-11-17 7:15 ` [patch 17/46] block: fix nr_phys_segments miscalculation bug Greg KH
` (29 subsequent siblings)
45 siblings, 0 replies; 52+ messages in thread
From: Greg KH @ 2008-11-17 7:15 UTC (permalink / raw)
To: linux-kernel, stable
Cc: Justin Forbes, Zwane Mwaikambo, Theodore Ts'o, Randy Dunlap,
Dave Jones, Chuck Wolber, Chris Wedgwood, Michael Krufky,
Chuck Ebbert, Domenico Andreoli, Willy Tarreau,
Rodrigo Rubira Branco, Jake Edge, Eugene Teo, torvalds, akpm,
alan, Jonathan McDowell, Frans Pop, Sam Ravnborg,
Greg Kroah-Hartman
[-- Attachment #1: kbuild-fixup-deb-pkg-target-to-generate-separate-firmware-deb.patch --]
[-- Type: text/plain, Size: 2300 bytes --]
2.6.27-stable review patch. If anyone has any objections, please let us know.
------------------
From: Jonathan McDowell <noodles@earth.li>
commit bf1b36445dc868cbbde194aa1dd87e38fe24cf16 upstream.
The below is a simplistic fix for "make deb-pkg"; it splits the
firmware out to a linux-firmware-image package and adds an
(unversioned) Suggests to the linux package for this firmware.
Signed-Off-By: Jonathan McDowell <noodles@earth.li>
Acked-by: Frans Pop <elendil@planet.nl>
Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
---
scripts/package/builddeb | 24 ++++++++++++++++++++++--
1 file changed, 22 insertions(+), 2 deletions(-)
--- a/scripts/package/builddeb
+++ b/scripts/package/builddeb
@@ -15,15 +15,18 @@ set -e
version=$KERNELRELEASE
revision=`cat .version`
tmpdir="$objtree/debian/tmp"
+fwdir="$objtree/debian/fwtmp"
packagename=linux-$version
+fwpackagename=linux-firmware-image
if [ "$ARCH" == "um" ] ; then
packagename=user-mode-linux-$version
fi
# Setup the directory structure
-rm -rf "$tmpdir"
+rm -rf "$tmpdir" "$fwdir"
mkdir -p "$tmpdir/DEBIAN" "$tmpdir/lib" "$tmpdir/boot"
+mkdir -p "$fwdir/DEBIAN" "$fwdir/lib"
if [ "$ARCH" == "um" ] ; then
mkdir -p "$tmpdir/usr/lib/uml/modules/$version" "$tmpdir/usr/share/doc/$packagename" "$tmpdir/usr/bin"
fi
@@ -107,6 +110,7 @@ Standards-Version: 3.6.1
Package: $packagename
Provides: kernel-image-$version, linux-image-$version
+Suggests: $fwpackagename
Architecture: any
Description: Linux kernel, version $version
This package contains the Linux kernel, modules and corresponding other
@@ -118,8 +122,24 @@ fi
chown -R root:root "$tmpdir"
chmod -R go-w "$tmpdir"
+# Do we have firmware? Move it out of the way and build it into a package.
+if [ -e "$tmpdir/lib/firmware" ]; then
+ mv "$tmpdir/lib/firmware" "$fwdir/lib/"
+
+ cat <<EOF >> debian/control
+
+Package: $fwpackagename
+Architecture: all
+Description: Linux kernel firmware, version $version
+ This package contains firmware from the Linux kernel, version $version
+EOF
+
+ dpkg-gencontrol -isp -p$fwpackagename -P"$fwdir"
+ dpkg --build "$fwdir" ..
+fi
+
# Perform the final magic
-dpkg-gencontrol -isp
+dpkg-gencontrol -isp -p$packagename
dpkg --build "$tmpdir" ..
exit 0
--
^ permalink raw reply [flat|nested] 52+ messages in thread
* [patch 17/46] block: fix nr_phys_segments miscalculation bug
2008-11-17 7:13 ` [patch 00/46] 2.6.27.7-stable review Greg KH
` (15 preceding siblings ...)
2008-11-17 7:15 ` [patch 16/46] kbuild: Fixup deb-pkg target to generate separate firmware deb Greg KH
@ 2008-11-17 7:15 ` Greg KH
2008-11-17 7:15 ` [patch 18/46] powerpc/mpic: Fix regression caused by change of default IRQ affinity Greg KH
` (28 subsequent siblings)
45 siblings, 0 replies; 52+ messages in thread
From: Greg KH @ 2008-11-17 7:15 UTC (permalink / raw)
To: linux-kernel, stable
Cc: Justin Forbes, Zwane Mwaikambo, Theodore Ts'o, Randy Dunlap,
Dave Jones, Chuck Wolber, Chris Wedgwood, Michael Krufky,
Chuck Ebbert, Domenico Andreoli, Willy Tarreau,
Rodrigo Rubira Branco, Jake Edge, Eugene Teo, torvalds, akpm,
alan, FUJITA Tomonori, Jens Axboe, Nikanth Karthikesan,
Greg Kroah-Hartman
[-- Attachment #1: block-fix-nr_phys_segments-miscalculation-bug.patch --]
[-- Type: text/plain, Size: 3938 bytes --]
2.6.27-stable review patch. If anyone has any objections, please let us know.
------------------
From: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
commit 8677142710516d986d932d6f1fba7be8382c1fec upstream
backported by Nikanth Karthikesan <knikanth@suse.de> to the 2.6.27.y tree.
block: fix nr_phys_segments miscalculation bug
This fixes the bug reported by Nikanth Karthikesan <knikanth@suse.de>:
http://lkml.org/lkml/2008/10/2/203
The root cause of the bug is that blk_phys_contig_segment
miscalculates q->max_segment_size.
blk_phys_contig_segment checks:
req->biotail->bi_size + next_req->bio->bi_size > q->max_segment_size
But blk_recalc_rq_segments might expect that req->biotail and the
previous bio in the req are supposed be merged into one
segment. blk_recalc_rq_segments might also expect that next_req->bio
and the next bio in the next_req are supposed be merged into one
segment. In such case, we merge two requests that can't be merged
here. Later, blk_rq_map_sg gives more segments than it should.
We need to keep track of segment size in blk_recalc_rq_segments and
use it to see if two requests can be merged. This patch implements it
in the similar way that we used to do for hw merging (virtual
merging).
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
Cc: Nikanth Karthikesan <knikanth@suse.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
---
block/blk-merge.c | 19 +++++++++++++++++--
include/linux/bio.h | 7 +++++++
2 files changed, 24 insertions(+), 2 deletions(-)
--- a/block/blk-merge.c
+++ b/block/blk-merge.c
@@ -95,6 +95,9 @@ new_hw_segment:
nr_hw_segs++;
}
+ if (nr_phys_segs == 1 && seg_size > rq->bio->bi_seg_front_size)
+ rq->bio->bi_seg_front_size = seg_size;
+
nr_phys_segs++;
bvprv = bv;
seg_size = bv->bv_len;
@@ -106,6 +109,10 @@ new_hw_segment:
rq->bio->bi_hw_front_size = hw_seg_size;
if (hw_seg_size > rq->biotail->bi_hw_back_size)
rq->biotail->bi_hw_back_size = hw_seg_size;
+ if (nr_phys_segs == 1 && seg_size > rq->bio->bi_seg_front_size)
+ rq->bio->bi_seg_front_size = seg_size;
+ if (seg_size > rq->biotail->bi_seg_back_size)
+ rq->biotail->bi_seg_back_size = seg_size;
rq->nr_phys_segments = nr_phys_segs;
rq->nr_hw_segments = nr_hw_segs;
}
@@ -133,7 +140,8 @@ static int blk_phys_contig_segment(struc
if (!BIOVEC_PHYS_MERGEABLE(__BVEC_END(bio), __BVEC_START(nxt)))
return 0;
- if (bio->bi_size + nxt->bi_size > q->max_segment_size)
+ if (bio->bi_seg_back_size + nxt->bi_seg_front_size >
+ q->max_segment_size)
return 0;
/*
@@ -377,6 +385,8 @@ static int ll_merge_requests_fn(struct r
{
int total_phys_segments;
int total_hw_segments;
+ unsigned int seg_size =
+ req->biotail->bi_seg_back_size + next->bio->bi_seg_front_size;
/*
* First check if the either of the requests are re-queued
@@ -392,8 +402,13 @@ static int ll_merge_requests_fn(struct r
return 0;
total_phys_segments = req->nr_phys_segments + next->nr_phys_segments;
- if (blk_phys_contig_segment(q, req->biotail, next->bio))
+ if (blk_phys_contig_segment(q, req->biotail, next->bio)) {
+ if (req->nr_phys_segments == 1)
+ req->bio->bi_seg_front_size = seg_size;
+ if (next->nr_phys_segments == 1)
+ next->biotail->bi_seg_back_size = seg_size;
total_phys_segments--;
+ }
if (total_phys_segments > q->max_phys_segments)
return 0;
--- a/include/linux/bio.h
+++ b/include/linux/bio.h
@@ -98,6 +98,13 @@ struct bio {
unsigned int bi_size; /* residual I/O count */
/*
+ * To keep track of the max segment size, we account for the
+ * sizes of the first and last mergeable segments in this bio.
+ */
+ unsigned int bi_seg_front_size;
+ unsigned int bi_seg_back_size;
+
+ /*
* To keep track of the max hw size, we account for the
* sizes of the first and last virtually mergeable segments
* in this bio
--
^ permalink raw reply [flat|nested] 52+ messages in thread
* [patch 18/46] powerpc/mpic: Fix regression caused by change of default IRQ affinity
2008-11-17 7:13 ` [patch 00/46] 2.6.27.7-stable review Greg KH
` (16 preceding siblings ...)
2008-11-17 7:15 ` [patch 17/46] block: fix nr_phys_segments miscalculation bug Greg KH
@ 2008-11-17 7:15 ` Greg KH
2008-11-17 7:15 ` [patch 19/46] Input: ALPS - add signature for DualPoint found in Dell Latitude E6500 Greg KH
` (27 subsequent siblings)
45 siblings, 0 replies; 52+ messages in thread
From: Greg KH @ 2008-11-17 7:15 UTC (permalink / raw)
To: linux-kernel, stable
Cc: Justin Forbes, Zwane Mwaikambo, Theodore Ts'o, Randy Dunlap,
Dave Jones, Chuck Wolber, Chris Wedgwood, Michael Krufky,
Chuck Ebbert, Domenico Andreoli, Willy Tarreau,
Rodrigo Rubira Branco, Jake Edge, Eugene Teo, torvalds, akpm,
alan, Kumar Gala, Paul Mackerras, Greg Kroah-Hartman
[-- Attachment #1: powerpc-mpic-fix-regression-caused-by-change-of-default-irq-affinity.patch --]
[-- Type: text/plain, Size: 4198 bytes --]
2.6.27-stable review patch. If anyone has any objections, please let us know.
------------------
From: Kumar Gala <galak@kernel.crashing.org>
commit 3c10c9c45e290022ca7d2aa1ad33a0b6ed767520 upstream.
The Freescale implementation of MPIC only allows a single CPU destination
for non-IPI interrupts. We add a flag to the mpic_init to distinquish
these variants of MPIC. We pull in the irq_choose_cpu from sparc64 to
select a single CPU as the destination of the interrupt.
This is to deal with the fact that the default smp affinity was
changed by commit 18404756765c713a0be4eb1082920c04822ce588 ("genirq:
Expose default irq affinity mask (take 3)") to be all CPUs.
Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
Signed-off-by: Paul Mackerras <paulus@samba.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
---
arch/powerpc/include/asm/mpic.h | 2 +
arch/powerpc/platforms/85xx/mpc85xx_ds.c | 3 +
arch/powerpc/platforms/86xx/pic.c | 3 +
arch/powerpc/sysdev/mpic.c | 59 ++++++++++++++++++++++++++++---
4 files changed, 61 insertions(+), 6 deletions(-)
--- a/arch/powerpc/include/asm/mpic.h
+++ b/arch/powerpc/include/asm/mpic.h
@@ -355,6 +355,8 @@ struct mpic
#define MPIC_NO_BIAS 0x00000400
/* Ignore NIRQS as reported by FRR */
#define MPIC_BROKEN_FRR_NIRQS 0x00000800
+/* Destination only supports a single CPU at a time */
+#define MPIC_SINGLE_DEST_CPU 0x00001000
/* MPIC HW modification ID */
#define MPIC_REGSET_MASK 0xf0000000
--- a/arch/powerpc/platforms/85xx/mpc85xx_ds.c
+++ b/arch/powerpc/platforms/85xx/mpc85xx_ds.c
@@ -78,7 +78,8 @@ void __init mpc85xx_ds_pic_init(void)
mpic = mpic_alloc(np, r.start,
MPIC_PRIMARY | MPIC_WANTS_RESET |
- MPIC_BIG_ENDIAN | MPIC_BROKEN_FRR_NIRQS,
+ MPIC_BIG_ENDIAN | MPIC_BROKEN_FRR_NIRQS |
+ MPIC_SINGLE_DEST_CPU,
0, 256, " OpenPIC ");
BUG_ON(mpic == NULL);
of_node_put(np);
--- a/arch/powerpc/platforms/86xx/pic.c
+++ b/arch/powerpc/platforms/86xx/pic.c
@@ -44,7 +44,8 @@ void __init mpc86xx_init_irq(void)
mpic = mpic_alloc(np, res.start,
MPIC_PRIMARY | MPIC_WANTS_RESET |
- MPIC_BIG_ENDIAN | MPIC_BROKEN_FRR_NIRQS,
+ MPIC_BIG_ENDIAN | MPIC_BROKEN_FRR_NIRQS |
+ MPIC_SINGLE_DEST_CPU,
0, 256, " MPIC ");
of_node_put(np);
BUG_ON(mpic == NULL);
--- a/arch/powerpc/sysdev/mpic.c
+++ b/arch/powerpc/sysdev/mpic.c
@@ -563,6 +563,51 @@ static void __init mpic_scan_ht_pics(str
#endif /* CONFIG_MPIC_U3_HT_IRQS */
+#ifdef CONFIG_SMP
+static int irq_choose_cpu(unsigned int virt_irq)
+{
+ cpumask_t mask = irq_desc[virt_irq].affinity;
+ int cpuid;
+
+ if (cpus_equal(mask, CPU_MASK_ALL)) {
+ static int irq_rover;
+ static DEFINE_SPINLOCK(irq_rover_lock);
+ unsigned long flags;
+
+ /* Round-robin distribution... */
+ do_round_robin:
+ spin_lock_irqsave(&irq_rover_lock, flags);
+
+ while (!cpu_online(irq_rover)) {
+ if (++irq_rover >= NR_CPUS)
+ irq_rover = 0;
+ }
+ cpuid = irq_rover;
+ do {
+ if (++irq_rover >= NR_CPUS)
+ irq_rover = 0;
+ } while (!cpu_online(irq_rover));
+
+ spin_unlock_irqrestore(&irq_rover_lock, flags);
+ } else {
+ cpumask_t tmp;
+
+ cpus_and(tmp, cpu_online_map, mask);
+
+ if (cpus_empty(tmp))
+ goto do_round_robin;
+
+ cpuid = first_cpu(tmp);
+ }
+
+ return cpuid;
+}
+#else
+static int irq_choose_cpu(unsigned int virt_irq)
+{
+ return hard_smp_processor_id();
+}
+#endif
#define mpic_irq_to_hw(virq) ((unsigned int)irq_map[virq].hwirq)
@@ -777,12 +822,18 @@ void mpic_set_affinity(unsigned int irq,
struct mpic *mpic = mpic_from_irq(irq);
unsigned int src = mpic_irq_to_hw(irq);
- cpumask_t tmp;
+ if (mpic->flags & MPIC_SINGLE_DEST_CPU) {
+ int cpuid = irq_choose_cpu(irq);
+
+ mpic_irq_write(src, MPIC_INFO(IRQ_DESTINATION), 1 << cpuid);
+ } else {
+ cpumask_t tmp;
- cpus_and(tmp, cpumask, cpu_online_map);
+ cpus_and(tmp, cpumask, cpu_online_map);
- mpic_irq_write(src, MPIC_INFO(IRQ_DESTINATION),
- mpic_physmask(cpus_addr(tmp)[0]));
+ mpic_irq_write(src, MPIC_INFO(IRQ_DESTINATION),
+ mpic_physmask(cpus_addr(tmp)[0]));
+ }
}
static unsigned int mpic_type_to_vecpri(struct mpic *mpic, unsigned int type)
--
^ permalink raw reply [flat|nested] 52+ messages in thread
* [patch 19/46] Input: ALPS - add signature for DualPoint found in Dell Latitude E6500
2008-11-17 7:13 ` [patch 00/46] 2.6.27.7-stable review Greg KH
` (17 preceding siblings ...)
2008-11-17 7:15 ` [patch 18/46] powerpc/mpic: Fix regression caused by change of default IRQ affinity Greg KH
@ 2008-11-17 7:15 ` Greg KH
2008-11-17 7:15 ` [patch 20/46] memory hotplug: fix page_zone() calculation in test_pages_isolated() Greg KH
` (26 subsequent siblings)
45 siblings, 0 replies; 52+ messages in thread
From: Greg KH @ 2008-11-17 7:15 UTC (permalink / raw)
To: linux-kernel, stable
Cc: Justin Forbes, Zwane Mwaikambo, Theodore Ts'o, Randy Dunlap,
Dave Jones, Chuck Wolber, Chris Wedgwood, Michael Krufky,
Chuck Ebbert, Domenico Andreoli, Willy Tarreau,
Rodrigo Rubira Branco, Jake Edge, Eugene Teo, torvalds, akpm,
alan, Elvis Pranskevichus, Dmitry Torokhov, Greg Kroah-Hartman
[-- Attachment #1: input-alps-add-signature-for-dualpoint-found-in-dell-latitude-e6500.patch --]
[-- Type: text/plain, Size: 968 bytes --]
2.6.27-stable review patch. If anyone has any objections, please let us know.
------------------
From: Elvis Pranskevichus <el@prans.net>
commit 0d46ed1c747edfe6476961d4d9f732ceb7a29074 upstream.
Signed-off-by: Elvis Pranskevichus <el@prans.net>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
---
drivers/input/mouse/alps.c | 1 +
1 file changed, 1 insertion(+)
--- a/drivers/input/mouse/alps.c
+++ b/drivers/input/mouse/alps.c
@@ -54,6 +54,7 @@ static const struct alps_model_info alps
{ { 0x20, 0x02, 0x0e }, 0xf8, 0xf8, ALPS_PASS | ALPS_DUALPOINT }, /* XXX */
{ { 0x22, 0x02, 0x0a }, 0xf8, 0xf8, ALPS_PASS | ALPS_DUALPOINT },
{ { 0x22, 0x02, 0x14 }, 0xff, 0xff, ALPS_PASS | ALPS_DUALPOINT }, /* Dell Latitude D600 */
+ { { 0x62, 0x02, 0x14 }, 0xcf, 0xcf, ALPS_PASS | ALPS_DUALPOINT }, /* Dell Latitude E6500 */
{ { 0x73, 0x02, 0x50 }, 0xcf, 0xcf, ALPS_FW_BK_1 } /* Dell Vostro 1400 */
};
--
^ permalink raw reply [flat|nested] 52+ messages in thread
* [patch 20/46] memory hotplug: fix page_zone() calculation in test_pages_isolated()
2008-11-17 7:13 ` [patch 00/46] 2.6.27.7-stable review Greg KH
` (18 preceding siblings ...)
2008-11-17 7:15 ` [patch 19/46] Input: ALPS - add signature for DualPoint found in Dell Latitude E6500 Greg KH
@ 2008-11-17 7:15 ` Greg KH
2008-11-17 7:15 ` [patch 21/46] r8169: select MII in Kconfig Greg KH
` (25 subsequent siblings)
45 siblings, 0 replies; 52+ messages in thread
From: Greg KH @ 2008-11-17 7:15 UTC (permalink / raw)
To: linux-kernel, stable
Cc: Justin Forbes, Zwane Mwaikambo, Theodore Ts'o, Randy Dunlap,
Dave Jones, Chuck Wolber, Chris Wedgwood, Michael Krufky,
Chuck Ebbert, Domenico Andreoli, Willy Tarreau,
Rodrigo Rubira Branco, Jake Edge, Eugene Teo, torvalds, akpm,
alan, Gerald Schaefer, Nathan Fontenot, Greg Kroah-Hartman
[-- Attachment #1: memory-hotplug-fix-page_zone-calculation-in-test_pages_isolated.patch --]
[-- Type: text/plain, Size: 1652 bytes --]
2.6.27-stable review patch. If anyone has any objections, please let us know.
------------------
From: Gerald Schaefer <gerald.schaefer@de.ibm.com>
commit a70dcb969f64e2fa98c24f47854f20bf02ff0092 upstream.
My last bugfix here (adding zone->lock) introduced a new problem: Using
page_zone(pfn_to_page(pfn)) to get the zone after the for() loop is wrong.
pfn will then be >= end_pfn, which may be in a different zone or not
present at all. This may lead to an addressing exception in page_zone()
or spin_lock_irqsave().
Now I use __first_valid_page() again after the loop to find a valid page
for page_zone().
Signed-off-by: Gerald Schaefer <gerald.schaefer@de.ibm.com>
Acked-by: Nathan Fontenot <nfont@austin.ibm.com>
Reviewed-by: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
---
mm/page_isolation.c | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
--- a/mm/page_isolation.c
+++ b/mm/page_isolation.c
@@ -130,10 +130,11 @@ int test_pages_isolated(unsigned long st
if (page && get_pageblock_migratetype(page) != MIGRATE_ISOLATE)
break;
}
- if (pfn < end_pfn)
+ page = __first_valid_page(start_pfn, end_pfn - start_pfn);
+ if ((pfn < end_pfn) || !page)
return -EBUSY;
/* Check all pages are free or Marked as ISOLATED */
- zone = page_zone(pfn_to_page(pfn));
+ zone = page_zone(page);
spin_lock_irqsave(&zone->lock, flags);
ret = __test_page_isolated_in_pageblock(start_pfn, end_pfn);
spin_unlock_irqrestore(&zone->lock, flags);
--
^ permalink raw reply [flat|nested] 52+ messages in thread
* [patch 21/46] r8169: select MII in Kconfig
2008-11-17 7:13 ` [patch 00/46] 2.6.27.7-stable review Greg KH
` (19 preceding siblings ...)
2008-11-17 7:15 ` [patch 20/46] memory hotplug: fix page_zone() calculation in test_pages_isolated() Greg KH
@ 2008-11-17 7:15 ` Greg KH
2008-11-17 7:15 ` [patch 22/46] sony-laptop: ignore missing _DIS method on pic device Greg KH
` (24 subsequent siblings)
45 siblings, 0 replies; 52+ messages in thread
From: Greg KH @ 2008-11-17 7:15 UTC (permalink / raw)
To: linux-kernel, stable
Cc: Justin Forbes, Zwane Mwaikambo, Theodore Ts'o, Randy Dunlap,
Dave Jones, Chuck Wolber, Chris Wedgwood, Michael Krufky,
Chuck Ebbert, Domenico Andreoli, Willy Tarreau,
Rodrigo Rubira Branco, Jake Edge, Eugene Teo, torvalds, akpm,
alan, Hugh Dickins, Francois Romieu, Edward Hsu, Jeff Garzik,
Greg Kroah-Hartman
[-- Attachment #1: r8169-select-mii-in-kconfig.patch --]
[-- Type: text/plain, Size: 907 bytes --]
2.6.27-stable review patch. If anyone has any objections, please let us know.
------------------
From: Francois Romieu <romieu@fr.zoreil.com>
commit b73724921d906d1642f9f6d054079c6b095903fe upstream.
drivers/built-in.o: In function `rtl8169_gset_xmii':
r8169.c:(.text+0x82259): undefined reference to `mii_ethtool_gset'
Signed-off-by: Hugh Dickins <hugh@veritas.com>
Acked-by: Francois Romieu <romieu@fr.zoreil.com>
Cc: Edward Hsu <edward_hsu@realtek.com.tw>
Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
---
drivers/net/Kconfig | 1 +
1 file changed, 1 insertion(+)
--- a/drivers/net/Kconfig
+++ b/drivers/net/Kconfig
@@ -2046,6 +2046,7 @@ config R8169
tristate "Realtek 8169 gigabit ethernet support"
depends on PCI
select CRC32
+ select MII
---help---
Say Y here if you have a Realtek 8169 PCI Gigabit Ethernet adapter.
--
^ permalink raw reply [flat|nested] 52+ messages in thread
* [patch 22/46] sony-laptop: ignore missing _DIS method on pic device
2008-11-17 7:13 ` [patch 00/46] 2.6.27.7-stable review Greg KH
` (20 preceding siblings ...)
2008-11-17 7:15 ` [patch 21/46] r8169: select MII in Kconfig Greg KH
@ 2008-11-17 7:15 ` Greg KH
2008-11-17 7:15 ` [patch 23/46] net: fix /proc/net/snmp as memory corruptor Greg KH
` (23 subsequent siblings)
45 siblings, 0 replies; 52+ messages in thread
From: Greg KH @ 2008-11-17 7:15 UTC (permalink / raw)
To: linux-kernel, stable
Cc: Justin Forbes, Zwane Mwaikambo, Theodore Ts'o, Randy Dunlap,
Dave Jones, Chuck Wolber, Chris Wedgwood, Michael Krufky,
Chuck Ebbert, Domenico Andreoli, Willy Tarreau,
Rodrigo Rubira Branco, Jake Edge, Eugene Teo, torvalds, akpm,
alan, Adam Jackson, Mattia Dongili, Len Brown, Steve Conklin,
Greg Kroah-Hartman
[-- Attachment #1: sony-laptop-ignore-missing-_dis-method-on-pic-device.patch --]
[-- Type: text/plain, Size: 1192 bytes --]
2.6.27-stable review patch. If anyone has any objections, please let us know.
------------------
From: Matthew Garrett <mjg59@srcf.ucam.org>
commit 6158d3a2323835546c7cf83a170316fa77b726e0 upstream.
At least the Vaio VGN-Z540N doesn't have this method, so let's not fail
to suspend just because it doesn't exist.
Signed-off-by: Adam Jackson <ajax@redhat.com>
Acked-by: Mattia Dongili <malattia@linux.it>
Cc: Len Brown <lenb@kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Steve Conklin <sconklin@canonical.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
---
drivers/misc/sony-laptop.c | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
--- a/drivers/misc/sony-laptop.c
+++ b/drivers/misc/sony-laptop.c
@@ -2315,8 +2315,10 @@ end:
*/
static int sony_pic_disable(struct acpi_device *device)
{
- if (ACPI_FAILURE(acpi_evaluate_object(device->handle,
- "_DIS", NULL, NULL)))
+ acpi_status ret = acpi_evaluate_object(device->handle, "_DIS", NULL,
+ NULL);
+
+ if (ACPI_FAILURE(ret) && ret != AE_NOT_FOUND)
return -ENXIO;
dprintk("Device disabled\n");
--
^ permalink raw reply [flat|nested] 52+ messages in thread
* [patch 23/46] net: fix /proc/net/snmp as memory corruptor
2008-11-17 7:13 ` [patch 00/46] 2.6.27.7-stable review Greg KH
` (21 preceding siblings ...)
2008-11-17 7:15 ` [patch 22/46] sony-laptop: ignore missing _DIS method on pic device Greg KH
@ 2008-11-17 7:15 ` Greg KH
2008-11-17 7:15 ` [patch 24/46] Fix broken ownership of /proc/sys/ files Greg KH
` (22 subsequent siblings)
45 siblings, 0 replies; 52+ messages in thread
From: Greg KH @ 2008-11-17 7:15 UTC (permalink / raw)
To: linux-kernel, stable
Cc: Justin Forbes, Zwane Mwaikambo, Theodore Ts'o, Randy Dunlap,
Dave Jones, Chuck Wolber, Chris Wedgwood, Michael Krufky,
Chuck Ebbert, Domenico Andreoli, Willy Tarreau,
Rodrigo Rubira Branco, Jake Edge, Eugene Teo, torvalds, akpm,
alan, Alexey Dobriyan, Eric Dumazet, David S. Miller,
Greg Kroah-Hartman
[-- Attachment #1: net-fix-proc-net-snmp-as-memory-corruptor.patch --]
[-- Type: text/plain, Size: 2674 bytes --]
2.6.27-stable review patch. If anyone has any objections, please let us know.
------------------
From: Eric Dumazet <dada1@cosmosbay.com>
commit b971e7ac834e9f4bda96d5a96ae9abccd01c1dd8 upstream.
icmpmsg_put() can happily corrupt kernel memory, using a static
table and forgetting to reset an array index in a loop.
Remove the static array since its not safe without proper locking.
Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com>
Signed-off-by: Eric Dumazet <dada1@cosmosbay.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
---
net/ipv4/proc.c | 58 ++++++++++++++++++++++++++++----------------------------
1 file changed, 30 insertions(+), 28 deletions(-)
--- a/net/ipv4/proc.c
+++ b/net/ipv4/proc.c
@@ -237,43 +237,45 @@ static const struct snmp_mib snmp4_net_l
SNMP_MIB_SENTINEL
};
+static void icmpmsg_put_line(struct seq_file *seq, unsigned long *vals,
+ unsigned short *type, int count)
+{
+ int j;
+
+ if (count) {
+ seq_printf(seq, "\nIcmpMsg:");
+ for (j = 0; j < count; ++j)
+ seq_printf(seq, " %sType%u",
+ type[j] & 0x100 ? "Out" : "In",
+ type[j] & 0xff);
+ seq_printf(seq, "\nIcmpMsg:");
+ for (j = 0; j < count; ++j)
+ seq_printf(seq, " %lu", vals[j]);
+ }
+}
+
static void icmpmsg_put(struct seq_file *seq)
{
#define PERLINE 16
- int j, i, count;
- static int out[PERLINE];
+ int i, count;
+ unsigned short type[PERLINE];
+ unsigned long vals[PERLINE], val;
struct net *net = seq->private;
count = 0;
for (i = 0; i < ICMPMSG_MIB_MAX; i++) {
-
- if (snmp_fold_field((void **) net->mib.icmpmsg_statistics, i))
- out[count++] = i;
- if (count < PERLINE)
- continue;
-
- seq_printf(seq, "\nIcmpMsg:");
- for (j = 0; j < PERLINE; ++j)
- seq_printf(seq, " %sType%u", i & 0x100 ? "Out" : "In",
- i & 0xff);
- seq_printf(seq, "\nIcmpMsg: ");
- for (j = 0; j < PERLINE; ++j)
- seq_printf(seq, " %lu",
- snmp_fold_field((void **) net->mib.icmpmsg_statistics,
- out[j]));
- seq_putc(seq, '\n');
- }
- if (count) {
- seq_printf(seq, "\nIcmpMsg:");
- for (j = 0; j < count; ++j)
- seq_printf(seq, " %sType%u", out[j] & 0x100 ? "Out" :
- "In", out[j] & 0xff);
- seq_printf(seq, "\nIcmpMsg:");
- for (j = 0; j < count; ++j)
- seq_printf(seq, " %lu", snmp_fold_field((void **)
- net->mib.icmpmsg_statistics, out[j]));
+ val = snmp_fold_field((void **) net->mib.icmpmsg_statistics, i);
+ if (val) {
+ type[count] = i;
+ vals[count++] = val;
+ }
+ if (count == PERLINE) {
+ icmpmsg_put_line(seq, vals, type, count);
+ count = 0;
+ }
}
+ icmpmsg_put_line(seq, vals, type, count);
#undef PERLINE
}
--
^ permalink raw reply [flat|nested] 52+ messages in thread
* [patch 24/46] Fix broken ownership of /proc/sys/ files
2008-11-17 7:13 ` [patch 00/46] 2.6.27.7-stable review Greg KH
` (22 preceding siblings ...)
2008-11-17 7:15 ` [patch 23/46] net: fix /proc/net/snmp as memory corruptor Greg KH
@ 2008-11-17 7:15 ` Greg KH
2008-11-17 20:09 ` Theodore Tso
2008-11-17 7:15 ` [patch 25/46] V4L/DVB (9624): CVE-2008-5033: fix OOPS on tvaudio when controlling bass/treble Greg KH
` (21 subsequent siblings)
45 siblings, 1 reply; 52+ messages in thread
From: Greg KH @ 2008-11-17 7:15 UTC (permalink / raw)
To: linux-kernel, stable
Cc: Justin Forbes, Zwane Mwaikambo, Theodore Ts'o, Randy Dunlap,
Dave Jones, Chuck Wolber, Chris Wedgwood, Michael Krufky,
Chuck Ebbert, Domenico Andreoli, Willy Tarreau,
Rodrigo Rubira Branco, Jake Edge, Eugene Teo, torvalds, akpm,
alan, Al Viro, Greg Kroah-Hartman
[-- Attachment #1: fix-broken-ownership-of-proc-sys-files.patch --]
[-- Type: text/plain, Size: 924 bytes --]
2.6.27-stable review patch. If anyone has any objections, please let us know.
------------------
From: Al Viro <viro@ZenIV.linux.org.uk>
commit 5c06fe772da43db63b053addcd2c267f76d0be91 upstream.
D'oh...
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Reported-and-tested-by: Peter Palfrader <peter@palfrader.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
---
fs/proc/proc_sysctl.c | 1 +
1 file changed, 1 insertion(+)
--- a/fs/proc/proc_sysctl.c
+++ b/fs/proc/proc_sysctl.c
@@ -31,6 +31,7 @@ static struct inode *proc_sys_make_inode
inode->i_mtime = inode->i_atime = inode->i_ctime = CURRENT_TIME;
inode->i_flags |= S_PRIVATE; /* tell selinux to ignore this inode */
inode->i_mode = table->mode;
+ inode->i_uid = inode->i_gid = 0;
if (!table->child) {
inode->i_mode |= S_IFREG;
inode->i_op = &proc_sys_inode_operations;
--
^ permalink raw reply [flat|nested] 52+ messages in thread
* [patch 25/46] V4L/DVB (9624): CVE-2008-5033: fix OOPS on tvaudio when controlling bass/treble
2008-11-17 7:13 ` [patch 00/46] 2.6.27.7-stable review Greg KH
` (23 preceding siblings ...)
2008-11-17 7:15 ` [patch 24/46] Fix broken ownership of /proc/sys/ files Greg KH
@ 2008-11-17 7:15 ` Greg KH
2008-11-17 13:31 ` Mauro Carvalho Chehab
2008-11-17 7:15 ` [patch 26/46] S390: cpu topology: fix locking Greg KH
` (20 subsequent siblings)
45 siblings, 1 reply; 52+ messages in thread
From: Greg KH @ 2008-11-17 7:15 UTC (permalink / raw)
To: linux-kernel, stable
Cc: Justin Forbes, Zwane Mwaikambo, Theodore Ts'o, Randy Dunlap,
Dave Jones, Chuck Wolber, Chris Wedgwood, Michael Krufky,
Chuck Ebbert, Domenico Andreoli, Willy Tarreau,
Rodrigo Rubira Branco, Jake Edge, Eugene Teo, torvalds, akpm,
alan, Mauro Carvalho Chehab, Greg Kroah-Hartman
[-- Attachment #1: v4l-dvb-cve-2008-5033-fix-oops-on-tvaudio-when-controlling-bass-treble.patch --]
[-- Type: text/plain, Size: 5147 bytes --]
2.6.27-stable review patch. If anyone has any objections, please let us know.
------------------
From: Mauro Carvalho Chehab <mchehab@redhat.com>
commit 01a1a3cc1e3fbe718bd06a2a5d4d1a2d0fb4d7d9 upstream.
This bug were supposed to be fixed by 5ba2f67afb02c5302b2898949ed6fc3b3d37dcf1,
where a call to NULL happens.
Not all tvaudio chips allow controlling bass/treble. So, the driver
has a table with a flag to indicate if the chip does support it.
Unfortunately, the handling of this logic were broken for a very long
time (probably since the first module version). Due to that, an OOPS
were generated for devices that don't support bass/treble.
This were the resulting OOPS message before the patch, with debug messages
enabled:
tvaudio' 1-005b: VIDIOC_S_CTRL
BUG: unable to handle kernel NULL pointer dereference at 00000000
IP: [<00000000>]
*pde = 22fda067 *pte = 00000000
Oops: 0000 [#1] SMP
Modules linked in: snd_hda_intel snd_seq_dummy snd_seq_oss snd_seq_midi_event snd_seq snd_seq_device
snd_pcm_oss snd_mixer_oss snd_pcm snd_timer snd_hwdep snd soundcore tuner_simple tuner_types tea5767 tuner
tvaudio bttv bridgebnep rfcomm l2cap bluetooth it87 hwmon_vid hwmon fuse sunrpc ipt_REJECT
nf_conntrack_ipv4 iptable_filter ip_tables ip6t_REJECT xt_tcpudp nf_conntrack_ipv6 xt_state nf_conntrack
ip6table_filter ip6_tables x_tables ipv6 dm_mirrordm_multipath dm_mod configfs videodev v4l1_compat
ir_common 8139cp compat_ioctl32 v4l2_common 8139too videobuf_dma_sg videobuf_core mii btcx_risc tveeprom
i915 button snd_page_alloc serio_raw drm pcspkr i2c_algo_bit i2c_i801 i2c_core iTCO_wdt
iTCO_vendor_support sr_mod cdrom sg ata_generic pata_acpi ata_piix libata sd_mod scsi_mod ext3 jbdmbcache
uhci_hcd ohci_hcd ehci_hcd [last unloaded: soundcore]
Pid: 15413, comm: qv4l2 Not tainted (2.6.25.14-108.fc9.i686 #1)
EIP: 0060:[<00000000>] EFLAGS: 00210246 CPU: 0
EIP is at 0x0
EAX: 00008000 EBX: ebd21600 ECX: e2fd9ec4 EDX: 00200046
ESI: f8c0f0c4 EDI: f8c0f0c4 EBP: e2fd9d50 ESP: e2fd9d2c
DS: 007b ES: 007b FS: 00d8 GS: 0033 SS: 0068
Process qv4l2 (pid: 15413, ti=e2fd9000 task=ebe44000 task.ti=e2fd9000)
Stack: f8c0c6ae e2ff2a00 00000d00 e2fd9ec4 ebc4e000 e2fd9d5c f8c0c448 00000000
f899c12a e2fd9d5c f899c154 e2fd9d68 e2fd9d80 c0560185 e2fd9d88 f8f3e1d8
f8f3e1dc ebc4e034 f8f3e18c e2fd9ec4 00000000 e2fd9d90 f899c286 c008561c
Call Trace:
[<f8c0c6ae>] ? chip_command+0x266/0x4b6 [tvaudio]
[<f8c0c448>] ? chip_command+0x0/0x4b6 [tvaudio]
[<f899c12a>] ? i2c_cmd+0x0/0x2f [i2c_core]
[<f899c154>] ? i2c_cmd+0x2a/0x2f [i2c_core]
[<c0560185>] ? device_for_each_child+0x21/0x49
[<f899c286>] ? i2c_clients_command+0x1c/0x1e [i2c_core]
[<f8f283d8>] ? bttv_call_i2c_clients+0x14/0x16 [bttv]
[<f8f23601>] ? bttv_s_ctrl+0x1bc/0x313 [bttv]
[<f8f23445>] ? bttv_s_ctrl+0x0/0x313 [bttv]
[<f8b6096d>] ? __video_do_ioctl+0x1f84/0x3726 [videodev]
[<c05abb4e>] ? sock_aio_write+0x100/0x10d
[<c041b23e>] ? kmap_atomic_prot+0x1dd/0x1df
[<c043a0c9>] ? enqueue_hrtimer+0xc2/0xcd
[<c04f4fa4>] ? copy_from_user+0x39/0x121
[<f8b622b9>] ? __video_ioctl2+0x1aa/0x24a [videodev]
[<c04054fd>] ? do_notify_resume+0x768/0x795
[<c043c0f7>] ? getnstimeofday+0x34/0xd1
[<c0437b77>] ? autoremove_wake_function+0x0/0x33
[<f8b62368>] ? video_ioctl2+0xf/0x13 [videodev]
[<c048c6f0>] ? vfs_ioctl+0x50/0x69
[<c048c942>] ? do_vfs_ioctl+0x239/0x24c
[<c048c995>] ? sys_ioctl+0x40/0x5b
[<c0405bf2>] ? syscall_call+0x7/0xb
[<c0620000>] ? cpuid4_cache_sysfs_exit+0x3d/0x69
=======================
Code: Bad EIP value.
EIP: [<00000000>] 0x0 SS:ESP 0068:e2fd9d2c
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
---
drivers/media/video/tvaudio.c | 15 +++++++--------
1 file changed, 7 insertions(+), 8 deletions(-)
--- a/drivers/media/video/tvaudio.c
+++ b/drivers/media/video/tvaudio.c
@@ -1576,13 +1576,13 @@ static int tvaudio_get_ctrl(struct CHIPS
return 0;
}
case V4L2_CID_AUDIO_BASS:
- if (desc->flags & CHIP_HAS_BASSTREBLE)
+ if (!(desc->flags & CHIP_HAS_BASSTREBLE))
break;
ctrl->value = chip->bass;
return 0;
case V4L2_CID_AUDIO_TREBLE:
- if (desc->flags & CHIP_HAS_BASSTREBLE)
- return -EINVAL;
+ if (!(desc->flags & CHIP_HAS_BASSTREBLE))
+ break;
ctrl->value = chip->treble;
return 0;
}
@@ -1642,16 +1642,15 @@ static int tvaudio_set_ctrl(struct CHIPS
return 0;
}
case V4L2_CID_AUDIO_BASS:
- if (desc->flags & CHIP_HAS_BASSTREBLE)
+ if (!(desc->flags & CHIP_HAS_BASSTREBLE))
break;
chip->bass = ctrl->value;
chip_write(chip,desc->bassreg,desc->bassfunc(chip->bass));
return 0;
case V4L2_CID_AUDIO_TREBLE:
- if (desc->flags & CHIP_HAS_BASSTREBLE)
- return -EINVAL;
-
+ if (!(desc->flags & CHIP_HAS_BASSTREBLE))
+ break;
chip->treble = ctrl->value;
chip_write(chip,desc->treblereg,desc->treblefunc(chip->treble));
@@ -1695,7 +1694,7 @@ static int chip_command(struct i2c_clien
break;
case V4L2_CID_AUDIO_BASS:
case V4L2_CID_AUDIO_TREBLE:
- if (desc->flags & CHIP_HAS_BASSTREBLE)
+ if (!(desc->flags & CHIP_HAS_BASSTREBLE))
return -EINVAL;
break;
default:
--
^ permalink raw reply [flat|nested] 52+ messages in thread
* [patch 26/46] S390: cpu topology: fix locking
2008-11-17 7:13 ` [patch 00/46] 2.6.27.7-stable review Greg KH
` (24 preceding siblings ...)
2008-11-17 7:15 ` [patch 25/46] V4L/DVB (9624): CVE-2008-5033: fix OOPS on tvaudio when controlling bass/treble Greg KH
@ 2008-11-17 7:15 ` Greg KH
2008-11-17 7:15 ` [patch 27/46] ACPI : Load device driver according to the status of acpi device Greg KH
` (19 subsequent siblings)
45 siblings, 0 replies; 52+ messages in thread
From: Greg KH @ 2008-11-17 7:15 UTC (permalink / raw)
To: linux-kernel, stable
Cc: Justin Forbes, Zwane Mwaikambo, Theodore Ts'o, Randy Dunlap,
Dave Jones, Chuck Wolber, Chris Wedgwood, Michael Krufky,
Chuck Ebbert, Domenico Andreoli, Willy Tarreau,
Rodrigo Rubira Branco, Jake Edge, Eugene Teo, torvalds, akpm,
alan, Jens Axboe, Heiko Carstens, Martin Schwidefsky,
Greg Kroah-Hartman
[-- Attachment #1: s390-cpu-topology-fix-locking.patch --]
[-- Type: text/plain, Size: 2411 bytes --]
2.6.27-stable review patch. If anyone has any objections, please let us know.
------------------
From: Heiko Carstens <heiko.carstens@de.ibm.com>
commit 74af283102b358b0da545460d0d176f473e110f6 upstream.
cpu_coregroup_map used to grab a mutex on s390 since it was only
called from process context.
Since c7c22e4d5c1fdebfac4dba76de7d0338c2b0d832 "block: add support
for IO CPU affinity" this is not true anymore.
It now also gets called from softirq context.
To prevent possible deadlocks change this in architecture code and
use a spinlock instead of a mutex.
Cc: Jens Axboe <jens.axboe@oracle.com>
Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
---
arch/s390/kernel/topology.c | 11 +++++++----
1 file changed, 7 insertions(+), 4 deletions(-)
--- a/arch/s390/kernel/topology.c
+++ b/arch/s390/kernel/topology.c
@@ -65,18 +65,21 @@ static int machine_has_topology_irq;
static struct timer_list topology_timer;
static void set_topology_timer(void);
static DECLARE_WORK(topology_work, topology_work_fn);
+/* topology_lock protects the core linked list */
+static DEFINE_SPINLOCK(topology_lock);
cpumask_t cpu_core_map[NR_CPUS];
cpumask_t cpu_coregroup_map(unsigned int cpu)
{
struct core_info *core = &core_info;
+ unsigned long flags;
cpumask_t mask;
cpus_clear(mask);
if (!machine_has_topology)
return cpu_present_map;
- mutex_lock(&smp_cpu_state_mutex);
+ spin_lock_irqsave(&topology_lock, flags);
while (core) {
if (cpu_isset(cpu, core->mask)) {
mask = core->mask;
@@ -84,7 +87,7 @@ cpumask_t cpu_coregroup_map(unsigned int
}
core = core->next;
}
- mutex_unlock(&smp_cpu_state_mutex);
+ spin_unlock_irqrestore(&topology_lock, flags);
if (cpus_empty(mask))
mask = cpumask_of_cpu(cpu);
return mask;
@@ -133,7 +136,7 @@ static void tl_to_cores(struct tl_info *
union tl_entry *tle, *end;
struct core_info *core = &core_info;
- mutex_lock(&smp_cpu_state_mutex);
+ spin_lock_irq(&topology_lock);
clear_cores();
tle = info->tle;
end = (union tl_entry *)((unsigned long)info + info->length);
@@ -157,7 +160,7 @@ static void tl_to_cores(struct tl_info *
}
tle = next_tle(tle);
}
- mutex_unlock(&smp_cpu_state_mutex);
+ spin_unlock_irq(&topology_lock);
}
static void topology_update_polarization_simple(void)
--
^ permalink raw reply [flat|nested] 52+ messages in thread
* [patch 27/46] ACPI : Load device driver according to the status of acpi device
2008-11-17 7:13 ` [patch 00/46] 2.6.27.7-stable review Greg KH
` (25 preceding siblings ...)
2008-11-17 7:15 ` [patch 26/46] S390: cpu topology: fix locking Greg KH
@ 2008-11-17 7:15 ` Greg KH
2008-11-17 7:16 ` [patch 28/46] m68k: Fix off-by-one in m68k_setup_user_interrupt() Greg KH
` (18 subsequent siblings)
45 siblings, 0 replies; 52+ messages in thread
From: Greg KH @ 2008-11-17 7:15 UTC (permalink / raw)
To: linux-kernel, stable
Cc: Justin Forbes, Zwane Mwaikambo, Theodore Ts'o, Randy Dunlap,
Dave Jones, Chuck Wolber, Chris Wedgwood, Michael Krufky,
Chuck Ebbert, Domenico Andreoli, Willy Tarreau,
Rodrigo Rubira Branco, Jake Edge, Eugene Teo, torvalds, akpm,
alan, Zhao Yakui, Li Shaohua, Zhang Rui, Andi Kleen, Len Brown,
Holger Macht, Greg Kroah-Hartman
[-- Attachment #1: acpi-load-device-driver-according-to-the-status-of-acpi-device.patch --]
[-- Type: text/plain, Size: 5235 bytes --]
2.6.27-stable review patch. If anyone has any objections, please let us know.
------------------
From: Zhao Yakui <yakui.zhao@intel.com>
commit 39a0ad871000d2a016a4fa113a6e53d22aabf25d upstream.
According to ACPI spec when the status of some device is not present
but functional, the device is valid and the children of this device
should be enumerated. It means that the device should be added to
linux acpi device tree. But the device driver for this device should not
be loaded.
The detailed info can be found in the section 6.3.7 of ACPI 3.0b spec.
_STA may return bit 0 clear (not present) with bit 3 set (device is
functional). This case is used to indicate a valid device for which no
device driver should be loaded (for example, a bridge device.).
Children of this device may be present and valid. OS should continue
enumeration below a device whose _STA returns this bit combination
http://bugzilla.kernel.org/show_bug.cgi?id=3358
Signed-off-by: Zhao Yakui <yakui.zhao@intel.com>
Signed-off-by: Li Shaohua <shaohua.li@intel.com>
Signed-off-by: Zhang Rui <rui.zhang@intel.com>
Signed-off-by: Andi Kleen <ak@linux.intel.com>
Signed-off-by: Len Brown <len.brown@intel.com>
Cc: Holger Macht <hmacht@suse.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
---
drivers/acpi/bus.c | 16 ++++++++--------
drivers/acpi/scan.c | 35 +++++++++++++++++++++++++----------
drivers/pnp/pnpacpi/core.c | 6 +++++-
3 files changed, 38 insertions(+), 19 deletions(-)
--- a/drivers/acpi/bus.c
+++ b/drivers/acpi/bus.c
@@ -95,21 +95,21 @@ int acpi_bus_get_status(struct acpi_devi
}
/*
- * Otherwise we assume the status of our parent (unless we don't
- * have one, in which case status is implied).
+ * According to ACPI spec some device can be present and functional
+ * even if the parent is not present but functional.
+ * In such conditions the child device should not inherit the status
+ * from the parent.
*/
- else if (device->parent)
- device->status = device->parent->status;
else
STRUCT_TO_INT(device->status) =
ACPI_STA_DEVICE_PRESENT | ACPI_STA_DEVICE_ENABLED |
ACPI_STA_DEVICE_UI | ACPI_STA_DEVICE_FUNCTIONING;
if (device->status.functional && !device->status.present) {
- printk(KERN_WARNING PREFIX "Device [%s] status [%08x]: "
- "functional but not present; setting present\n",
- device->pnp.bus_id, (u32) STRUCT_TO_INT(device->status));
- device->status.present = 1;
+ ACPI_DEBUG_PRINT((ACPI_DB_INFO, "Device [%s] status [%08x]: "
+ "functional but not present;\n",
+ device->pnp.bus_id,
+ (u32) STRUCT_TO_INT(device->status)));
}
ACPI_DEBUG_PRINT((ACPI_DB_INFO, "Device [%s] status [%08x]\n",
--- a/drivers/acpi/scan.c
+++ b/drivers/acpi/scan.c
@@ -276,6 +276,13 @@ int acpi_match_device_ids(struct acpi_de
{
const struct acpi_device_id *id;
+ /*
+ * If the device is not present, it is unnecessary to load device
+ * driver for it.
+ */
+ if (!device->status.present)
+ return -ENODEV;
+
if (device->flags.hardware_id) {
for (id = ids; id->id[0]; id++) {
if (!strcmp((char*)id->id, device->pnp.hardware_id))
@@ -1221,15 +1228,18 @@ acpi_add_single_object(struct acpi_devic
result = -ENODEV;
goto end;
}
- if (!device->status.present) {
- /* Bay and dock should be handled even if absent */
- if (!ACPI_SUCCESS(
- acpi_is_child_device(device, acpi_bay_match)) &&
- !ACPI_SUCCESS(
- acpi_is_child_device(device, acpi_dock_match))) {
- result = -ENODEV;
- goto end;
- }
+ /*
+ * When the device is neither present nor functional, the
+ * device should not be added to Linux ACPI device tree.
+ * When the status of the device is not present but functinal,
+ * it should be added to Linux ACPI tree. For example : bay
+ * device , dock device.
+ * In such conditions it is unncessary to check whether it is
+ * bay device or dock device.
+ */
+ if (!device->status.present && !device->status.functional) {
+ result = -ENODEV;
+ goto end;
}
break;
default:
@@ -1402,7 +1412,12 @@ static int acpi_bus_scan(struct acpi_dev
* TBD: Need notifications and other detection mechanisms
* in place before we can fully implement this.
*/
- if (child->status.present) {
+ /*
+ * When the device is not present but functional, it is also
+ * necessary to scan the children of this device.
+ */
+ if (child->status.present || (!child->status.present &&
+ child->status.functional)) {
status = acpi_get_next_object(ACPI_TYPE_ANY, chandle,
NULL, NULL);
if (ACPI_SUCCESS(status)) {
--- a/drivers/pnp/pnpacpi/core.c
+++ b/drivers/pnp/pnpacpi/core.c
@@ -148,9 +148,13 @@ static int __init pnpacpi_add_device(str
acpi_status status;
struct pnp_dev *dev;
+ /*
+ * If a PnPacpi device is not present , the device
+ * driver should not be loaded.
+ */
status = acpi_get_handle(device->handle, "_CRS", &temp);
if (ACPI_FAILURE(status) || !ispnpidacpi(acpi_device_hid(device)) ||
- is_exclusive_device(device))
+ is_exclusive_device(device) || (!device->status.present))
return 0;
dev = pnp_alloc_dev(&pnpacpi_protocol, num, acpi_device_hid(device));
--
^ permalink raw reply [flat|nested] 52+ messages in thread
* [patch 28/46] m68k: Fix off-by-one in m68k_setup_user_interrupt()
2008-11-17 7:13 ` [patch 00/46] 2.6.27.7-stable review Greg KH
` (26 preceding siblings ...)
2008-11-17 7:15 ` [patch 27/46] ACPI : Load device driver according to the status of acpi device Greg KH
@ 2008-11-17 7:16 ` Greg KH
2008-11-17 7:16 ` [patch 29/46] SCSI: qla2xxx: Return a FAILED status when abort mailbox-command fails Greg KH
` (17 subsequent siblings)
45 siblings, 0 replies; 52+ messages in thread
From: Greg KH @ 2008-11-17 7:16 UTC (permalink / raw)
To: linux-kernel, stable
Cc: Justin Forbes, Zwane Mwaikambo, Theodore Ts'o, Randy Dunlap,
Dave Jones, Chuck Wolber, Chris Wedgwood, Michael Krufky,
Chuck Ebbert, Domenico Andreoli, Willy Tarreau,
Rodrigo Rubira Branco, Jake Edge, Eugene Teo, torvalds, akpm,
alan, Geert Uytterhoeven, Greg Kroah-Hartman
[-- Attachment #1: m68k-fix-off-by-one-in-m68k_setup_user_interrupt.patch --]
[-- Type: text/plain, Size: 1137 bytes --]
2.6.27-stable review patch. If anyone has any objections, please let us know.
------------------
From: Geert Uytterhoeven <geert@linux-m68k.org>
commit 27123cbc264de89ce6951b1b4c84c223eb0f1702 upstream.
commit 69961c375288bdab7604e0bb1c8d22999bb8a347 ("[PATCH] m68k/Atari:
Interrupt updates") added a BUG_ON() with an incorrect upper bound
comparison, which causes an early crash on VME boards, where IRQ_USER is
8, cnt is 192 and NR_IRQS is 200.
Reported-by: Stephen N Chivers <schivers@csc.com.au>
Tested-by: Kars de Jong <jongk@linux-m68k.org>
Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
---
arch/m68k/kernel/ints.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
--- a/arch/m68k/kernel/ints.c
+++ b/arch/m68k/kernel/ints.c
@@ -133,7 +133,7 @@ void __init m68k_setup_user_interrupt(un
{
int i;
- BUG_ON(IRQ_USER + cnt >= NR_IRQS);
+ BUG_ON(IRQ_USER + cnt > NR_IRQS);
m68k_first_user_vec = vec;
for (i = 0; i < cnt; i++)
irq_controller[IRQ_USER + i] = &user_irq_controller;
--
^ permalink raw reply [flat|nested] 52+ messages in thread
* [patch 29/46] SCSI: qla2xxx: Return a FAILED status when abort mailbox-command fails.
2008-11-17 7:13 ` [patch 00/46] 2.6.27.7-stable review Greg KH
` (27 preceding siblings ...)
2008-11-17 7:16 ` [patch 28/46] m68k: Fix off-by-one in m68k_setup_user_interrupt() Greg KH
@ 2008-11-17 7:16 ` Greg KH
2008-11-17 7:16 ` [patch 30/46] SCSI: qla2xxx: Do not honour max_vports from firmware for 2G ISPs and below Greg KH
` (16 subsequent siblings)
45 siblings, 0 replies; 52+ messages in thread
From: Greg KH @ 2008-11-17 7:16 UTC (permalink / raw)
To: linux-kernel, stable
Cc: Justin Forbes, Zwane Mwaikambo, Theodore Ts'o, Randy Dunlap,
Dave Jones, Chuck Wolber, Chris Wedgwood, Michael Krufky,
Chuck Ebbert, Domenico Andreoli, Willy Tarreau,
Rodrigo Rubira Branco, Jake Edge, Eugene Teo, torvalds, akpm,
alan, Andrew Vasquez, James Bottomley, Greg Kroah-Hartman
[-- Attachment #1: scsi-qla2xxx-return-a-failed-status-when-abort-mailbox-command-fails.patch --]
[-- Type: text/plain, Size: 1415 bytes --]
2.6.27-stable review patch. If anyone has any objections, please let us know.
------------------
From: Michael Reed <mdr@sgi.com>
commit 5bff55db3dc4d659f46b4d2fce2f61c1964c2762 upstream.
Mike Reed noted
(https://bugzilla.novell.com/show_bug.cgi?id=421330) that the
driver was incorrectly returning a SUCCESS status if the driver's
request to the firmware to abort a command failed. By doing so,
the mid-layer believed, incorrectly, that the command has
completed and has been returned (ultimately clearing
scsi_cmnd.request_buffer) yet the driver still has the command.
What should correctly happen is a mid-layer escalation
(device-reset, etc.) of recovery during which the driver will
eventually return the outstanding commands to the mid-layer.
Signed-off-by: Andrew Vasquez <andrew.vasquez@qlogic.com>
Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
---
drivers/scsi/qla2xxx/qla_os.c | 1 +
1 file changed, 1 insertion(+)
--- a/drivers/scsi/qla2xxx/qla_os.c
+++ b/drivers/scsi/qla2xxx/qla_os.c
@@ -730,6 +730,7 @@ qla2xxx_eh_abort(struct scsi_cmnd *cmd)
if (ha->isp_ops->abort_command(ha, sp)) {
DEBUG2(printk("%s(%ld): abort_command "
"mbx failed.\n", __func__, ha->host_no));
+ ret = FAILED;
} else {
DEBUG3(printk("%s(%ld): abort_command "
"mbx success.\n", __func__, ha->host_no));
--
^ permalink raw reply [flat|nested] 52+ messages in thread
* [patch 30/46] SCSI: qla2xxx: Do not honour max_vports from firmware for 2G ISPs and below.
2008-11-17 7:13 ` [patch 00/46] 2.6.27.7-stable review Greg KH
` (28 preceding siblings ...)
2008-11-17 7:16 ` [patch 29/46] SCSI: qla2xxx: Return a FAILED status when abort mailbox-command fails Greg KH
@ 2008-11-17 7:16 ` Greg KH
2008-11-17 7:16 ` [patch 31/46] SCSI: qla2xxx: Correct Atmel flash-part handling Greg KH
` (15 subsequent siblings)
45 siblings, 0 replies; 52+ messages in thread
From: Greg KH @ 2008-11-17 7:16 UTC (permalink / raw)
To: linux-kernel, stable
Cc: Justin Forbes, Zwane Mwaikambo, Theodore Ts'o, Randy Dunlap,
Dave Jones, Chuck Wolber, Chris Wedgwood, Michael Krufky,
Chuck Ebbert, Domenico Andreoli, Willy Tarreau,
Rodrigo Rubira Branco, Jake Edge, Eugene Teo, torvalds, akpm,
alan, Andrew Vasquez, James Bottomley, Greg Kroah-Hartman
[-- Attachment #1: scsi-qla2xxx-do-not-honour-max_vports-from-firmware-for-2g-isps-and-below.patch --]
[-- Type: text/plain, Size: 1576 bytes --]
2.6.27-stable review patch. If anyone has any objections, please let us know.
------------------
From: Shyam Sundar <shyam.sundar@qlogic.com>
commit 680d7db88ace53c673e1c437c9b6abcc053e8d6f upstream.
For 23XX ISPs, max_vports may return an invalid value.
Do not honour it.
Signed-off-by: Andrew Vasquez <andrew.vasquez@qlogic.com>
Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
---
drivers/scsi/qla2xxx/qla_init.c | 2 +-
drivers/scsi/qla2xxx/qla_mbx.c | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
--- a/drivers/scsi/qla2xxx/qla_init.c
+++ b/drivers/scsi/qla2xxx/qla_init.c
@@ -974,7 +974,6 @@ qla2x00_setup_chip(scsi_qla_host_t *ha)
&ha->fw_minor_version,
&ha->fw_subminor_version,
&ha->fw_attributes, &ha->fw_memory_size);
- qla2x00_resize_request_q(ha);
ha->flags.npiv_supported = 0;
if ((IS_QLA24XX(ha) || IS_QLA25XX(ha) ||
IS_QLA84XX(ha)) &&
@@ -986,6 +985,7 @@ qla2x00_setup_chip(scsi_qla_host_t *ha)
ha->max_npiv_vports =
MIN_MULTI_ID_FABRIC - 1;
}
+ qla2x00_resize_request_q(ha);
if (ql2xallocfwdump)
qla2x00_alloc_fw_dump(ha);
--- a/drivers/scsi/qla2xxx/qla_mbx.c
+++ b/drivers/scsi/qla2xxx/qla_mbx.c
@@ -1964,7 +1964,7 @@ qla2x00_get_resource_cnts(scsi_qla_host_
*cur_iocb_cnt = mcp->mb[7];
if (orig_iocb_cnt)
*orig_iocb_cnt = mcp->mb[10];
- if (max_npiv_vports)
+ if (ha->flags.npiv_supported && max_npiv_vports)
*max_npiv_vports = mcp->mb[11];
}
--
^ permalink raw reply [flat|nested] 52+ messages in thread
* [patch 31/46] SCSI: qla2xxx: Correct Atmel flash-part handling.
2008-11-17 7:13 ` [patch 00/46] 2.6.27.7-stable review Greg KH
` (29 preceding siblings ...)
2008-11-17 7:16 ` [patch 30/46] SCSI: qla2xxx: Do not honour max_vports from firmware for 2G ISPs and below Greg KH
@ 2008-11-17 7:16 ` Greg KH
2008-11-17 7:16 ` [patch 32/46] SCSI: dpt_i2o: fix transferred data length for scsi_set_resid() Greg KH
` (14 subsequent siblings)
45 siblings, 0 replies; 52+ messages in thread
From: Greg KH @ 2008-11-17 7:16 UTC (permalink / raw)
To: linux-kernel, stable
Cc: Justin Forbes, Zwane Mwaikambo, Theodore Ts'o, Randy Dunlap,
Dave Jones, Chuck Wolber, Chris Wedgwood, Michael Krufky,
Chuck Ebbert, Domenico Andreoli, Willy Tarreau,
Rodrigo Rubira Branco, Jake Edge, Eugene Teo, torvalds, akpm,
alan, Lalit Chandivade, Andrew Vasquez, James Bottomley,
Greg Kroah-Hartman
[-- Attachment #1: scsi-qla2xxx-correct-atmel-flash-part-handling.patch --]
[-- Type: text/plain, Size: 3073 bytes --]
2.6.27-stable review patch. If anyone has any objections, please let us know.
------------------
From: Lalit Chandivade <lalit.chandivade@qlogic.com>
commit 821b3996001508e872582dcafc7575021f122728 upstream.
Use correct block size (4K) for erase command 0x20 for Atmel
Flash. Use dword addresses for determining sector boundary.
Signed-off-by: Lalit Chandivade <lalit.chandivade@qlogic.com>
Signed-off-by: Andrew Vasquez <andrew.vasquez@qlogic.com>
Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
---
drivers/scsi/qla2xxx/qla_def.h | 1 -
drivers/scsi/qla2xxx/qla_sup.c | 19 +++++++------------
2 files changed, 7 insertions(+), 13 deletions(-)
--- a/drivers/scsi/qla2xxx/qla_def.h
+++ b/drivers/scsi/qla2xxx/qla_def.h
@@ -2546,7 +2546,6 @@ typedef struct scsi_qla_host {
uint8_t fcode_revision[16];
uint32_t fw_revision[4];
- uint16_t fdt_odd_index;
uint32_t fdt_wrt_disable;
uint32_t fdt_erase_cmd;
uint32_t fdt_block_size;
--- a/drivers/scsi/qla2xxx/qla_sup.c
+++ b/drivers/scsi/qla2xxx/qla_sup.c
@@ -546,6 +546,7 @@ qla24xx_get_flash_manufacturer(scsi_qla_
void
qla2xxx_get_flash_info(scsi_qla_host_t *ha)
{
+#define FLASH_BLK_SIZE_4K 0x1000
#define FLASH_BLK_SIZE_32K 0x8000
#define FLASH_BLK_SIZE_64K 0x10000
uint16_t cnt, chksum;
@@ -577,7 +578,6 @@ qla2xxx_get_flash_info(scsi_qla_host_t *
goto no_flash_data;
}
- ha->fdt_odd_index = le16_to_cpu(fdt->man_id) == 0x1f;
ha->fdt_wrt_disable = fdt->wrt_disable_bits;
ha->fdt_erase_cmd = flash_conf_to_access_addr(0x0300 | fdt->erase_cmd);
ha->fdt_block_size = le32_to_cpu(fdt->block_size);
@@ -590,10 +590,10 @@ qla2xxx_get_flash_info(scsi_qla_host_t *
}
DEBUG2(qla_printk(KERN_DEBUG, ha, "Flash[FDT]: (0x%x/0x%x) erase=0x%x "
- "pro=%x upro=%x idx=%d wrtd=0x%x blk=0x%x.\n",
+ "pro=%x upro=%x wrtd=0x%x blk=0x%x.\n",
le16_to_cpu(fdt->man_id), le16_to_cpu(fdt->id), ha->fdt_erase_cmd,
ha->fdt_protect_sec_cmd, ha->fdt_unprotect_sec_cmd,
- ha->fdt_odd_index, ha->fdt_wrt_disable, ha->fdt_block_size));
+ ha->fdt_wrt_disable, ha->fdt_block_size));
return;
no_flash_data:
@@ -614,8 +614,7 @@ no_flash_data:
ha->fdt_block_size = FLASH_BLK_SIZE_64K;
break;
case 0x1f: /* Atmel 26DF081A. */
- ha->fdt_odd_index = 1;
- ha->fdt_block_size = FLASH_BLK_SIZE_64K;
+ ha->fdt_block_size = FLASH_BLK_SIZE_4K;
ha->fdt_erase_cmd = flash_conf_to_access_addr(0x0320);
ha->fdt_unprotect_sec_cmd = flash_conf_to_access_addr(0x0339);
ha->fdt_protect_sec_cmd = flash_conf_to_access_addr(0x0336);
@@ -710,13 +709,9 @@ qla24xx_write_flash_data(scsi_qla_host_t
qla24xx_unprotect_flash(ha);
for (liter = 0; liter < dwords; liter++, faddr++, dwptr++) {
- if (ha->fdt_odd_index) {
- findex = faddr << 2;
- fdata = findex & sec_mask;
- } else {
- findex = faddr;
- fdata = (findex & sec_mask) << 2;
- }
+
+ findex = faddr;
+ fdata = (findex & sec_mask) << 2;
/* Are we at the beginning of a sector? */
if ((findex & rest_addr) == 0) {
--
^ permalink raw reply [flat|nested] 52+ messages in thread
* [patch 32/46] SCSI: dpt_i2o: fix transferred data length for scsi_set_resid()
2008-11-17 7:13 ` [patch 00/46] 2.6.27.7-stable review Greg KH
` (30 preceding siblings ...)
2008-11-17 7:16 ` [patch 31/46] SCSI: qla2xxx: Correct Atmel flash-part handling Greg KH
@ 2008-11-17 7:16 ` Greg KH
2008-11-17 7:16 ` [patch 33/46] dm raid1: flush workqueue before destruction Greg KH
` (13 subsequent siblings)
45 siblings, 0 replies; 52+ messages in thread
From: Greg KH @ 2008-11-17 7:16 UTC (permalink / raw)
To: linux-kernel, stable
Cc: Justin Forbes, Zwane Mwaikambo, Theodore Ts'o, Randy Dunlap,
Dave Jones, Chuck Wolber, Chris Wedgwood, Michael Krufky,
Chuck Ebbert, Domenico Andreoli, Willy Tarreau,
Rodrigo Rubira Branco, Jake Edge, Eugene Teo, torvalds, akpm,
alan, Miquel van Smoorenburg, James Bottomley, Greg Kroah-Hartman
[-- Attachment #1: scsi-dpt_i2o-fix-transferred-data-length-for-scsi_set_resid.patch --]
[-- Type: text/plain, Size: 1823 bytes --]
2.6.27-stable review patch. If anyone has any objections, please let us know.
------------------
From: Miquel van Smoorenburg <mikevs@xs4all.net>
commit df81d2371aeca0f7474f197a3090830899016e39 upstream.
dpt_i2o.c::adpt_i2o_to_scsi() reads the value at (reply+5) which
should contain the length in bytes of the transferred data. This
would be correct if reply was a u32 *. However it is a void * here,
so we need to read the value at (reply+20) instead.
The value at (reply+5) is usually 0xff0000, which is apparently
'large enough' and didn't cause any trouble until 2.6.27 where
commit 427e59f09fdba387547106de7bab980b7fff77be
Author: James Bottomley <James.Bottomley@HansenPartnership.com>
Date: Sat Mar 8 18:24:17 2008 -0600
[SCSI] make use of the residue value
caused this to become visible through e.g. iostat -x .
Signed-off-by: Miquel van Smoorenburg <mikevs@xs4all.net>
Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
---
drivers/scsi/dpt_i2o.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
--- a/drivers/scsi/dpt_i2o.c
+++ b/drivers/scsi/dpt_i2o.c
@@ -2445,7 +2445,7 @@ static s32 adpt_i2o_to_scsi(void __iomem
hba_status = detailed_status >> 8;
// calculate resid for sg
- scsi_set_resid(cmd, scsi_bufflen(cmd) - readl(reply+5));
+ scsi_set_resid(cmd, scsi_bufflen(cmd) - readl(reply+20));
pHba = (adpt_hba*) cmd->device->host->hostdata[0];
@@ -2456,7 +2456,7 @@ static s32 adpt_i2o_to_scsi(void __iomem
case I2O_SCSI_DSC_SUCCESS:
cmd->result = (DID_OK << 16);
// handle underflow
- if(readl(reply+5) < cmd->underflow ) {
+ if (readl(reply+20) < cmd->underflow) {
cmd->result = (DID_ERROR <<16);
printk(KERN_WARNING"%s: SCSI CMD underflow\n",pHba->name);
}
--
^ permalink raw reply [flat|nested] 52+ messages in thread
* [patch 33/46] dm raid1: flush workqueue before destruction
2008-11-17 7:13 ` [patch 00/46] 2.6.27.7-stable review Greg KH
` (31 preceding siblings ...)
2008-11-17 7:16 ` [patch 32/46] SCSI: dpt_i2o: fix transferred data length for scsi_set_resid() Greg KH
@ 2008-11-17 7:16 ` Greg KH
2008-11-17 7:16 ` [patch 34/46] USB: remove optional bus bindings in isp1760, fixing runtime warning Greg KH
` (12 subsequent siblings)
45 siblings, 0 replies; 52+ messages in thread
From: Greg KH @ 2008-11-17 7:16 UTC (permalink / raw)
To: linux-kernel, stable
Cc: Justin Forbes, Zwane Mwaikambo, Theodore Ts'o, Randy Dunlap,
Dave Jones, Chuck Wolber, Chris Wedgwood, Michael Krufky,
Chuck Ebbert, Domenico Andreoli, Willy Tarreau,
Rodrigo Rubira Branco, Jake Edge, Eugene Teo, torvalds, akpm,
alan, Mikulas Patocka, Alasdair G Kergon, Greg Kroah-Hartman
[-- Attachment #1: dm-raid1-flush-workqueue-before-destruction.patch --]
[-- Type: text/plain, Size: 919 bytes --]
2.6.27-stable review patch. If anyone has any objections, please let us know.
------------------
From: Mikulas Patocka <mpatocka@redhat.com>
commit 18776c7316545482a02bfaa2629a2aa1afc48357 upstream.
We queue work on keventd queue --- so this queue must be flushed in the
destructor. Otherwise, keventd could access mirror_set after it was freed.
Signed-off-by: Mikulas Patocka <mpatocka@redhat.com>
Signed-off-by: Alasdair G Kergon <agk@redhat.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
---
drivers/md/dm-raid1.c | 1 +
1 file changed, 1 insertion(+)
--- a/drivers/md/dm-raid1.c
+++ b/drivers/md/dm-raid1.c
@@ -1598,6 +1598,7 @@ static void mirror_dtr(struct dm_target
del_timer_sync(&ms->timer);
flush_workqueue(ms->kmirrord_wq);
+ flush_scheduled_work();
dm_kcopyd_client_destroy(ms->kcopyd_client);
destroy_workqueue(ms->kmirrord_wq);
free_context(ms, ti, ms->nr_mirrors);
--
^ permalink raw reply [flat|nested] 52+ messages in thread
* [patch 34/46] USB: remove optional bus bindings in isp1760, fixing runtime warning
2008-11-17 7:13 ` [patch 00/46] 2.6.27.7-stable review Greg KH
` (32 preceding siblings ...)
2008-11-17 7:16 ` [patch 33/46] dm raid1: flush workqueue before destruction Greg KH
@ 2008-11-17 7:16 ` Greg KH
2008-11-17 7:16 ` [patch 35/46] USB: gadget: cdc-acm deadlock fix Greg KH
` (11 subsequent siblings)
45 siblings, 0 replies; 52+ messages in thread
From: Greg KH @ 2008-11-17 7:16 UTC (permalink / raw)
To: linux-kernel, stable
Cc: Justin Forbes, Zwane Mwaikambo, Theodore Ts'o, Randy Dunlap,
Dave Jones, Chuck Wolber, Chris Wedgwood, Michael Krufky,
Chuck Ebbert, Domenico Andreoli, Willy Tarreau,
Rodrigo Rubira Branco, Jake Edge, Eugene Teo, torvalds, akpm,
alan, Sebastian Andrzej Siewior, Greg Kroah-Hartman
[-- Attachment #1: usb-remove-optional-bus-bindings-in-isp1760-fixing-runtime-warning.patch --]
[-- Type: text/plain, Size: 4710 bytes --]
2.6.27-stable review patch. If anyone has any objections, please let us know.
------------------
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
commit ff30bf1ca4b548c0928dae6bfce89458b95e5bf4 upstream.
Roland Reported the following:
| kmem_cache_create: duplicate cache isp1760_qtd
| Pid: 461, comm: modprobe Tainted: G W 2.6.28-rc2-git3-default #4
| Call Trace:
| [<c017540e>] kmem_cache_create+0xc9/0x3a3
| [<c0159a8d>] free_pages_bulk+0x16c/0x1c9
| [<f165c05f>] isp1760_init+0x0/0xb [isp1760]
| [<f165c018>] init_kmem_once+0x18/0x5f [isp1760]
| [<f165c064>] isp1760_init+0x5/0xb [isp1760]
| [<c010113d>] _stext+0x4d/0x148
| [<c0142936>] load_module+0x12cd/0x142e
| [<c01743c4>] kmem_cache_destroy+0x0/0xd7
| [<c0142b1e>] sys_init_module+0x87/0x176
| [<c01039eb>] sysenter_do_call+0x12/0x2f
The reason, is that ret is initialized with ENODEV instead of 0 _or_
the kmem cache is not freed in error case with no bus binding.
The difference between OF+PCI and OF only is
| 15148 804 32 15984 3e70 isp1760-of-pci.o
| 13748 676 8 14432 3860 isp1760-of.o
about 1.5 KiB.
Until there is a checkbox where the user *must* select atleast one item,
and may select multiple entries I don't make it selectable anymore.
Having a driver which can't be used under any circumstances is broken
anyway and I've seen distros shipping it that way.
Reported-by: Roland Kletzing <devzero@web.de>
Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
---
drivers/usb/host/Kconfig | 23 ++++++-----------------
drivers/usb/host/isp1760-if.c | 22 +++++++++++-----------
2 files changed, 17 insertions(+), 28 deletions(-)
--- a/drivers/usb/host/isp1760-if.c
+++ b/drivers/usb/host/isp1760-if.c
@@ -14,16 +14,16 @@
#include "../core/hcd.h"
#include "isp1760-hcd.h"
-#ifdef CONFIG_USB_ISP1760_OF
+#ifdef CONFIG_PPC_OF
#include <linux/of.h>
#include <linux/of_platform.h>
#endif
-#ifdef CONFIG_USB_ISP1760_PCI
+#ifdef CONFIG_PCI
#include <linux/pci.h>
#endif
-#ifdef CONFIG_USB_ISP1760_OF
+#ifdef CONFIG_PPC_OF
static int of_isp1760_probe(struct of_device *dev,
const struct of_device_id *match)
{
@@ -128,7 +128,7 @@ static struct of_platform_driver isp1760
};
#endif
-#ifdef CONFIG_USB_ISP1760_PCI
+#ifdef CONFIG_PCI
static u32 nxp_pci_io_base;
static u32 iolength;
static u32 pci_mem_phy0;
@@ -287,28 +287,28 @@ static struct pci_driver isp1761_pci_dri
static int __init isp1760_init(void)
{
- int ret = -ENODEV;
+ int ret;
init_kmem_once();
-#ifdef CONFIG_USB_ISP1760_OF
+#ifdef CONFIG_PPC_OF
ret = of_register_platform_driver(&isp1760_of_driver);
if (ret) {
deinit_kmem_cache();
return ret;
}
#endif
-#ifdef CONFIG_USB_ISP1760_PCI
+#ifdef CONFIG_PCI
ret = pci_register_driver(&isp1761_pci_driver);
if (ret)
goto unreg_of;
#endif
return ret;
-#ifdef CONFIG_USB_ISP1760_PCI
+#ifdef CONFIG_PCI
unreg_of:
#endif
-#ifdef CONFIG_USB_ISP1760_OF
+#ifdef CONFIG_PPC_OF
of_unregister_platform_driver(&isp1760_of_driver);
#endif
deinit_kmem_cache();
@@ -318,10 +318,10 @@ module_init(isp1760_init);
static void __exit isp1760_exit(void)
{
-#ifdef CONFIG_USB_ISP1760_OF
+#ifdef CONFIG_PPC_OF
of_unregister_platform_driver(&isp1760_of_driver);
#endif
-#ifdef CONFIG_USB_ISP1760_PCI
+#ifdef CONFIG_PCI
pci_unregister_driver(&isp1761_pci_driver);
#endif
deinit_kmem_cache();
--- a/drivers/usb/host/Kconfig
+++ b/drivers/usb/host/Kconfig
@@ -110,29 +110,18 @@ config USB_ISP116X_HCD
config USB_ISP1760_HCD
tristate "ISP 1760 HCD support"
- depends on USB && EXPERIMENTAL
+ depends on USB && EXPERIMENTAL && (PCI || PPC_OF)
---help---
The ISP1760 chip is a USB 2.0 host controller.
This driver does not support isochronous transfers or OTG.
+ This USB controller is usually attached to a non-DMA-Master
+ capable bus. NXP's eval kit brings this chip on PCI card
+ where the chip itself is behind a PLB to simulate such
+ a bus.
To compile this driver as a module, choose M here: the
- module will be called isp1760-hcd.
-
-config USB_ISP1760_PCI
- bool "Support for the PCI bus"
- depends on USB_ISP1760_HCD && PCI
- ---help---
- Enables support for the device present on the PCI bus.
- This should only be required if you happen to have the eval kit from
- NXP and you are going to test it.
-
-config USB_ISP1760_OF
- bool "Support for the OF platform bus"
- depends on USB_ISP1760_HCD && PPC_OF
- ---help---
- Enables support for the device present on the PowerPC
- OpenFirmware platform bus.
+ module will be called isp1760.
config USB_OHCI_HCD
tristate "OHCI HCD support"
--
^ permalink raw reply [flat|nested] 52+ messages in thread
* [patch 35/46] USB: gadget: cdc-acm deadlock fix
2008-11-17 7:13 ` [patch 00/46] 2.6.27.7-stable review Greg KH
` (33 preceding siblings ...)
2008-11-17 7:16 ` [patch 34/46] USB: remove optional bus bindings in isp1760, fixing runtime warning Greg KH
@ 2008-11-17 7:16 ` Greg KH
2008-11-17 7:16 ` [patch 36/46] USB: unusual_devs entry for Argosy USB mass-storage interface Greg KH
` (10 subsequent siblings)
45 siblings, 0 replies; 52+ messages in thread
From: Greg KH @ 2008-11-17 7:16 UTC (permalink / raw)
To: linux-kernel, stable
Cc: Justin Forbes, Zwane Mwaikambo, Theodore Ts'o, Randy Dunlap,
Dave Jones, Chuck Wolber, Chris Wedgwood, Michael Krufky,
Chuck Ebbert, Domenico Andreoli, Willy Tarreau,
Rodrigo Rubira Branco, Jake Edge, Eugene Teo, torvalds, akpm,
alan, David Brownell, Greg Kroah-Hartman
[-- Attachment #1: usb-gadget-cdc-acm-deadlock-fix.patch --]
[-- Type: text/plain, Size: 1474 bytes --]
2.6.27-stable review patch. If anyone has any objections, please let us know.
------------------
From: David Brownell <dbrownell@users.sourceforge.net>
commit e50ae572b33646656fa7037541613834dcadedfb upstream.
This fixes a deadlock appearing with some USB peripheral drivers
when running CDC ACM gadget code.
The newish (2.6.27) CDC ACM event notification mechanism sends
messages (IN to the host) which are short enough to fit in most
FIFOs. That means that with some peripheral controller drivers
(evidently not the ones used to verify the notification code!!)
the completion callback can be issued before queue() returns.
The deadlock would come because the completion callback and the
event-issuing code shared a spinlock. Fix is trivial: drop
that lock while queueing the message.
Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
---
drivers/usb/gadget/f_acm.c | 4 ++++
1 file changed, 4 insertions(+)
--- a/drivers/usb/gadget/f_acm.c
+++ b/drivers/usb/gadget/f_acm.c
@@ -463,7 +463,11 @@ static int acm_cdc_notify(struct f_acm *
notify->wLength = cpu_to_le16(length);
memcpy(buf, data, length);
+ /* ep_queue() can complete immediately if it fills the fifo... */
+ spin_unlock(&acm->lock);
status = usb_ep_queue(ep, req, GFP_ATOMIC);
+ spin_lock(&acm->lock);
+
if (status < 0) {
ERROR(acm->port.func.config->cdev,
"acm ttyGS%d can't notify serial state, %d\n",
--
^ permalink raw reply [flat|nested] 52+ messages in thread
* [patch 36/46] USB: unusual_devs entry for Argosy USB mass-storage interface
2008-11-17 7:13 ` [patch 00/46] 2.6.27.7-stable review Greg KH
` (34 preceding siblings ...)
2008-11-17 7:16 ` [patch 35/46] USB: gadget: cdc-acm deadlock fix Greg KH
@ 2008-11-17 7:16 ` Greg KH
2008-11-17 7:16 ` [patch 37/46] USB: Fix PS3 USB shutdown problems Greg KH
` (9 subsequent siblings)
45 siblings, 0 replies; 52+ messages in thread
From: Greg KH @ 2008-11-17 7:16 UTC (permalink / raw)
To: linux-kernel, stable
Cc: Justin Forbes, Zwane Mwaikambo, Theodore Ts'o, Randy Dunlap,
Dave Jones, Chuck Wolber, Chris Wedgwood, Michael Krufky,
Chuck Ebbert, Domenico Andreoli, Willy Tarreau,
Rodrigo Rubira Branco, Jake Edge, Eugene Teo, torvalds, akpm,
alan, Alan Stern, Greg Kroah-Hartman
[-- Attachment #1: usb-unusual_devs-entry-for-argosy-usb-mass-storage-interface.patch --]
[-- Type: text/plain, Size: 1185 bytes --]
2.6.27-stable review patch. If anyone has any objections, please let us know.
------------------
From: Alan Stern <stern@rowland.harvard.edu>
commit 8010e06cc90367b4d3fba3b0ec3ced32360ac890 upstream.
This patch (as1162) adds an unusual_devs entry for Argosy's USB-IDE
interface. This fixes Bugzilla #11843.
Signed-off-by: Alan Stern <stern@rowland.harvard.edu>
Tested-by: Luciano Rocha <luciano@eurotux.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
---
drivers/usb/storage/unusual_devs.h | 7 +++++++
1 file changed, 7 insertions(+)
--- a/drivers/usb/storage/unusual_devs.h
+++ b/drivers/usb/storage/unusual_devs.h
@@ -1251,6 +1251,13 @@ UNUSUAL_DEV( 0x0839, 0x000a, 0x0001, 0x0
US_SC_DEVICE, US_PR_DEVICE, NULL,
US_FL_FIX_INQUIRY),
+/* Reported by Luciano Rocha <luciano@eurotux.com> */
+UNUSUAL_DEV( 0x0840, 0x0082, 0x0001, 0x0001,
+ "Argosy",
+ "Storage",
+ US_SC_DEVICE, US_PR_DEVICE, NULL,
+ US_FL_FIX_CAPACITY),
+
/* Entry and supporting patch by Theodore Kilgore <kilgota@auburn.edu>.
* Flag will support Bulk devices which use a standards-violating 32-byte
* Command Block Wrapper. Here, the "DC2MEGA" cameras (several brands) with
--
^ permalink raw reply [flat|nested] 52+ messages in thread
* [patch 37/46] USB: Fix PS3 USB shutdown problems
2008-11-17 7:13 ` [patch 00/46] 2.6.27.7-stable review Greg KH
` (35 preceding siblings ...)
2008-11-17 7:16 ` [patch 36/46] USB: unusual_devs entry for Argosy USB mass-storage interface Greg KH
@ 2008-11-17 7:16 ` Greg KH
2008-11-17 7:16 ` [patch 38/46] USB: cdc-acm.c: fix recursive lock in acm_start_wb error path Greg KH
` (8 subsequent siblings)
45 siblings, 0 replies; 52+ messages in thread
From: Greg KH @ 2008-11-17 7:16 UTC (permalink / raw)
To: linux-kernel, stable
Cc: Justin Forbes, Zwane Mwaikambo, Theodore Ts'o, Randy Dunlap,
Dave Jones, Chuck Wolber, Chris Wedgwood, Michael Krufky,
Chuck Ebbert, Domenico Andreoli, Willy Tarreau,
Rodrigo Rubira Branco, Jake Edge, Eugene Teo, torvalds, akpm,
alan, Geoff Levand, Greg Kroah-Hartman
[-- Attachment #1: usb-fix-ps3-usb-shutdown-problems.patch --]
[-- Type: text/plain, Size: 1649 bytes --]
2.6.27-stable review patch. If anyone has any objections, please let us know.
------------------
From: Geoff Levand <geoffrey.levand@am.sony.com>
commit ddcb01ff9bf49c4dbbb058423559f7bc90b89374 upstream.
Add ehci_shutdown() or ohci_shutdown() calls to the USB
PS3 bus glue. ehci_shutdown() and ohci_shutdown() do some
controller specific cleanups not done by usb_remove_hcd().
Fixes errors on shutdown or reboot similar to these:
ps3-ehci-driver sb_07: HC died; cleaning up
irq 51: nobody cared (try booting with the "irqpoll" option)
Related bugzilla reports:
http://bugzilla.kernel.org/show_bug.cgi?id=11819
http://bugzilla.terrasoftsolutions.com/show_bug.cgi?id=317
Signed-off-by: Geoff Levand <geoffrey.levand@am.sony.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
---
drivers/usb/host/ehci-ps3.c | 1 +
drivers/usb/host/ohci-ps3.c | 3 ++-
2 files changed, 3 insertions(+), 1 deletion(-)
--- a/drivers/usb/host/ehci-ps3.c
+++ b/drivers/usb/host/ehci-ps3.c
@@ -205,6 +205,7 @@ static int ps3_ehci_remove(struct ps3_sy
tmp = hcd->irq;
+ ehci_shutdown(hcd);
usb_remove_hcd(hcd);
ps3_system_bus_set_driver_data(dev, NULL);
--- a/drivers/usb/host/ohci-ps3.c
+++ b/drivers/usb/host/ohci-ps3.c
@@ -192,7 +192,7 @@ fail_start:
return result;
}
-static int ps3_ohci_remove (struct ps3_system_bus_device *dev)
+static int ps3_ohci_remove(struct ps3_system_bus_device *dev)
{
unsigned int tmp;
struct usb_hcd *hcd =
@@ -205,6 +205,7 @@ static int ps3_ohci_remove (struct ps3_s
tmp = hcd->irq;
+ ohci_shutdown(hcd);
usb_remove_hcd(hcd);
ps3_system_bus_set_driver_data(dev, NULL);
--
^ permalink raw reply [flat|nested] 52+ messages in thread
* [patch 38/46] USB: cdc-acm.c: fix recursive lock in acm_start_wb error path
2008-11-17 7:13 ` [patch 00/46] 2.6.27.7-stable review Greg KH
` (36 preceding siblings ...)
2008-11-17 7:16 ` [patch 37/46] USB: Fix PS3 USB shutdown problems Greg KH
@ 2008-11-17 7:16 ` Greg KH
2008-11-17 7:16 ` [patch 39/46] USB: EHCI: fix divide-by-zero bug Greg KH
` (7 subsequent siblings)
45 siblings, 0 replies; 52+ messages in thread
From: Greg KH @ 2008-11-17 7:16 UTC (permalink / raw)
To: linux-kernel, stable
Cc: Justin Forbes, Zwane Mwaikambo, Theodore Ts'o, Randy Dunlap,
Dave Jones, Chuck Wolber, Chris Wedgwood, Michael Krufky,
Chuck Ebbert, Domenico Andreoli, Willy Tarreau,
Rodrigo Rubira Branco, Jake Edge, Eugene Teo, torvalds, akpm,
alan, Brandon Philips, Oliver Neukum, Greg Kroah-Hartman
[-- Attachment #1: usb-cdc-acm.c-fix-recursive-lock-in-acm_start_wb-error-path.patch --]
[-- Type: text/plain, Size: 2998 bytes --]
2.6.27-stable review patch. If anyone has any objections, please let us know.
------------------
From: Brandon Philips <brandon@ifup.org>
commit ad0b65efd12d020b046cde8d6f474e37bb98dd73 upstream.
Fixes an obvious bug in cdc-acm by avoiding a recursive lock on
acm_start_wb()'s error path. Should apply towards 2.6.27 stable and
2.6.28.
=============================================
[ INFO: possible recursive locking detected ]
2.6.27-2-pae #109
---------------------------------------------
python/31449 is trying to acquire lock:
(&acm->write_lock){++..}, at: [<f89a0348>] acm_start_wb+0x5c/0x7b [cdc_acm]
but task is already holding lock:
(&acm->write_lock){++..}, at: [<f89a04fb>] acm_tty_write+0xe1/0x167 [cdc_acm]
other info that might help us debug this:
2 locks held by python/31449:
#0: (&tty->atomic_write_lock){--..}, at: [<c0260fae>] tty_write_lock+0x14/0x3b
#1: (&acm->write_lock){++..}, at: [<f89a04fb>] acm_tty_write+0xe1/0x167 [cdc_acm]
stack backtrace:
Pid: 31449, comm: python Not tainted 2.6.27-2-pae #109
[<c030f42f>] ? printk+0xf/0x18
[<c0149f33>] __lock_acquire+0xc7b/0x1316
[<c014a63e>] lock_acquire+0x70/0x97
[<f89a0348>] ? acm_start_wb+0x5c/0x7b [cdc_acm]
[<c0312109>] _spin_lock_irqsave+0x37/0x47
[<f89a0348>] ? acm_start_wb+0x5c/0x7b [cdc_acm]
[<f89a0348>] acm_start_wb+0x5c/0x7b [cdc_acm]
[<f89a055d>] acm_tty_write+0x143/0x167 [cdc_acm]
[<c0262a98>] write_chan+0x1cd/0x297
[<c012527e>] ? default_wake_function+0x0/0xd
[<c026111e>] tty_write+0x149/0x1b9
[<c02628cb>] ? write_chan+0x0/0x297
[<c01912c5>] ? rw_verify_area+0x76/0x98
[<c0260fd5>] ? tty_write+0x0/0x1b9
[<c01919ba>] vfs_write+0x8c/0x136
[<c0191afd>] sys_write+0x3b/0x60
[<c0103beb>] sysenter_do_call+0x12/0x3f
=======================
Signed-off-by: Brandon Philips <bphilips@suse.de>
Cc: Oliver Neukum <oliver@neukum.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
---
drivers/usb/class/cdc-acm.c | 9 ++++-----
1 file changed, 4 insertions(+), 5 deletions(-)
--- a/drivers/usb/class/cdc-acm.c
+++ b/drivers/usb/class/cdc-acm.c
@@ -158,16 +158,12 @@ static int acm_wb_is_avail(struct acm *a
}
/*
- * Finish write.
+ * Finish write. Caller must hold acm->write_lock
*/
static void acm_write_done(struct acm *acm, struct acm_wb *wb)
{
- unsigned long flags;
-
- spin_lock_irqsave(&acm->write_lock, flags);
wb->use = 0;
acm->transmitting--;
- spin_unlock_irqrestore(&acm->write_lock, flags);
}
/*
@@ -482,6 +478,7 @@ static void acm_write_bulk(struct urb *u
{
struct acm_wb *wb = urb->context;
struct acm *acm = wb->instance;
+ unsigned long flags;
if (verbose || urb->status
|| (urb->actual_length != urb->transfer_buffer_length))
@@ -490,7 +487,9 @@ static void acm_write_bulk(struct urb *u
urb->transfer_buffer_length,
urb->status);
+ spin_lock_irqsave(&acm->write_lock, flags);
acm_write_done(acm, wb);
+ spin_unlock_irqrestore(&acm->write_lock, flags);
if (ACM_READY(acm))
schedule_work(&acm->work);
else
--
^ permalink raw reply [flat|nested] 52+ messages in thread
* [patch 39/46] USB: EHCI: fix divide-by-zero bug
2008-11-17 7:13 ` [patch 00/46] 2.6.27.7-stable review Greg KH
` (37 preceding siblings ...)
2008-11-17 7:16 ` [patch 38/46] USB: cdc-acm.c: fix recursive lock in acm_start_wb error path Greg KH
@ 2008-11-17 7:16 ` Greg KH
2008-11-17 7:16 ` [patch 40/46] USB: EHCI: fix handling of dead controllers Greg KH
` (6 subsequent siblings)
45 siblings, 0 replies; 52+ messages in thread
From: Greg KH @ 2008-11-17 7:16 UTC (permalink / raw)
To: linux-kernel, stable
Cc: Justin Forbes, Zwane Mwaikambo, Theodore Ts'o, Randy Dunlap,
Dave Jones, Chuck Wolber, Chris Wedgwood, Michael Krufky,
Chuck Ebbert, Domenico Andreoli, Willy Tarreau,
Rodrigo Rubira Branco, Jake Edge, Eugene Teo, torvalds, akpm,
alan, Alan Stern, David Brownell, Greg Kroah-Hartman
[-- Attachment #1: usb-ehci-fix-divide-by-zero-bug.patch --]
[-- Type: text/plain, Size: 1275 bytes --]
2.6.27-stable review patch. If anyone has any objections, please let us know.
------------------
From: Alan Stern <stern@rowland.harvard.edu>
commit 372dd6e8ed924e876f3beb598721e813ad7fa323 upstream.
This patch (as1164) fixes a bug in the EHCI scheduler. The interval
value it uses is already in linear format, not logarithmically coded.
The existing code can sometimes crash the system by trying to divide
by zero.
Signed-off-by: Alan Stern <stern@rowland.harvard.edu>
Cc: David Brownell <david-b@pacbell.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
---
drivers/usb/host/ehci-sched.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
--- a/drivers/usb/host/ehci-sched.c
+++ b/drivers/usb/host/ehci-sched.c
@@ -918,7 +918,7 @@ iso_stream_init (
*/
stream->usecs = HS_USECS_ISO (maxp);
bandwidth = stream->usecs * 8;
- bandwidth /= 1 << (interval - 1);
+ bandwidth /= interval;
} else {
u32 addr;
@@ -951,7 +951,7 @@ iso_stream_init (
} else
stream->raw_mask = smask_out [hs_transfers - 1];
bandwidth = stream->usecs + stream->c_usecs;
- bandwidth /= 1 << (interval + 2);
+ bandwidth /= interval << 3;
/* stream->splits gets created from raw_mask later */
stream->address = cpu_to_hc32(ehci, addr);
--
^ permalink raw reply [flat|nested] 52+ messages in thread
* [patch 40/46] USB: EHCI: fix handling of dead controllers
2008-11-17 7:13 ` [patch 00/46] 2.6.27.7-stable review Greg KH
` (38 preceding siblings ...)
2008-11-17 7:16 ` [patch 39/46] USB: EHCI: fix divide-by-zero bug Greg KH
@ 2008-11-17 7:16 ` Greg KH
2008-11-17 7:17 ` [patch 41/46] USB: dont register endpoints for interfaces that are going away Greg KH
` (5 subsequent siblings)
45 siblings, 0 replies; 52+ messages in thread
From: Greg KH @ 2008-11-17 7:16 UTC (permalink / raw)
To: linux-kernel, stable
Cc: Justin Forbes, Zwane Mwaikambo, Theodore Ts'o, Randy Dunlap,
Dave Jones, Chuck Wolber, Chris Wedgwood, Michael Krufky,
Chuck Ebbert, Domenico Andreoli, Willy Tarreau,
Rodrigo Rubira Branco, Jake Edge, Eugene Teo, torvalds, akpm,
alan, Alan Stern, David Brownell, Greg Kroah-Hartman
[-- Attachment #1: usb-ehci-fix-handling-of-dead-controllers.patch --]
[-- Type: text/plain, Size: 2759 bytes --]
2.6.27-stable review patch. If anyone has any objections, please let us know.
------------------
From: Alan Stern <stern@rowland.harvard.edu>
commit 67b2e029743a52670d77864723b4d0d40f7733b5 upstream.
This patch (as1165) makes a few small changes in the logic used by
ehci-hcd when it encounters a controller error:
Instead of printing out the masked status, it prints the
original status as read directly from the hardware.
It doesn't check for the STS_HALT status bit before taking
action. The mere fact that the STS_FATAL bit is set means
that something bad has happened and the controller needs to
be reset. With the old code this test could never succeed
because the STS_HALT bit was masked out from the status.
I anticipate that this will prevent the occasional "irq X: nobody cared"
problem people encounter when their EHCI controllers die.
Signed-off-by: Alan Stern <stern@rowland.harvard.edu>
Cc: David Brownell <david-b@pacbell.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
---
drivers/usb/host/ehci-hcd.c | 25 ++++++++++++-------------
1 file changed, 12 insertions(+), 13 deletions(-)
--- a/drivers/usb/host/ehci-hcd.c
+++ b/drivers/usb/host/ehci-hcd.c
@@ -643,7 +643,7 @@ static int ehci_run (struct usb_hcd *hcd
static irqreturn_t ehci_irq (struct usb_hcd *hcd)
{
struct ehci_hcd *ehci = hcd_to_ehci (hcd);
- u32 status, pcd_status = 0, cmd;
+ u32 status, masked_status, pcd_status = 0, cmd;
int bh;
spin_lock (&ehci->lock);
@@ -656,14 +656,14 @@ static irqreturn_t ehci_irq (struct usb_
goto dead;
}
- status &= INTR_MASK;
- if (!status) { /* irq sharing? */
+ masked_status = status & INTR_MASK;
+ if (!masked_status) { /* irq sharing? */
spin_unlock(&ehci->lock);
return IRQ_NONE;
}
/* clear (just) interrupts */
- ehci_writel(ehci, status, &ehci->regs->status);
+ ehci_writel(ehci, masked_status, &ehci->regs->status);
cmd = ehci_readl(ehci, &ehci->regs->command);
bh = 0;
@@ -731,19 +731,18 @@ static irqreturn_t ehci_irq (struct usb_
/* PCI errors [4.15.2.4] */
if (unlikely ((status & STS_FATAL) != 0)) {
+ ehci_err(ehci, "fatal error\n");
dbg_cmd (ehci, "fatal", ehci_readl(ehci,
&ehci->regs->command));
dbg_status (ehci, "fatal", status);
- if (status & STS_HALT) {
- ehci_err (ehci, "fatal error\n");
+ ehci_halt(ehci);
dead:
- ehci_reset (ehci);
- ehci_writel(ehci, 0, &ehci->regs->configured_flag);
- /* generic layer kills/unlinks all urbs, then
- * uses ehci_stop to clean up the rest
- */
- bh = 1;
- }
+ ehci_reset(ehci);
+ ehci_writel(ehci, 0, &ehci->regs->configured_flag);
+ /* generic layer kills/unlinks all urbs, then
+ * uses ehci_stop to clean up the rest
+ */
+ bh = 1;
}
if (bh)
--
^ permalink raw reply [flat|nested] 52+ messages in thread
* [patch 41/46] USB: dont register endpoints for interfaces that are going away
2008-11-17 7:13 ` [patch 00/46] 2.6.27.7-stable review Greg KH
` (39 preceding siblings ...)
2008-11-17 7:16 ` [patch 40/46] USB: EHCI: fix handling of dead controllers Greg KH
@ 2008-11-17 7:17 ` Greg KH
2008-11-17 7:17 ` [patch 42/46] ACPI: EC: revert msleep patch Greg KH
` (4 subsequent siblings)
45 siblings, 0 replies; 52+ messages in thread
From: Greg KH @ 2008-11-17 7:17 UTC (permalink / raw)
To: linux-kernel, stable
Cc: Justin Forbes, Zwane Mwaikambo, Theodore Ts'o, Randy Dunlap,
Dave Jones, Chuck Wolber, Chris Wedgwood, Michael Krufky,
Chuck Ebbert, Domenico Andreoli, Willy Tarreau,
Rodrigo Rubira Branco, Jake Edge, Eugene Teo, torvalds, akpm,
alan, Alan Stern, Greg Kroah-Hartman
[-- Attachment #1: usb-don-t-register-endpoints-for-interfaces-that-are-going-away.patch --]
[-- Type: text/plain, Size: 2879 bytes --]
2.6.27-stable review patch. If anyone has any objections, please let us know.
------------------
From: Alan Stern <stern@rowland.harvard.edu>
commit 352d026338378b1f13f044e33c1047da6e470056 upstream.
This patch (as1155) fixes a bug in usbcore. When interfaces are
deleted, either because the device was disconnected or because of a
configuration change, the extra attribute files and child endpoint
devices may get left behind. This is because the core removes them
before calling device_del(). But during device_del(), after the
driver is unbound the core will reinstall altsetting 0 and recreate
those extra attributes and children.
The patch prevents this by adding a flag to record when the interface
is in the midst of being unregistered. When the flag is set, the
attribute files and child devices will not be created.
Signed-off-by: Alan Stern <stern@rowland.harvard.edu>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
---
drivers/usb/core/message.c | 1 +
drivers/usb/core/sysfs.c | 2 +-
include/linux/usb.h | 2 ++
3 files changed, 4 insertions(+), 1 deletion(-)
--- a/drivers/usb/core/message.c
+++ b/drivers/usb/core/message.c
@@ -1091,6 +1091,7 @@ void usb_disable_device(struct usb_devic
continue;
dev_dbg(&dev->dev, "unregistering interface %s\n",
dev_name(&interface->dev));
+ interface->unregistering = 1;
usb_remove_sysfs_intf_files(interface);
device_del(&interface->dev);
}
--- a/drivers/usb/core/sysfs.c
+++ b/drivers/usb/core/sysfs.c
@@ -816,7 +816,7 @@ int usb_create_sysfs_intf_files(struct u
struct usb_host_interface *alt = intf->cur_altsetting;
int retval;
- if (intf->sysfs_files_created)
+ if (intf->sysfs_files_created || intf->unregistering)
return 0;
/* The interface string may be present in some altsettings
--- a/include/linux/usb.h
+++ b/include/linux/usb.h
@@ -108,6 +108,7 @@ enum usb_interface_condition {
* (in probe()), bound to a driver, or unbinding (in disconnect())
* @is_active: flag set when the interface is bound and not suspended.
* @sysfs_files_created: sysfs attributes exist
+ * @unregistering: flag set when the interface is being unregistered
* @needs_remote_wakeup: flag set when the driver requires remote-wakeup
* capability during autosuspend.
* @needs_altsetting0: flag set when a set-interface request for altsetting 0
@@ -163,6 +164,7 @@ struct usb_interface {
enum usb_interface_condition condition; /* state of binding */
unsigned is_active:1; /* the interface is not suspended */
unsigned sysfs_files_created:1; /* the sysfs attributes exist */
+ unsigned unregistering:1; /* unregistration is in progress */
unsigned needs_remote_wakeup:1; /* driver requires remote wakeup */
unsigned needs_altsetting0:1; /* switch to altsetting 0 is pending */
unsigned needs_binding:1; /* needs delayed unbind/rebind */
--
^ permalink raw reply [flat|nested] 52+ messages in thread
* [patch 42/46] ACPI: EC: revert msleep patch
2008-11-17 7:13 ` [patch 00/46] 2.6.27.7-stable review Greg KH
` (40 preceding siblings ...)
2008-11-17 7:17 ` [patch 41/46] USB: dont register endpoints for interfaces that are going away Greg KH
@ 2008-11-17 7:17 ` Greg KH
2008-11-17 7:17 ` [patch 43/46] ACPI: EC: wait for last write gpe Greg KH
` (3 subsequent siblings)
45 siblings, 0 replies; 52+ messages in thread
From: Greg KH @ 2008-11-17 7:17 UTC (permalink / raw)
To: linux-kernel, stable
Cc: Justin Forbes, Zwane Mwaikambo, Theodore Ts'o, Randy Dunlap,
Dave Jones, Chuck Wolber, Chris Wedgwood, Michael Krufky,
Chuck Ebbert, Domenico Andreoli, Willy Tarreau,
Rodrigo Rubira Branco, Jake Edge, Eugene Teo, torvalds, akpm,
alan, Alexey Starikovskiy, Len Brown, Rafael J. Wysocki,
Greg Kroah-Hartman
[-- Attachment #1: acpi-ec-revert-msleep-patch.patch --]
[-- Type: text/plain, Size: 1147 bytes --]
2.6.27-stable review patch. If anyone has any objections, please let us know.
------------------
From: Alexey Starikovskiy <astarikovskiy@suse.de>
commit 1cfe62c8010ac56e1bd3827e30386a87cc2f3594 upstream.
With the better solution for EC interrupt storm issue,
there is no need to use msleep over udelay.
References:
http://bugzilla.kernel.org/show_bug.cgi?id=11810
http://bugzilla.kernel.org/show_bug.cgi?id=10724
Signed-off-by: Alexey Starikovskiy <astarikovskiy@suse.de>
Signed-off-by: Len Brown <len.brown@intel.com>
Cc: Rafael J. Wysocki <rjw@sisk.pl>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
---
drivers/acpi/ec.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
--- a/drivers/acpi/ec.c
+++ b/drivers/acpi/ec.c
@@ -239,10 +239,10 @@ static int ec_check_sci(struct acpi_ec *
static int ec_poll(struct acpi_ec *ec)
{
unsigned long delay = jiffies + msecs_to_jiffies(ACPI_EC_DELAY);
- msleep(1);
+ udelay(ACPI_EC_UDELAY);
while (time_before(jiffies, delay)) {
gpe_transaction(ec, acpi_ec_read_status(ec));
- msleep(1);
+ udelay(ACPI_EC_UDELAY);
if (ec_transaction_done(ec))
return 0;
}
--
^ permalink raw reply [flat|nested] 52+ messages in thread
* [patch 43/46] ACPI: EC: wait for last write gpe
2008-11-17 7:13 ` [patch 00/46] 2.6.27.7-stable review Greg KH
` (41 preceding siblings ...)
2008-11-17 7:17 ` [patch 42/46] ACPI: EC: revert msleep patch Greg KH
@ 2008-11-17 7:17 ` Greg KH
2008-11-17 7:17 ` [patch 44/46] ACPI: EC: restart failed command Greg KH
` (2 subsequent siblings)
45 siblings, 0 replies; 52+ messages in thread
From: Greg KH @ 2008-11-17 7:17 UTC (permalink / raw)
To: linux-kernel, stable
Cc: Justin Forbes, Zwane Mwaikambo, Theodore Ts'o, Randy Dunlap,
Dave Jones, Chuck Wolber, Chris Wedgwood, Michael Krufky,
Chuck Ebbert, Domenico Andreoli, Willy Tarreau,
Rodrigo Rubira Branco, Jake Edge, Eugene Teo, torvalds, akpm,
alan, Alexey Starikovskiy, Len Brown, Rafael J. Wysocki,
Greg Kroah-Hartman
[-- Attachment #1: acpi-ec-wait-for-last-write-gpe.patch --]
[-- Type: text/plain, Size: 2256 bytes --]
2.6.27-stable review patch. If anyone has any objections, please let us know.
------------------
From: Alexey Starikovskiy <astarikovskiy@suse.de>
commit dd15f8c42af09031e27da5b4d697ce925511f2e1 upstream.
There is a possibility that EC might break if next command is
issued within 1 us after write or burst-disable command.
Suggestd-by: Zhao Yakui <yakui.zhao@intel.com>
Signed-off-by: Alexey Starikovskiy <astarikovskiy@suse.de>
Signed-off-by: Len Brown <len.brown@intel.com>
Cc: Rafael J. Wysocki <rjw@sisk.pl>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
---
drivers/acpi/ec.c | 21 +++++++++++++--------
1 file changed, 13 insertions(+), 8 deletions(-)
--- a/drivers/acpi/ec.c
+++ b/drivers/acpi/ec.c
@@ -102,6 +102,7 @@ struct transaction {
u8 command;
u8 wlen;
u8 rlen;
+ bool done;
};
static struct acpi_ec {
@@ -178,7 +179,7 @@ static int ec_transaction_done(struct ac
unsigned long flags;
int ret = 0;
spin_lock_irqsave(&ec->curr_lock, flags);
- if (!ec->curr || (!ec->curr->wlen && !ec->curr->rlen))
+ if (!ec->curr || ec->curr->done)
ret = 1;
spin_unlock_irqrestore(&ec->curr_lock, flags);
return ret;
@@ -195,17 +196,20 @@ static void gpe_transaction(struct acpi_
acpi_ec_write_data(ec, *(ec->curr->wdata++));
--ec->curr->wlen;
} else
- /* false interrupt, state didn't change */
- ++ec->curr->irq_count;
-
+ goto err;
} else if (ec->curr->rlen > 0) {
if ((status & ACPI_EC_FLAG_OBF) == 1) {
*(ec->curr->rdata++) = acpi_ec_read_data(ec);
- --ec->curr->rlen;
+ if (--ec->curr->rlen == 0)
+ ec->curr->done = true;
} else
- /* false interrupt, state didn't change */
- ++ec->curr->irq_count;
- }
+ goto err;
+ } else if (ec->curr->wlen == 0 && (status & ACPI_EC_FLAG_IBF) == 0)
+ ec->curr->done = true;
+ goto unlock;
+err:
+ /* false interrupt, state didn't change */
+ ++ec->curr->irq_count;
unlock:
spin_unlock_irqrestore(&ec->curr_lock, flags);
}
@@ -265,6 +269,7 @@ static int acpi_ec_transaction_unlocked(
spin_lock_irqsave(&ec->curr_lock, tmp);
/* following two actions should be kept atomic */
t->irq_count = 0;
+ t->done = false;
ec->curr = t;
acpi_ec_write_cmd(ec, ec->curr->command);
if (ec->curr->command == ACPI_EC_COMMAND_QUERY)
--
^ permalink raw reply [flat|nested] 52+ messages in thread
* [patch 44/46] ACPI: EC: restart failed command
2008-11-17 7:13 ` [patch 00/46] 2.6.27.7-stable review Greg KH
` (42 preceding siblings ...)
2008-11-17 7:17 ` [patch 43/46] ACPI: EC: wait for last write gpe Greg KH
@ 2008-11-17 7:17 ` Greg KH
2008-11-17 7:17 ` [patch 45/46] ACPI: EC: lower interrupt storm treshold Greg KH
2008-11-17 7:17 ` [patch 46/46] ACPI: EC: Dont do transaction from GPE handler in poll mode Greg KH
45 siblings, 0 replies; 52+ messages in thread
From: Greg KH @ 2008-11-17 7:17 UTC (permalink / raw)
To: linux-kernel, stable
Cc: Justin Forbes, Zwane Mwaikambo, Theodore Ts'o, Randy Dunlap,
Dave Jones, Chuck Wolber, Chris Wedgwood, Michael Krufky,
Chuck Ebbert, Domenico Andreoli, Willy Tarreau,
Rodrigo Rubira Branco, Jake Edge, Eugene Teo, torvalds, akpm,
alan, Alexey Starikovskiy, Len Brown, Rafael J. Wysocki,
Greg Kroah-Hartman
[-- Attachment #1: acpi-ec-restart-failed-command.patch --]
[-- Type: text/plain, Size: 3283 bytes --]
2.6.27-stable review patch. If anyone has any objections, please let us know.
------------------
From: Alexey Starikovskiy <astarikovskiy@suse.de>
commit a2f93aeadf97e870ff385030633a73e21146815d upstream.
Restart current transaction if we recieved unexpected GPEs instead
of needed ones.
http://bugzilla.kernel.org/show_bug.cgi?id=11896
Signed-off-by: Alexey Starikovskiy <astarikovskiy@suse.de>
Signed-off-by: Len Brown <len.brown@intel.com>
Cc: Rafael J. Wysocki <rjw@sisk.pl>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
---
drivers/acpi/ec.c | 41 +++++++++++++++++++++++++++++------------
1 file changed, 29 insertions(+), 12 deletions(-)
--- a/drivers/acpi/ec.c
+++ b/drivers/acpi/ec.c
@@ -100,6 +100,8 @@ struct transaction {
u8 *rdata;
unsigned short irq_count;
u8 command;
+ u8 wi;
+ u8 ri;
u8 wlen;
u8 rlen;
bool done;
@@ -185,26 +187,34 @@ static int ec_transaction_done(struct ac
return ret;
}
+static void start_transaction(struct acpi_ec *ec)
+{
+ ec->curr->irq_count = ec->curr->wi = ec->curr->ri = 0;
+ ec->curr->done = false;
+ acpi_ec_write_cmd(ec, ec->curr->command);
+}
+
static void gpe_transaction(struct acpi_ec *ec, u8 status)
{
unsigned long flags;
spin_lock_irqsave(&ec->curr_lock, flags);
if (!ec->curr)
goto unlock;
- if (ec->curr->wlen > 0) {
- if ((status & ACPI_EC_FLAG_IBF) == 0) {
- acpi_ec_write_data(ec, *(ec->curr->wdata++));
- --ec->curr->wlen;
- } else
+ if (ec->curr->wlen > ec->curr->wi) {
+ if ((status & ACPI_EC_FLAG_IBF) == 0)
+ acpi_ec_write_data(ec,
+ ec->curr->wdata[ec->curr->wi++]);
+ else
goto err;
- } else if (ec->curr->rlen > 0) {
+ } else if (ec->curr->rlen > ec->curr->ri) {
if ((status & ACPI_EC_FLAG_OBF) == 1) {
- *(ec->curr->rdata++) = acpi_ec_read_data(ec);
- if (--ec->curr->rlen == 0)
+ ec->curr->rdata[ec->curr->ri++] = acpi_ec_read_data(ec);
+ if (ec->curr->rlen == ec->curr->ri)
ec->curr->done = true;
} else
goto err;
- } else if (ec->curr->wlen == 0 && (status & ACPI_EC_FLAG_IBF) == 0)
+ } else if (ec->curr->wlen == ec->curr->wi &&
+ (status & ACPI_EC_FLAG_IBF) == 0)
ec->curr->done = true;
goto unlock;
err:
@@ -219,6 +229,15 @@ static int acpi_ec_wait(struct acpi_ec *
if (wait_event_timeout(ec->wait, ec_transaction_done(ec),
msecs_to_jiffies(ACPI_EC_DELAY)))
return 0;
+ /* try restart command if we get any false interrupts */
+ if (ec->curr->irq_count &&
+ (acpi_ec_read_status(ec) & ACPI_EC_FLAG_IBF) == 0) {
+ pr_debug(PREFIX "controller reset, restart transaction\n");
+ start_transaction(ec);
+ if (wait_event_timeout(ec->wait, ec_transaction_done(ec),
+ msecs_to_jiffies(ACPI_EC_DELAY)))
+ return 0;
+ }
/* missing GPEs, switch back to poll mode */
if (printk_ratelimit())
pr_info(PREFIX "missing confirmations, "
@@ -268,10 +287,8 @@ static int acpi_ec_transaction_unlocked(
/* start transaction */
spin_lock_irqsave(&ec->curr_lock, tmp);
/* following two actions should be kept atomic */
- t->irq_count = 0;
- t->done = false;
ec->curr = t;
- acpi_ec_write_cmd(ec, ec->curr->command);
+ start_transaction(ec);
if (ec->curr->command == ACPI_EC_COMMAND_QUERY)
clear_bit(EC_FLAGS_QUERY_PENDING, &ec->flags);
spin_unlock_irqrestore(&ec->curr_lock, tmp);
--
^ permalink raw reply [flat|nested] 52+ messages in thread
* [patch 45/46] ACPI: EC: lower interrupt storm treshold
2008-11-17 7:13 ` [patch 00/46] 2.6.27.7-stable review Greg KH
` (43 preceding siblings ...)
2008-11-17 7:17 ` [patch 44/46] ACPI: EC: restart failed command Greg KH
@ 2008-11-17 7:17 ` Greg KH
2008-11-17 7:17 ` [patch 46/46] ACPI: EC: Dont do transaction from GPE handler in poll mode Greg KH
45 siblings, 0 replies; 52+ messages in thread
From: Greg KH @ 2008-11-17 7:17 UTC (permalink / raw)
To: linux-kernel, stable
Cc: Justin Forbes, Zwane Mwaikambo, Theodore Ts'o, Randy Dunlap,
Dave Jones, Chuck Wolber, Chris Wedgwood, Michael Krufky,
Chuck Ebbert, Domenico Andreoli, Willy Tarreau,
Rodrigo Rubira Branco, Jake Edge, Eugene Teo, torvalds, akpm,
alan, Alexey Starikovskiy, Len Brown, Rafael J. Wysocki,
Greg Kroah-Hartman
[-- Attachment #1: acpi-ec-lower-interrupt-storm-treshold.patch --]
[-- Type: text/plain, Size: 941 bytes --]
2.6.27-stable review patch. If anyone has any objections, please let us know.
------------------
From: Alexey Starikovskiy <astarikovskiy@suse.de>
commit 06cf7d3c7af902939cd1754abcafb2464060cba8 upstream.
http://bugzilla.kernel.org/show_bug.cgi?id=11892
Signed-off-by: Alexey Starikovskiy <astarikovskiy@suse.de>
Signed-off-by: Len Brown <len.brown@intel.com>
Cc: Rafael J. Wysocki <rjw@sisk.pl>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
---
drivers/acpi/ec.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
--- a/drivers/acpi/ec.c
+++ b/drivers/acpi/ec.c
@@ -70,7 +70,7 @@ enum ec_command {
#define ACPI_EC_UDELAY_GLK 1000 /* Wait 1ms max. to get global lock */
#define ACPI_EC_UDELAY 100 /* Wait 100us before polling EC again */
-#define ACPI_EC_STORM_THRESHOLD 20 /* number of false interrupts
+#define ACPI_EC_STORM_THRESHOLD 8 /* number of false interrupts
per one transaction */
enum {
--
^ permalink raw reply [flat|nested] 52+ messages in thread
* [patch 46/46] ACPI: EC: Dont do transaction from GPE handler in poll mode.
2008-11-17 7:13 ` [patch 00/46] 2.6.27.7-stable review Greg KH
` (44 preceding siblings ...)
2008-11-17 7:17 ` [patch 45/46] ACPI: EC: lower interrupt storm treshold Greg KH
@ 2008-11-17 7:17 ` Greg KH
45 siblings, 0 replies; 52+ messages in thread
From: Greg KH @ 2008-11-17 7:17 UTC (permalink / raw)
To: linux-kernel, stable
Cc: Justin Forbes, Zwane Mwaikambo, Theodore Ts'o, Randy Dunlap,
Dave Jones, Chuck Wolber, Chris Wedgwood, Michael Krufky,
Chuck Ebbert, Domenico Andreoli, Willy Tarreau,
Rodrigo Rubira Branco, Jake Edge, Eugene Teo, torvalds, akpm,
alan, Alexey Starikovskiy, Len Brown, Rafael J. Wysocki,
Greg Kroah-Hartman
[-- Attachment #1: acpi-ec-don-t-do-transaction-from-gpe-handler-in-poll-mode.patch --]
[-- Type: text/plain, Size: 1134 bytes --]
2.6.27-stable review patch. If anyone has any objections, please let us know.
------------------
From: Alexey Starikovskiy <astarikovskiy@suse.de>
commit 8517934ef6aaa28d6e055b98df65b31cedbd1372 upstream.
Referencies: http://bugzilla.kernel.org/show_bug.cgi?id=12004
Signed-off-by: Alexey Starikovskiy <astarikovskiy@suse.de>
Signed-off-by: Len Brown <len.brown@intel.com>
Cc: Rafael J. Wysocki <rjw@sisk.pl>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
---
drivers/acpi/ec.c | 9 ++++++---
1 file changed, 6 insertions(+), 3 deletions(-)
--- a/drivers/acpi/ec.c
+++ b/drivers/acpi/ec.c
@@ -581,9 +581,12 @@ static u32 acpi_ec_gpe_handler(void *dat
pr_debug(PREFIX "~~~> interrupt\n");
status = acpi_ec_read_status(ec);
- gpe_transaction(ec, status);
- if (ec_transaction_done(ec) && (status & ACPI_EC_FLAG_IBF) == 0)
- wake_up(&ec->wait);
+ if (test_bit(EC_FLAGS_GPE_MODE, &ec->flags)) {
+ gpe_transaction(ec, status);
+ if (ec_transaction_done(ec) &&
+ (status & ACPI_EC_FLAG_IBF) == 0)
+ wake_up(&ec->wait);
+ }
ec_check_sci(ec, status);
if (!test_bit(EC_FLAGS_GPE_MODE, &ec->flags) &&
--
^ permalink raw reply [flat|nested] 52+ messages in thread
* Re: [patch 25/46] V4L/DVB (9624): CVE-2008-5033: fix OOPS on tvaudio when controlling bass/treble
2008-11-17 7:15 ` [patch 25/46] V4L/DVB (9624): CVE-2008-5033: fix OOPS on tvaudio when controlling bass/treble Greg KH
@ 2008-11-17 13:31 ` Mauro Carvalho Chehab
0 siblings, 0 replies; 52+ messages in thread
From: Mauro Carvalho Chehab @ 2008-11-17 13:31 UTC (permalink / raw)
To: Greg KH
Cc: linux-kernel, stable, Justin Forbes, Zwane Mwaikambo,
Theodore Ts'o, Randy Dunlap, Dave Jones, Chuck Wolber,
Chris Wedgwood, Michael Krufky, Chuck Ebbert, Domenico Andreoli,
Willy Tarreau, Rodrigo Rubira Branco, Jake Edge, Eugene Teo,
torvalds, akpm, alan, Greg Kroah-Hartman, Rafael Wysocki
On Sun, 16 Nov 2008 23:15:51 -0800
Greg KH <gregkh@suse.de> wrote:
> 2.6.27-stable review patch. If anyone has any objections, please let us know.
>
> ------------------
>
> From: Mauro Carvalho Chehab <mchehab@redhat.com>
>
> commit 01a1a3cc1e3fbe718bd06a2a5d4d1a2d0fb4d7d9 upstream.
>
> This bug were supposed to be fixed by 5ba2f67afb02c5302b2898949ed6fc3b3d37dcf1,
> where a call to NULL happens.
>
> Not all tvaudio chips allow controlling bass/treble. So, the driver
> has a table with a flag to indicate if the chip does support it.
>
> Unfortunately, the handling of this logic were broken for a very long
> time (probably since the first module version). Due to that, an OOPS
> were generated for devices that don't support bass/treble.
Just complementing, this was a regression, caused by dc3d75da05c3ff2dd6510c32a11deacced49d1a1.
--
Cheers,
Mauro
^ permalink raw reply [flat|nested] 52+ messages in thread
* Re: [patch 24/46] Fix broken ownership of /proc/sys/ files
2008-11-17 7:15 ` [patch 24/46] Fix broken ownership of /proc/sys/ files Greg KH
@ 2008-11-17 20:09 ` Theodore Tso
2008-11-17 21:35 ` [stable] " Greg KH
0 siblings, 1 reply; 52+ messages in thread
From: Theodore Tso @ 2008-11-17 20:09 UTC (permalink / raw)
To: Greg KH
Cc: linux-kernel, stable, Justin Forbes, Zwane Mwaikambo,
Randy Dunlap, Dave Jones, Chuck Wolber, Chris Wedgwood,
Michael Krufky, Chuck Ebbert, Domenico Andreoli, Willy Tarreau,
Rodrigo Rubira Branco, Jake Edge, Eugene Teo, torvalds, akpm,
alan, Al Viro
On Sun, Nov 16, 2008 at 11:15:47PM -0800, Greg KH wrote:
> 2.6.27-stable review patch. If anyone has any objections, please let us know.
> ------------------
>
> From: Al Viro <viro@ZenIV.linux.org.uk>
>
> commit 5c06fe772da43db63b053addcd2c267f76d0be91 upstream.
>
> D'oh...
>
> Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
> Reported-and-tested-by: Peter Palfrader <peter@palfrader.org>
> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
It's harmless to include this, but I thought this fixed a regression
that showed up only after 2.6.28-rc4?
- Ted
^ permalink raw reply [flat|nested] 52+ messages in thread
* Re: [stable] [patch 24/46] Fix broken ownership of /proc/sys/ files
2008-11-17 20:09 ` Theodore Tso
@ 2008-11-17 21:35 ` Greg KH
2008-11-17 22:25 ` Rafael J. Wysocki
0 siblings, 1 reply; 52+ messages in thread
From: Greg KH @ 2008-11-17 21:35 UTC (permalink / raw)
To: Theodore Tso, Greg KH, linux-kernel, stable, Justin Forbes,
Zwane Mwaikambo, Randy Dunlap, Dave Jones, Chuck Wolber,
Chris Wedgwood, Michael Krufky, Chuck Ebbert, Domenico Andreoli,
Willy Tarreau, Rodrigo Rubira Branco, Jake Edge, Eugene Teo,
torvalds, akpm, alan, Al Viro
On Mon, Nov 17, 2008 at 03:09:00PM -0500, Theodore Tso wrote:
> On Sun, Nov 16, 2008 at 11:15:47PM -0800, Greg KH wrote:
> > 2.6.27-stable review patch. If anyone has any objections, please let us know.
> > ------------------
> >
> > From: Al Viro <viro@ZenIV.linux.org.uk>
> >
> > commit 5c06fe772da43db63b053addcd2c267f76d0be91 upstream.
> >
> > D'oh...
> >
> > Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
> > Reported-and-tested-by: Peter Palfrader <peter@palfrader.org>
> > Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
> > Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
>
> It's harmless to include this, but I thought this fixed a regression
> that showed up only after 2.6.28-rc4?
I thought I saw a report that it happened for someone using the 2.6.27.y
tree as well.
thanks,
greg k-h
^ permalink raw reply [flat|nested] 52+ messages in thread
* Re: [stable] [patch 24/46] Fix broken ownership of /proc/sys/ files
2008-11-17 21:35 ` [stable] " Greg KH
@ 2008-11-17 22:25 ` Rafael J. Wysocki
2008-11-17 23:45 ` Peter Palfrader
0 siblings, 1 reply; 52+ messages in thread
From: Rafael J. Wysocki @ 2008-11-17 22:25 UTC (permalink / raw)
To: Greg KH
Cc: Theodore Tso, Greg KH, linux-kernel, stable, Justin Forbes,
Zwane Mwaikambo, Randy Dunlap, Dave Jones, Chuck Wolber,
Chris Wedgwood, Michael Krufky, Chuck Ebbert, Domenico Andreoli,
Willy Tarreau, Rodrigo Rubira Branco, Jake Edge, Eugene Teo,
torvalds, akpm, alan, Al Viro
On Monday, 17 of November 2008, Greg KH wrote:
> On Mon, Nov 17, 2008 at 03:09:00PM -0500, Theodore Tso wrote:
> > On Sun, Nov 16, 2008 at 11:15:47PM -0800, Greg KH wrote:
> > > 2.6.27-stable review patch. If anyone has any objections, please let us know.
> > > ------------------
> > >
> > > From: Al Viro <viro@ZenIV.linux.org.uk>
> > >
> > > commit 5c06fe772da43db63b053addcd2c267f76d0be91 upstream.
> > >
> > > D'oh...
> > >
> > > Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
> > > Reported-and-tested-by: Peter Palfrader <peter@palfrader.org>
> > > Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
> > > Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
> >
> > It's harmless to include this, but I thought this fixed a regression
> > that showed up only after 2.6.28-rc4?
>
> I thought I saw a report that it happened for someone using the 2.6.27.y
> tree as well.
Yes, 2.6.27(.y) was referred to in the original report.
Thanks,
Rafael
^ permalink raw reply [flat|nested] 52+ messages in thread
* Re: [stable] [patch 24/46] Fix broken ownership of /proc/sys/ files
2008-11-17 22:25 ` Rafael J. Wysocki
@ 2008-11-17 23:45 ` Peter Palfrader
0 siblings, 0 replies; 52+ messages in thread
From: Peter Palfrader @ 2008-11-17 23:45 UTC (permalink / raw)
To: linux-kernel
On Mon, 17 Nov 2008, Rafael J. Wysocki wrote:
> On Monday, 17 of November 2008, Greg KH wrote:
> > On Mon, Nov 17, 2008 at 03:09:00PM -0500, Theodore Tso wrote:
> > > On Sun, Nov 16, 2008 at 11:15:47PM -0800, Greg KH wrote:
> > > > 2.6.27-stable review patch. If anyone has any objections, please let us know.
> > > > ------------------
> > > >
> > > > From: Al Viro <viro@ZenIV.linux.org.uk>
> > > >
> > > > commit 5c06fe772da43db63b053addcd2c267f76d0be91 upstream.
> > > >
> > > > D'oh...
> > > >
> > > > Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
> > > > Reported-and-tested-by: Peter Palfrader <peter@palfrader.org>
> > > > Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
> > > > Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
> > >
> > > It's harmless to include this, but I thought this fixed a regression
> > > that showed up only after 2.6.28-rc4?
> >
> > I thought I saw a report that it happened for someone using the 2.6.27.y
> > tree as well.
>
> Yes, 2.6.27(.y) was referred to in the original report.
Yup. The earliest 2.6.27 I have running anywhere is 2.6.27-rc4 and that
is affected already, as are all the various 2.6.27.y.
--
| .''`. ** Debian GNU/Linux **
Peter Palfrader | : :' : The universal
http://www.palfrader.org/ | `. `' Operating System
| `- http://www.debian.org/
^ permalink raw reply [flat|nested] 52+ messages in thread
end of thread, other threads:[~2008-11-17 23:45 UTC | newest]
Thread overview: 52+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <20081117070621.430169021@blue.kroah.org>
2008-11-17 7:13 ` [patch 00/46] 2.6.27.7-stable review Greg KH
2008-11-17 7:14 ` [patch 01/46] touch_mnt_namespace when the mount flags change Greg KH
2008-11-17 7:14 ` [patch 02/46] iwlagn: avoid sleep in softirq context Greg KH
2008-11-17 7:14 ` [patch 03/46] ath5k: fix suspend-related oops on rmmod Greg KH
2008-11-17 7:14 ` [patch 04/46] ath5k: Fix reset sequence for AR5212 in general and RF5111 in particular Greg KH
2008-11-17 7:14 ` [patch 05/46] bnx2x: Removing the PMF indication when unloading Greg KH
2008-11-17 7:14 ` [patch 06/46] bnx2x: PCI configuration bug on big-endian Greg KH
2008-11-17 7:14 ` [patch 07/46] bnx2x: Calling netif_carrier_off at the end of the probe Greg KH
2008-11-17 7:14 ` [patch 08/46] ARM: 5329/1: Feroceon: fix feroceon_l2_inv_range Greg KH
2008-11-17 7:14 ` [patch 09/46] Fix platform drivers that crash on suspend/resume Greg KH
2008-11-17 7:14 ` [patch 10/46] hostap: pad the skb->cb usage in lieu of a proper fix Greg KH
2008-11-17 7:14 ` [patch 11/46] ACPI: avoid empty file name in sysfs Greg KH
2008-11-17 7:14 ` [patch 12/46] ACPI: EC: make kernel messages more useful when GPE storm is detected Greg KH
2008-11-17 7:15 ` [patch 13/46] hugetlb: make unmap_ref_private multi-size-aware Greg KH
2008-11-17 7:15 ` [patch 14/46] rtl8187: Add Abocom USB ID Greg KH
2008-11-17 7:15 ` [patch 15/46] rtl8187 : support for Sitecom WL-168 0001 v4 Greg KH
2008-11-17 7:15 ` [patch 16/46] kbuild: Fixup deb-pkg target to generate separate firmware deb Greg KH
2008-11-17 7:15 ` [patch 17/46] block: fix nr_phys_segments miscalculation bug Greg KH
2008-11-17 7:15 ` [patch 18/46] powerpc/mpic: Fix regression caused by change of default IRQ affinity Greg KH
2008-11-17 7:15 ` [patch 19/46] Input: ALPS - add signature for DualPoint found in Dell Latitude E6500 Greg KH
2008-11-17 7:15 ` [patch 20/46] memory hotplug: fix page_zone() calculation in test_pages_isolated() Greg KH
2008-11-17 7:15 ` [patch 21/46] r8169: select MII in Kconfig Greg KH
2008-11-17 7:15 ` [patch 22/46] sony-laptop: ignore missing _DIS method on pic device Greg KH
2008-11-17 7:15 ` [patch 23/46] net: fix /proc/net/snmp as memory corruptor Greg KH
2008-11-17 7:15 ` [patch 24/46] Fix broken ownership of /proc/sys/ files Greg KH
2008-11-17 20:09 ` Theodore Tso
2008-11-17 21:35 ` [stable] " Greg KH
2008-11-17 22:25 ` Rafael J. Wysocki
2008-11-17 23:45 ` Peter Palfrader
2008-11-17 7:15 ` [patch 25/46] V4L/DVB (9624): CVE-2008-5033: fix OOPS on tvaudio when controlling bass/treble Greg KH
2008-11-17 13:31 ` Mauro Carvalho Chehab
2008-11-17 7:15 ` [patch 26/46] S390: cpu topology: fix locking Greg KH
2008-11-17 7:15 ` [patch 27/46] ACPI : Load device driver according to the status of acpi device Greg KH
2008-11-17 7:16 ` [patch 28/46] m68k: Fix off-by-one in m68k_setup_user_interrupt() Greg KH
2008-11-17 7:16 ` [patch 29/46] SCSI: qla2xxx: Return a FAILED status when abort mailbox-command fails Greg KH
2008-11-17 7:16 ` [patch 30/46] SCSI: qla2xxx: Do not honour max_vports from firmware for 2G ISPs and below Greg KH
2008-11-17 7:16 ` [patch 31/46] SCSI: qla2xxx: Correct Atmel flash-part handling Greg KH
2008-11-17 7:16 ` [patch 32/46] SCSI: dpt_i2o: fix transferred data length for scsi_set_resid() Greg KH
2008-11-17 7:16 ` [patch 33/46] dm raid1: flush workqueue before destruction Greg KH
2008-11-17 7:16 ` [patch 34/46] USB: remove optional bus bindings in isp1760, fixing runtime warning Greg KH
2008-11-17 7:16 ` [patch 35/46] USB: gadget: cdc-acm deadlock fix Greg KH
2008-11-17 7:16 ` [patch 36/46] USB: unusual_devs entry for Argosy USB mass-storage interface Greg KH
2008-11-17 7:16 ` [patch 37/46] USB: Fix PS3 USB shutdown problems Greg KH
2008-11-17 7:16 ` [patch 38/46] USB: cdc-acm.c: fix recursive lock in acm_start_wb error path Greg KH
2008-11-17 7:16 ` [patch 39/46] USB: EHCI: fix divide-by-zero bug Greg KH
2008-11-17 7:16 ` [patch 40/46] USB: EHCI: fix handling of dead controllers Greg KH
2008-11-17 7:17 ` [patch 41/46] USB: dont register endpoints for interfaces that are going away Greg KH
2008-11-17 7:17 ` [patch 42/46] ACPI: EC: revert msleep patch Greg KH
2008-11-17 7:17 ` [patch 43/46] ACPI: EC: wait for last write gpe Greg KH
2008-11-17 7:17 ` [patch 44/46] ACPI: EC: restart failed command Greg KH
2008-11-17 7:17 ` [patch 45/46] ACPI: EC: lower interrupt storm treshold Greg KH
2008-11-17 7:17 ` [patch 46/46] ACPI: EC: Dont do transaction from GPE handler in poll mode Greg KH
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox