Commit 40df43a1 authored by Linus Torvalds's avatar Linus Torvalds

Merge tag 'upstream-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jgarzik/libata-dev

Pull libara fixes from Jeff Garzik:

 - Notable regression fix.  Forbid dynamic runtime power management by
   default, due to issues with suspend/resume and hotplug.

   To re-enable, use sysfs.

 - make ata_print_id atomic, due to ref from multiple contexts

 - sata_mv warning fix

 - ata_piix new PCI ID

* tag 'upstream-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jgarzik/libata-dev:
  libata: forbid port runtime pm by default, fixing regression
  libata: make ata_print_id atomic
  sata_mv: silence an uninitialized variable warning
  ata_piix: IDE-mode SATA patch for Intel DH89xxCC DeviceIDs
parents 9ecf8c0d 0c8d32c2
...@@ -329,6 +329,8 @@ static const struct pci_device_id piix_pci_tbl[] = { ...@@ -329,6 +329,8 @@ static const struct pci_device_id piix_pci_tbl[] = {
{ 0x8086, 0x8c08, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich8_2port_sata }, { 0x8086, 0x8c08, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich8_2port_sata },
/* SATA Controller IDE (Lynx Point) */ /* SATA Controller IDE (Lynx Point) */
{ 0x8086, 0x8c09, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich8_2port_sata }, { 0x8086, 0x8c09, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich8_2port_sata },
/* SATA Controller IDE (DH89xxCC) */
{ 0x8086, 0x2326, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich8_2port_sata },
{ } /* terminate list */ { } /* terminate list */
}; };
......
...@@ -95,7 +95,7 @@ static unsigned int ata_dev_set_xfermode(struct ata_device *dev); ...@@ -95,7 +95,7 @@ static unsigned int ata_dev_set_xfermode(struct ata_device *dev);
static void ata_dev_xfermask(struct ata_device *dev); static void ata_dev_xfermask(struct ata_device *dev);
static unsigned long ata_dev_blacklisted(const struct ata_device *dev); static unsigned long ata_dev_blacklisted(const struct ata_device *dev);
unsigned int ata_print_id = 1; atomic_t ata_print_id = ATOMIC_INIT(1);
struct ata_force_param { struct ata_force_param {
const char *name; const char *name;
...@@ -6029,7 +6029,7 @@ int ata_host_register(struct ata_host *host, struct scsi_host_template *sht) ...@@ -6029,7 +6029,7 @@ int ata_host_register(struct ata_host *host, struct scsi_host_template *sht)
/* give ports names and add SCSI hosts */ /* give ports names and add SCSI hosts */
for (i = 0; i < host->n_ports; i++) for (i = 0; i < host->n_ports; i++)
host->ports[i]->print_id = ata_print_id++; host->ports[i]->print_id = atomic_inc_return(&ata_print_id);
/* Create associated sysfs transport objects */ /* Create associated sysfs transport objects */
......
...@@ -3843,7 +3843,7 @@ int ata_sas_async_port_init(struct ata_port *ap) ...@@ -3843,7 +3843,7 @@ int ata_sas_async_port_init(struct ata_port *ap)
int rc = ap->ops->port_start(ap); int rc = ap->ops->port_start(ap);
if (!rc) { if (!rc) {
ap->print_id = ata_print_id++; ap->print_id = atomic_inc_return(&ata_print_id);
__ata_port_probe(ap); __ata_port_probe(ap);
} }
...@@ -3867,7 +3867,7 @@ int ata_sas_port_init(struct ata_port *ap) ...@@ -3867,7 +3867,7 @@ int ata_sas_port_init(struct ata_port *ap)
int rc = ap->ops->port_start(ap); int rc = ap->ops->port_start(ap);
if (!rc) { if (!rc) {
ap->print_id = ata_print_id++; ap->print_id = atomic_inc_return(&ata_print_id);
rc = ata_port_probe(ap); rc = ata_port_probe(ap);
} }
......
...@@ -294,6 +294,7 @@ int ata_tport_add(struct device *parent, ...@@ -294,6 +294,7 @@ int ata_tport_add(struct device *parent,
device_enable_async_suspend(dev); device_enable_async_suspend(dev);
pm_runtime_set_active(dev); pm_runtime_set_active(dev);
pm_runtime_enable(dev); pm_runtime_enable(dev);
pm_runtime_forbid(dev);
transport_add_device(dev); transport_add_device(dev);
transport_configure_device(dev); transport_configure_device(dev);
......
...@@ -53,7 +53,7 @@ enum { ...@@ -53,7 +53,7 @@ enum {
ATA_DNXFER_QUIET = (1 << 31), ATA_DNXFER_QUIET = (1 << 31),
}; };
extern unsigned int ata_print_id; extern atomic_t ata_print_id;
extern int atapi_passthru16; extern int atapi_passthru16;
extern int libata_fua; extern int libata_fua;
extern int libata_noacpi; extern int libata_noacpi;
......
...@@ -4025,7 +4025,8 @@ static int mv_platform_probe(struct platform_device *pdev) ...@@ -4025,7 +4025,8 @@ static int mv_platform_probe(struct platform_device *pdev)
struct ata_host *host; struct ata_host *host;
struct mv_host_priv *hpriv; struct mv_host_priv *hpriv;
struct resource *res; struct resource *res;
int n_ports, rc; int n_ports = 0;
int rc;
ata_print_version_once(&pdev->dev, DRV_VERSION); ata_print_version_once(&pdev->dev, DRV_VERSION);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment