diff options
author | Maxime Bizon <mbizon@freebox.fr> | 2011-03-16 14:58:32 +0100 |
---|---|---|
committer | Jeff Garzik <jgarzik@pobox.com> | 2011-04-24 11:34:05 -0400 |
commit | 7b3a24c57d2eeda8dba9c205342b12689c4679f9 (patch) | |
tree | f4be496d3c0008c6b601b75616383bb735bc9fd2 /drivers/ata/libata-core.c | |
parent | ae01b2493c3bf03c504c32ac4ebb01d528508db3 (diff) | |
download | op-kernel-dev-7b3a24c57d2eeda8dba9c205342b12689c4679f9.zip op-kernel-dev-7b3a24c57d2eeda8dba9c205342b12689c4679f9.tar.gz |
ahci: don't enable port irq before handler is registered
The ahci_pmp_attach() & ahci_pmp_detach() unmask port irqs, but they
are also called during port initialization, before ahci host irq
handler is registered. On ce4100 platform, this sometimes triggers
"irq 4: nobody cared" message when loading driver.
Fixed this by not touching the register if the port is in frozen
state, and mark all uninitialized port as frozen.
Signed-off-by: Maxime Bizon <mbizon@freebox.fr>
Acked-by: Tejun Heo <tj@kernel.org>
Cc: stable@kernel.org
Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
Diffstat (limited to 'drivers/ata/libata-core.c')
-rw-r--r-- | drivers/ata/libata-core.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/ata/libata-core.c b/drivers/ata/libata-core.c index 423c0a6..5096b2a 100644 --- a/drivers/ata/libata-core.c +++ b/drivers/ata/libata-core.c @@ -5480,7 +5480,7 @@ struct ata_port *ata_port_alloc(struct ata_host *host) if (!ap) return NULL; - ap->pflags |= ATA_PFLAG_INITIALIZING; + ap->pflags |= ATA_PFLAG_INITIALIZING | ATA_PFLAG_FROZEN; ap->lock = &host->lock; ap->print_id = -1; ap->host = host; |