diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2010-11-12 20:17:09 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2010-11-12 20:17:09 -0500 |
commit | 80ef913f5e6a84551545016cea709f5e96d0cda6 (patch) | |
tree | 61796333896ac4878b47c825f8027c70bb3b8e19 | |
parent | 1c32ca9f63d2a103dd33eae72e5aff53a23fe650 (diff) | |
parent | f2543790875b088e2a58aa12ee1ac20a75d6126d (diff) |
Merge branch 'upstream-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jgarzik/libata-dev
* 'upstream-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jgarzik/libata-dev:
drivers/ata/pata_octeon_cf.c: delete double assignment
pata_legacy: fix CONFIG_PATA_WINBOND_VLB_MODULE test
libata: fix NULL sdev dereference race in atapi_qc_complete()
-rw-r--r-- | drivers/ata/libata-scsi.c | 5 | ||||
-rw-r--r-- | drivers/ata/pata_legacy.c | 2 | ||||
-rw-r--r-- | drivers/ata/pata_octeon_cf.c | 2 |
3 files changed, 5 insertions, 4 deletions
diff --git a/drivers/ata/libata-scsi.c b/drivers/ata/libata-scsi.c index d050e073e570..3f91c01c217f 100644 --- a/drivers/ata/libata-scsi.c +++ b/drivers/ata/libata-scsi.c | |||
@@ -2552,8 +2552,11 @@ static void atapi_qc_complete(struct ata_queued_cmd *qc) | |||
2552 | * | 2552 | * |
2553 | * If door lock fails, always clear sdev->locked to | 2553 | * If door lock fails, always clear sdev->locked to |
2554 | * avoid this infinite loop. | 2554 | * avoid this infinite loop. |
2555 | * | ||
2556 | * This may happen before SCSI scan is complete. Make | ||
2557 | * sure qc->dev->sdev isn't NULL before dereferencing. | ||
2555 | */ | 2558 | */ |
2556 | if (qc->cdb[0] == ALLOW_MEDIUM_REMOVAL) | 2559 | if (qc->cdb[0] == ALLOW_MEDIUM_REMOVAL && qc->dev->sdev) |
2557 | qc->dev->sdev->locked = 0; | 2560 | qc->dev->sdev->locked = 0; |
2558 | 2561 | ||
2559 | qc->scsicmd->result = SAM_STAT_CHECK_CONDITION; | 2562 | qc->scsicmd->result = SAM_STAT_CHECK_CONDITION; |
diff --git a/drivers/ata/pata_legacy.c b/drivers/ata/pata_legacy.c index eaf194138f21..6bd9425ba5ab 100644 --- a/drivers/ata/pata_legacy.c +++ b/drivers/ata/pata_legacy.c | |||
@@ -142,7 +142,7 @@ static int autospeed; /* Chip present which snoops speed changes */ | |||
142 | static int pio_mask = ATA_PIO4; /* PIO range for autospeed devices */ | 142 | static int pio_mask = ATA_PIO4; /* PIO range for autospeed devices */ |
143 | static int iordy_mask = 0xFFFFFFFF; /* Use iordy if available */ | 143 | static int iordy_mask = 0xFFFFFFFF; /* Use iordy if available */ |
144 | 144 | ||
145 | #ifdef PATA_WINBOND_VLB_MODULE | 145 | #ifdef CONFIG_PATA_WINBOND_VLB_MODULE |
146 | static int winbond = 1; /* Set to probe Winbond controllers, | 146 | static int winbond = 1; /* Set to probe Winbond controllers, |
147 | give I/O port if non standard */ | 147 | give I/O port if non standard */ |
148 | #else | 148 | #else |
diff --git a/drivers/ata/pata_octeon_cf.c b/drivers/ata/pata_octeon_cf.c index 74b829817891..fa1b95a9a7ff 100644 --- a/drivers/ata/pata_octeon_cf.c +++ b/drivers/ata/pata_octeon_cf.c | |||
@@ -653,8 +653,6 @@ static irqreturn_t octeon_cf_interrupt(int irq, void *dev_instance) | |||
653 | 653 | ||
654 | ap = host->ports[i]; | 654 | ap = host->ports[i]; |
655 | ocd = ap->dev->platform_data; | 655 | ocd = ap->dev->platform_data; |
656 | |||
657 | ocd = ap->dev->platform_data; | ||
658 | cf_port = ap->private_data; | 656 | cf_port = ap->private_data; |
659 | dma_int.u64 = | 657 | dma_int.u64 = |
660 | cvmx_read_csr(CVMX_MIO_BOOT_DMA_INTX(ocd->dma_engine)); | 658 | cvmx_read_csr(CVMX_MIO_BOOT_DMA_INTX(ocd->dma_engine)); |