From: Greg KH <gregkh@suse.de>
To: linux-kernel@vger.kernel.org, stable@kernel.org
Cc: stable-review@kernel.org, torvalds@linux-foundation.org,
akpm@linux-foundation.org, alan@lxorguk.ukuu.org.uk,
Tejun Heo <tj@kernel.org>, Jeff Garzik <jgarzik@pobox.com>
Subject: [26/55] libata: Implement ATA_FLAG_NO_DIPM and apply it to mcp65
Date: Fri, 29 Apr 2011 11:55:49 -0700 [thread overview]
Message-ID: <20110429185655.087982902@clark.kroah.org> (raw)
In-Reply-To: <20110429185706.GA12824@kroah.com>
2.6.38-stable review patch. If anyone has any objections, please let us know.
------------------
From: Tejun Heo <tj@kernel.org>
commit ae01b2493c3bf03c504c32ac4ebb01d528508db3 upstream.
NVIDIA mcp65 familiy of controllers cause command timeouts when DIPM
is used. Implement ATA_FLAG_NO_DIPM and apply it.
This problem was reported by Stefan Bader in the following thread.
http://thread.gmane.org/gmane.linux.ide/48841
stable: applicable to 2.6.37 and 38.
Signed-off-by: Tejun Heo <tj@kernel.org>
Reported-by: Stefan Bader <stefan.bader@canonical.com>
Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
---
drivers/ata/ahci.c | 2 +-
drivers/ata/libata-eh.c | 6 ++++--
include/linux/libata.h | 1 +
3 files changed, 6 insertions(+), 3 deletions(-)
--- a/drivers/ata/ahci.c
+++ b/drivers/ata/ahci.c
@@ -150,7 +150,7 @@ static const struct ata_port_info ahci_p
{
AHCI_HFLAGS (AHCI_HFLAG_NO_FPDMA_AA | AHCI_HFLAG_NO_PMP |
AHCI_HFLAG_YES_NCQ),
- .flags = AHCI_FLAG_COMMON,
+ .flags = AHCI_FLAG_COMMON | ATA_FLAG_NO_DIPM,
.pio_mask = ATA_PIO4,
.udma_mask = ATA_UDMA6,
.port_ops = &ahci_ops,
--- a/drivers/ata/libata-eh.c
+++ b/drivers/ata/libata-eh.c
@@ -3276,6 +3276,7 @@ static int ata_eh_set_lpm(struct ata_lin
struct ata_eh_context *ehc = &link->eh_context;
struct ata_device *dev, *link_dev = NULL, *lpm_dev = NULL;
enum ata_lpm_policy old_policy = link->lpm_policy;
+ bool no_dipm = ap->flags & ATA_FLAG_NO_DIPM;
unsigned int hints = ATA_LPM_EMPTY | ATA_LPM_HIPM;
unsigned int err_mask;
int rc;
@@ -3292,7 +3293,7 @@ static int ata_eh_set_lpm(struct ata_lin
*/
ata_for_each_dev(dev, link, ENABLED) {
bool hipm = ata_id_has_hipm(dev->id);
- bool dipm = ata_id_has_dipm(dev->id);
+ bool dipm = ata_id_has_dipm(dev->id) && !no_dipm;
/* find the first enabled and LPM enabled devices */
if (!link_dev)
@@ -3349,7 +3350,8 @@ static int ata_eh_set_lpm(struct ata_lin
/* host config updated, enable DIPM if transitioning to MIN_POWER */
ata_for_each_dev(dev, link, ENABLED) {
- if (policy == ATA_LPM_MIN_POWER && ata_id_has_dipm(dev->id)) {
+ if (policy == ATA_LPM_MIN_POWER && !no_dipm &&
+ ata_id_has_dipm(dev->id)) {
err_mask = ata_dev_set_feature(dev,
SETFEATURES_SATA_ENABLE, SATA_DIPM);
if (err_mask && err_mask != AC_ERR_DEV) {
--- a/include/linux/libata.h
+++ b/include/linux/libata.h
@@ -203,6 +203,7 @@ enum {
* management */
ATA_FLAG_SW_ACTIVITY = (1 << 22), /* driver supports sw activity
* led */
+ ATA_FLAG_NO_DIPM = (1 << 23), /* host not happy with DIPM */
/* bits 24:31 of ap->flags are reserved for LLD specific flags */
next prev parent reply other threads:[~2011-04-29 18:58 UTC|newest]
Thread overview: 62+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-04-29 18:57 [00/55] 2.6.38.5-stable review Greg KH
2011-04-29 18:55 ` [01/55] ath9k_hw: fix stopping rx DMA during resets Greg KH
2011-04-29 18:55 ` [02/55] netxen: limit skb frags for non tso packet Greg KH
2011-04-29 18:55 ` [03/55] ath: add missing regdomain pair 0x5c mapping Greg KH
2011-04-29 18:55 ` [04/55] block, blk-sysfs: Fix an err return path in blk_register_queue() Greg KH
2011-04-29 18:55 ` [05/55] p54: Initialize extra_len in p54_tx_80211 Greg KH
2011-04-29 18:55 ` [06/55] qlcnic: limit skb frags for non tso packet Greg KH
2011-04-29 18:55 ` [07/55] nfsd4: fix struct file leak on delegation Greg KH
2011-04-29 18:55 ` [08/55] nfsd4: Fix filp leak Greg KH
2011-04-29 18:55 ` [09/55] virtio: Decrement avail idx on buffer detach Greg KH
2011-04-29 18:55 ` [10/55] x86, gart: Set DISTLBWALKPRB bit always Greg KH
2011-04-29 18:55 ` [11/55] x86, gart: Make sure GART does not map physmem above 1TB Greg KH
2011-04-29 18:55 ` [12/55] intel-iommu: Fix use after release during device attach Greg KH
2011-04-29 18:55 ` [13/55] intel-iommu: Unlink domain from iommu Greg KH
2011-04-29 18:55 ` [14/55] intel-iommu: Fix get_domain_for_dev() error path Greg KH
2011-04-29 18:55 ` [15/55] drm/radeon/kms: pll tweaks for r7xx Greg KH
2011-04-29 18:55 ` [16/55] drm/nouveau: fix notifier memory corruption bug Greg KH
2011-04-29 18:55 ` [17/55] drm/radeon/kms: fix bad shift in atom iio table parser Greg KH
2011-04-29 18:55 ` [18/55] drm/i915: Sanitize the output registers after resume Greg KH
2011-04-29 18:55 ` [19/55] drm/i915/tv: Remember the detected TV type Greg KH
2011-04-29 18:55 ` [20/55] tty/n_gsm: fix bug in CRC calculation for gsm1 mode Greg KH
2011-04-29 18:55 ` [21/55] serial/imx: read cts state only after acking cts change irq Greg KH
2011-04-29 18:55 ` [22/55] ASoC: Fix output PGA enabling in wm_hubs CODECs Greg KH
2011-04-29 18:55 ` [23/55] ASoC: codecs: JZ4740: Fix OOPS Greg KH
2011-04-29 18:55 ` [24/55] ALSA: hda - Add a fix-up for Acer dmic with ALC271x codec Greg KH
2011-04-29 18:55 ` [25/55] ahci: dont enable port irq before handler is registered Greg KH
2011-04-29 18:55 ` Greg KH [this message]
2011-04-29 18:55 ` [27/55] kconfig: Avoid buffer underrun in choice input Greg KH
2011-04-29 18:55 ` [28/55] UBIFS: fix master node recovery Greg KH
2011-04-29 18:55 ` [29/55] ideapad: read brightness setting on brightness key notify Greg KH
2011-04-29 18:55 ` [30/55] ACPI battery: fribble sysfs files from a resume notifier Greg KH
2011-04-29 18:55 ` [31/55] ath9k_hw: partially revert "fix dma descriptor rx error bit parsing" Greg KH
2011-04-29 18:55 ` [32/55] UBIFS: fix false space checking failure Greg KH
2011-04-29 18:55 ` [33/55] [S390] kvm-390: Let kernel exit SIE instruction on work Greg KH
2011-04-29 18:55 ` [34/55] [S390] pfault: fix token handling Greg KH
2011-04-29 18:55 ` [35/55] ACPI / PM: Avoid infinite recurrence while registering power resources Greg KH
2011-04-29 18:55 ` [36/55] [PARISC] slub: fix panic with DISCONTIGMEM Greg KH
2011-05-02 20:04 ` [Stable-review] " Ben Hutchings
2011-05-02 21:44 ` Michael Schmitz
2011-05-03 22:46 ` David Rientjes
2011-05-03 23:17 ` Ben Hutchings
2011-05-03 23:20 ` James Bottomley
2011-05-03 23:57 ` David Rientjes
2011-04-29 18:56 ` [37/55] [PARISC] set memory ranges in N_NORMAL_MEMORY when onlined Greg KH
2011-04-29 18:56 ` [38/55] [media] FLEXCOP-PCI: fix __xlate_proc_name-warning for flexcop-pci Greg KH
2011-04-29 18:56 ` [39/55] virtio: console: Enable call to hvc_remove() on console port remove Greg KH
2011-04-29 18:56 ` [40/55] oom: use pte pages in OOM score Greg KH
2011-04-29 18:56 ` [41/55] mm: check if PTE is already allocated during page fault Greg KH
2011-04-29 18:56 ` [42/55] mm: thp: fix /dev/zero MAP_PRIVATE and vm_flags cleanups Greg KH
2011-04-29 18:56 ` [43/55] m68k/mm: Set all online nodes in N_NORMAL_MEMORY Greg KH
2011-04-29 18:56 ` [44/55] vfs: avoid large kmalloc()s for the fdtable Greg KH
2011-04-29 18:56 ` [45/55] nfs: dont lose MS_SYNCHRONOUS on remount of noac mount Greg KH
2011-04-29 18:56 ` [46/55] NFSv4.1: Ensure state manager thread dies on last umount Greg KH
2011-04-29 18:56 ` [47/55] um: mdd support for 64 bit atomic operations Greg KH
2011-04-29 18:56 ` [48/55] drm: select FRAMEBUFFER_CONSOLE_PRIMARY if we have FRAMEBUFFER_CONSOLE Greg KH
2011-04-29 18:56 ` [49/55] agp: fix arbitrary kernel memory writes Greg KH
2011-04-29 18:56 ` [50/55] agp: fix OOM and buffer overflow Greg KH
2011-04-29 18:56 ` [51/55] iwlwifi: do not set tx power when channel is changing Greg KH
2011-04-29 18:56 ` [52/55] iwl3945: do not deprecate software scan Greg KH
2011-04-29 18:56 ` [53/55] iwl3945: disable hw scan by default Greg KH
2011-04-29 18:56 ` [54/55] iwlegacy: fix tx_power initialization Greg KH
2011-04-29 18:56 ` [55/55] Input: xen-kbdfront - fix mouse getting stuck after save/restore Greg KH
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20110429185655.087982902@clark.kroah.org \
--to=gregkh@suse.de \
--cc=akpm@linux-foundation.org \
--cc=alan@lxorguk.ukuu.org.uk \
--cc=jgarzik@pobox.com \
--cc=linux-kernel@vger.kernel.org \
--cc=stable-review@kernel.org \
--cc=stable@kernel.org \
--cc=tj@kernel.org \
--cc=torvalds@linux-foundation.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®