[kernel] r17203 - in dists/sid/linux-2.6/debian: . patches/bugfix/all patches/series

Ben Hutchings benh at alioth.debian.org
Wed Apr 6 12:53:15 UTC 2011


Author: benh
Date: Wed Apr  6 12:53:10 2011
New Revision: 17203

Log:
Cherry-pick some simple bug fixes from the 2.6.38.y queue

Added:
   dists/sid/linux-2.6/debian/patches/bugfix/all/alsa-fix-yet-another-race-in-disconnection.patch
   dists/sid/linux-2.6/debian/patches/bugfix/all/ath9k-fix-kernel-panic-in-ar2427.patch
   dists/sid/linux-2.6/debian/patches/bugfix/all/cciss-fix-lost-command-issue.patch
   dists/sid/linux-2.6/debian/patches/bugfix/all/pci-acpi-report-aspm-support-to-bios-if-not-disabled-from-command-line.patch
   dists/sid/linux-2.6/debian/patches/bugfix/all/ses-avoid-kernel-panic-when-lun-0-is-not-mapped.patch
Modified:
   dists/sid/linux-2.6/debian/changelog
   dists/sid/linux-2.6/debian/patches/series/3

Modified: dists/sid/linux-2.6/debian/changelog
==============================================================================
--- dists/sid/linux-2.6/debian/changelog	Mon Apr  4 18:14:25 2011	(r17202)
+++ dists/sid/linux-2.6/debian/changelog	Wed Apr  6 12:53:10 2011	(r17203)
@@ -4,6 +4,11 @@
   * [ppc64] Add to linux-tools package architectures (Closes: #620124)
   * [amd64] Save cr4 to mmu_cr4_features at boot time (Closes: #620284)
   * appletalk: Fix bugs introduced when removing use of BKL
+  * ALSA: Fix yet another race in disconnection
+  * cciss: Fix lost command issue
+  * ath9k: Fix kernel panic in AR2427
+  * ses: Avoid kernel panic when lun 0 is not mapped
+  * PCI/ACPI: Report ASPM support to BIOS if not disabled from command line
 
   [ Aurelien Jarno ]
   * rtlwifi: fix build when PCI is not enabled.

Added: dists/sid/linux-2.6/debian/patches/bugfix/all/alsa-fix-yet-another-race-in-disconnection.patch
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ dists/sid/linux-2.6/debian/patches/bugfix/all/alsa-fix-yet-another-race-in-disconnection.patch	Wed Apr  6 12:53:10 2011	(r17203)
@@ -0,0 +1,43 @@
+From a45e3d6b13e97506b616980c0f122c3389bcefa4 Mon Sep 17 00:00:00 2001
+From: Takashi Iwai <tiwai at suse.de>
+Date: Thu, 24 Mar 2011 09:50:15 +0100
+Subject: ALSA: Fix yet another race in disconnection
+
+From: Takashi Iwai <tiwai at suse.de>
+
+commit a45e3d6b13e97506b616980c0f122c3389bcefa4 upstream.
+
+This patch fixes a race between snd_card_file_remove() and
+snd_card_disconnect().  When the card is added to shutdown_files list
+in snd_card_disconnect(), but it's freed in snd_card_file_remove() at
+the same time, the shutdown_files list gets corrupted.  The list member
+must be freed in snd_card_file_remove() as well.
+
+Reported-and-tested-by: Russ Dill <russ.dill at gmail.com>
+Signed-off-by: Takashi Iwai <tiwai at suse.de>
+Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
+
+---
+ sound/core/init.c |    4 ++++
+ 1 file changed, 4 insertions(+)
+
+--- a/sound/core/init.c
++++ b/sound/core/init.c
+@@ -848,6 +848,7 @@ int snd_card_file_add(struct snd_card *c
+ 		return -ENOMEM;
+ 	mfile->file = file;
+ 	mfile->disconnected_f_op = NULL;
++	INIT_LIST_HEAD(&mfile->shutdown_list);
+ 	spin_lock(&card->files_lock);
+ 	if (card->shutdown) {
+ 		spin_unlock(&card->files_lock);
+@@ -883,6 +884,9 @@ int snd_card_file_remove(struct snd_card
+ 	list_for_each_entry(mfile, &card->files_list, list) {
+ 		if (mfile->file == file) {
+ 			list_del(&mfile->list);
++			spin_lock(&shutdown_lock);
++			list_del(&mfile->shutdown_list);
++			spin_unlock(&shutdown_lock);
+ 			if (mfile->disconnected_f_op)
+ 				fops_put(mfile->disconnected_f_op);
+ 			found = mfile;

Added: dists/sid/linux-2.6/debian/patches/bugfix/all/ath9k-fix-kernel-panic-in-ar2427.patch
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ dists/sid/linux-2.6/debian/patches/bugfix/all/ath9k-fix-kernel-panic-in-ar2427.patch	Wed Apr  6 12:53:10 2011	(r17203)
@@ -0,0 +1,85 @@
+From 61e1b0b00c793ad5a32fe2181c9f77115fed5dc4 Mon Sep 17 00:00:00 2001
+From: Mohammed Shafi Shajakhan <mshajakhan at atheros.com>
+Date: Mon, 21 Mar 2011 18:27:21 +0530
+Subject: ath9k: Fix kernel panic in AR2427
+
+From: Mohammed Shafi Shajakhan <mshajakhan at atheros.com>
+
+commit 61e1b0b00c793ad5a32fe2181c9f77115fed5dc4 upstream.
+
+Kernel panic occurs just after AR2427 establishes connection with AP.
+Unless aggregation is enabled we don't initialize the TID structure.
+Thus accesing the elements of the TID structure when aggregation is
+disabled, leads to NULL pointer dereferencing.
+
+[  191.320358] Call Trace:
+[  191.320364]  [<fd250ea7>] ? ath9k_tx+0xa7/0x200 [ath9k]
+[  191.320376]  [<fd1ec7fc>] ? __ieee80211_tx+0x5c/0x1e0 [mac80211]
+[  191.320386]  [<fd1edd2b>] ? ieee80211_tx+0x7b/0x90 [mac80211]
+[  191.320395]  [<fd1edddd>] ? ieee80211_xmit+0x9d/0x1d0 [mac80211]
+[  191.320401]  [<c014218f>] ? wake_up_state+0xf/0x20
+[  191.320405]  [<c015dbc8>] ? signal_wake_up+0x28/0x40
+[  191.320410]  [<c012a578>] ? default_spin_lock_flags+0x8/0x10
+[  191.320420]  [<fd1ee308>] ? ieee80211_subif_start_xmit+0x2e8/0x7c0
+[mac80211]
+[  191.320425]  [<c058f905>] ? do_page_fault+0x295/0x3a0
+[  191.320431]  [<c04c4a3d>] ? dev_hard_start_xmit+0x1ad/0x210
+[  191.320436]  [<c04d96b5>] ? sch_direct_xmit+0x105/0x170
+[  191.320445]  [<fd1f161a>] ? get_sta_flags+0x2a/0x40 [mac80211]
+[  191.320449]  [<c04c780f>] ? dev_queue_xmit+0x37f/0x4b0
+[  191.320452]  [<c04d75b0>] ? eth_header+0x0/0xb0
+[  191.320456]  [<c04cc479>] ? neigh_resolve_output+0xe9/0x310
+[  191.320461]  [<c053d295>] ? ip6_output_finish+0xa5/0x110
+[  191.320464]  [<c053e354>] ? ip6_output2+0x134/0x250
+[  191.320468]  [<c053f7dd>] ? ip6_output+0x6d/0x100
+[  191.320471]  [<c0559665>] ? mld_sendpack+0x395/0x3e0
+[  191.320475]  [<c0557f81>] ? add_grhead+0x31/0xa0
+[  191.320478]  [<c055a83c>] ? mld_send_cr+0x1bc/0x2b0
+[  191.320482]  [<c01535d9>] ? irq_exit+0x39/0x70
+[  191.320485]  [<c055a940>] ? mld_ifc_timer_expire+0x10/0x40
+[  191.320489]  [<c015b92e>] ? run_timer_softirq+0x13e/0x2c0
+[  191.320493]  [<c0103a30>] ? common_interrupt+0x30/0x40
+[  191.320498]  [<c055a930>] ? mld_ifc_timer_expire+0x0/0x40
+[  191.320502]  [<c0153358>] ? __do_softirq+0x98/0x1b0
+[  191.320506]  [<c01534b5>] ? do_softirq+0x45/0x50
+[  191.320509]  [<c0153605>] ? irq_exit+0x65/0x70
+[  191.320513]  [<c05917dc>] ? smp_apic_timer_interrupt+0x5c/0x8b
+[  191.320516]  [<c0103df1>] ? apic_timer_interrupt+0x31/0x40
+[  191.320521]  [<c016007b>] ? k_getrusage+0x12b/0x2f0
+[  191.320525]  [<c039e384>] ? acpi_idle_enter_simple+0x117/0x148
+[  191.320529]  [<c04a20da>] ? cpuidle_idle_call+0x7a/0x100
+[  191.320532]  [<c01021d4>] ? cpu_idle+0x94/0xd0
+[  191.320536]  [<c057ab88>] ? rest_init+0x58/0x60
+[  191.320541]  [<c07a58ec>] ? start_kernel+0x351/0x357
+[  191.320544]  [<c07a53c7>] ? unknown_bootoption+0x0/0x19e
+[  191.320548]  [<c07a50aa>] ? i386_start_kernel+0xaa/0xb1
+[  191.320550] Code: 03 66 3d 00 03 0f 84 7c 02 00 00 83 c3 18 0f b6 03
+8b 4d e0 89 c3 83 e3 0f 6b c3 48 89 5d d8 8d 04 06 8d 50 0c 89 55 d0 8b
+40 20 <8b> 00 3b 01 0f 85 8e 02 00 00 f6 47 20 40 0f 84 29 ff ff ff 8b
+[  191.320634] EIP: [<fd2586d4>] ath_tx_start+0x474/0x770 [ath9k] SS:ESP
+0068:c0761a90
+[  191.320642] CR2: 0000000000000000
+[  191.320647] ---[ end trace 9296ef23b9076ece ]---
+[  191.320650] Kernel panic - not syncing: Fatal exception in interrupt
+
+Signed-off-by: Mohammed Shafi Shajakhan <mshajakhan at atheros.com>
+Signed-off-by: John W. Linville <linville at tuxdriver.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
+
+---
+ drivers/net/wireless/ath/ath9k/xmit.c |    4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+--- a/drivers/net/wireless/ath/ath9k/xmit.c
++++ b/drivers/net/wireless/ath/ath9k/xmit.c
+@@ -1699,8 +1699,8 @@ static void ath_tx_start_dma(struct ath_
+ 	u8 tidno;
+ 
+ 	spin_lock_bh(&txctl->txq->axq_lock);
+-
+-	if (ieee80211_is_data_qos(hdr->frame_control) && txctl->an) {
++	if ((sc->sc_flags & SC_OP_TXAGGR) && txctl->an &&
++		ieee80211_is_data_qos(hdr->frame_control)) {
+ 		tidno = ieee80211_get_qos_ctl(hdr)[0] &
+ 			IEEE80211_QOS_CTL_TID_MASK;
+ 		tid = ATH_AN_2_TID(txctl->an, tidno);

Added: dists/sid/linux-2.6/debian/patches/bugfix/all/cciss-fix-lost-command-issue.patch
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ dists/sid/linux-2.6/debian/patches/bugfix/all/cciss-fix-lost-command-issue.patch	Wed Apr  6 12:53:10 2011	(r17203)
@@ -0,0 +1,35 @@
+From 1ddd5049545e0aa1a0ed19bca4d9c9c3ce1ac8a2 Mon Sep 17 00:00:00 2001
+From: Bud Brown <bud.brown at redhat.com>
+Date: Wed, 23 Mar 2011 20:47:11 +0100
+Subject: cciss: fix lost command issue
+
+From: Bud Brown <bud.brown at redhat.com>
+
+commit 1ddd5049545e0aa1a0ed19bca4d9c9c3ce1ac8a2 upstream.
+
+Under certain workloads a command may seem to get lost. IOW, the Smart Array
+thinks all commands have been completed but we still have commands in our
+completion queue. This may lead to system instability, filesystems going
+read-only, or even panics depending on the affected filesystem. We add an
+extra read to force the write to complete.
+
+Testing shows this extra read avoids the problem.
+
+Signed-off-by: Mike Miller <mike.miller at hp.com>
+Signed-off-by: Jens Axboe <jaxboe at fusionio.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
+
+---
+ drivers/block/cciss.h |    1 +
+ 1 file changed, 1 insertion(+)
+
+--- a/drivers/block/cciss.h
++++ b/drivers/block/cciss.h
+@@ -222,6 +222,7 @@ static void SA5_submit_command( ctlr_inf
+ 			h->ctlr, c->busaddr);
+ #endif /* CCISS_DEBUG */
+          writel(c->busaddr, h->vaddr + SA5_REQUEST_PORT_OFFSET);
++	readl(h->vaddr + SA5_REQUEST_PORT_OFFSET);
+ 	 h->commands_outstanding++;
+ 	 if ( h->commands_outstanding > h->max_outstanding)
+ 		h->max_outstanding = h->commands_outstanding;

Added: dists/sid/linux-2.6/debian/patches/bugfix/all/pci-acpi-report-aspm-support-to-bios-if-not-disabled-from-command-line.patch
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ dists/sid/linux-2.6/debian/patches/bugfix/all/pci-acpi-report-aspm-support-to-bios-if-not-disabled-from-command-line.patch	Wed Apr  6 12:53:10 2011	(r17203)
@@ -0,0 +1,93 @@
+From 8b8bae901ce23addbdcdb54fa1696fb2d049feb5 Mon Sep 17 00:00:00 2001
+From: Rafael J. Wysocki <rjw at sisk.pl>
+Date: Sat, 5 Mar 2011 13:21:51 +0100
+Subject: PCI/ACPI: Report ASPM support to BIOS if not disabled from command line
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+From: Rafael J. Wysocki <rjw at sisk.pl>
+
+commit 8b8bae901ce23addbdcdb54fa1696fb2d049feb5 upstream.
+
+We need to distinguish the situation in which ASPM support is
+disabled from the command line or through .config from the situation
+in which it is disabled, because the hardware or BIOS can't handle
+it.  In the former case we should not report ASPM support to the BIOS
+through ACPI _OSC, but in the latter case we should do that.
+
+Introduce pcie_aspm_support_enabled() that can be used by
+acpi_pci_root_add() to determine whether or not it should report ASPM
+support to the BIOS through _OSC.
+
+References: https://bugzilla.kernel.org/show_bug.cgi?id=29722
+References: https://bugzilla.kernel.org/show_bug.cgi?id=20232
+Reported-and-tested-by: Ortwin Glück <odi at odi.ch>
+Reviewed-by: Kenji Kaneshige <kaneshige.kenji at jp.fujitsu.com>
+Tested-by: Kenji Kaneshige <kaneshige.kenji at jp.fujitsu.com>
+Signed-off-by: Rafael J. Wysocki <rjw at sisk.pl>
+Signed-off-by: Jesse Barnes <jbarnes at virtuousgeek.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
+
+---
+ drivers/acpi/pci_root.c |    2 +-
+ drivers/pci/pcie/aspm.c |    7 +++++++
+ include/linux/pci.h     |    7 +++----
+ 3 files changed, 11 insertions(+), 5 deletions(-)
+
+--- a/drivers/acpi/pci_root.c
++++ b/drivers/acpi/pci_root.c
+@@ -564,7 +564,7 @@ static int __devinit acpi_pci_root_add(s
+ 	/* Indicate support for various _OSC capabilities. */
+ 	if (pci_ext_cfg_avail(root->bus->self))
+ 		flags |= OSC_EXT_PCI_CONFIG_SUPPORT;
+-	if (pcie_aspm_enabled())
++	if (pcie_aspm_support_enabled())
+ 		flags |= OSC_ACTIVE_STATE_PWR_SUPPORT |
+ 			OSC_CLOCK_PWR_CAPABILITY_SUPPORT;
+ 	if (pci_msi_enabled())
+--- a/drivers/pci/pcie/aspm.c
++++ b/drivers/pci/pcie/aspm.c
+@@ -69,6 +69,7 @@ struct pcie_link_state {
+ };
+ 
+ static int aspm_disabled, aspm_force, aspm_clear_state;
++static bool aspm_support_enabled = true;
+ static DEFINE_MUTEX(aspm_lock);
+ static LIST_HEAD(link_list);
+ 
+@@ -896,6 +897,7 @@ static int __init pcie_aspm_disable(char
+ {
+ 	if (!strcmp(str, "off")) {
+ 		aspm_disabled = 1;
++		aspm_support_enabled = false;
+ 		printk(KERN_INFO "PCIe ASPM is disabled\n");
+ 	} else if (!strcmp(str, "force")) {
+ 		aspm_force = 1;
+@@ -930,3 +932,8 @@ int pcie_aspm_enabled(void)
+ }
+ EXPORT_SYMBOL(pcie_aspm_enabled);
+ 
++bool pcie_aspm_support_enabled(void)
++{
++	return aspm_support_enabled;
++}
++EXPORT_SYMBOL(pcie_aspm_support_enabled);
+--- a/include/linux/pci.h
++++ b/include/linux/pci.h
+@@ -1002,12 +1002,11 @@ extern bool pcie_ports_auto;
+ #endif
+ 
+ #ifndef CONFIG_PCIEASPM
+-static inline int pcie_aspm_enabled(void)
+-{
+-	return 0;
+-}
++static inline int pcie_aspm_enabled(void) { return 0; }
++static inline bool pcie_aspm_support_enabled(void) { return false; }
+ #else
+ extern int pcie_aspm_enabled(void);
++extern bool pcie_aspm_support_enabled(void);
+ #endif
+ 
+ #ifdef CONFIG_PCIEAER

Added: dists/sid/linux-2.6/debian/patches/bugfix/all/ses-avoid-kernel-panic-when-lun-0-is-not-mapped.patch
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ dists/sid/linux-2.6/debian/patches/bugfix/all/ses-avoid-kernel-panic-when-lun-0-is-not-mapped.patch	Wed Apr  6 12:53:10 2011	(r17203)
@@ -0,0 +1,45 @@
+From d1e12de804f9d8ad114786ca7c2ce593cba79891 Mon Sep 17 00:00:00 2001
+From: Krishnasamy, Somasundaram <Somasundaram.Krishnasamy at lsi.com>
+Date: Mon, 28 Feb 2011 18:13:22 -0500
+Subject: [SCSI] ses: Avoid kernel panic when lun 0 is not mapped
+
+From: Krishnasamy, Somasundaram <Somasundaram.Krishnasamy at lsi.com>
+
+commit d1e12de804f9d8ad114786ca7c2ce593cba79891 upstream.
+
+During device discovery, scsi mid layer sends INQUIRY command to LUN
+0. If the LUN 0 is not mapped to host, it creates a temporary
+scsi_device with LUN id 0 and sends REPORT_LUNS command to it. After
+the REPORT_LUNS succeeds, it walks through the LUN table and adds each
+LUN found to sysfs. At the end of REPORT_LUNS lun table scan, it will
+delete the temporary scsi_device of LUN 0.
+
+When scsi devices are added to sysfs, it calls add_dev function of all
+the registered class interfaces. If ses driver has been registered,
+ses_intf_add() of ses module will be called. This function calls
+scsi_device_enclosure() to check the inquiry data for EncServ
+bit. Since inquiry was not allocated for temporary LUN 0 scsi_device,
+it will cause NULL pointer exception.
+
+To fix the problem, sdev->inquiry is checked for NULL before reading it.
+
+Signed-off-by: Somasundaram Krishnasamy <Somasundaram.Krishnasamy at lsi.com>
+Signed-off-by: Babu Moger <babu.moger at lsi.com>
+Signed-off-by: James Bottomley <James.Bottomley at suse.de>
+Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
+
+---
+ include/scsi/scsi_device.h |    2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/include/scsi/scsi_device.h
++++ b/include/scsi/scsi_device.h
+@@ -461,7 +461,7 @@ static inline int scsi_device_qas(struct
+ }
+ static inline int scsi_device_enclosure(struct scsi_device *sdev)
+ {
+-	return sdev->inquiry[6] & (1<<6);
++	return sdev->inquiry ? (sdev->inquiry[6] & (1<<6)) : 1;
+ }
+ 
+ static inline int scsi_device_protection(struct scsi_device *sdev)

Modified: dists/sid/linux-2.6/debian/patches/series/3
==============================================================================
--- dists/sid/linux-2.6/debian/patches/series/3	Mon Apr  4 18:14:25 2011	(r17202)
+++ dists/sid/linux-2.6/debian/patches/series/3	Wed Apr  6 12:53:10 2011	(r17203)
@@ -3,3 +3,8 @@
 + bugfix/x86/Save-cr4-to-mmu_cr4_features-at-boot-time.patch
 + bugfix/all/net-appletalk-fix-atalk_release-use-after-free.patch
 + bugfix/all/appletalk-Fix-OOPS-in-atalk_release.patch
++ bugfix/all/alsa-fix-yet-another-race-in-disconnection.patch
++ bugfix/all/cciss-fix-lost-command-issue.patch
++ bugfix/all/ath9k-fix-kernel-panic-in-ar2427.patch
++ bugfix/all/ses-avoid-kernel-panic-when-lun-0-is-not-mapped.patch
++ bugfix/all/pci-acpi-report-aspm-support-to-bios-if-not-disabled-from-command-line.patch



More information about the Kernel-svn-changes mailing list