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)); |
