diff options
author | Len Brown <len.brown@intel.com> | 2009-01-09 09:39:43 +0100 |
---|---|---|
committer | Len Brown <len.brown@intel.com> | 2009-01-09 09:39:43 +0100 |
commit | b2576e1d4408e134e2188c967b1f28af39cd79d4 (patch) | |
tree | 004f3c82faab760f304ce031d6d2f572e7746a50 /drivers/ide/umc8672.c | |
parent | Merge branch 'suspend' into release (diff) | |
parent | Merge branch 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tyt... (diff) | |
download | linux-b2576e1d4408e134e2188c967b1f28af39cd79d4.tar.xz linux-b2576e1d4408e134e2188c967b1f28af39cd79d4.zip |
Merge branch 'linus' into release
Diffstat (limited to 'drivers/ide/umc8672.c')
-rw-r--r-- | drivers/ide/umc8672.c | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/drivers/ide/umc8672.c b/drivers/ide/umc8672.c index 1da076e0c917..0608d41fb6d0 100644 --- a/drivers/ide/umc8672.c +++ b/drivers/ide/umc8672.c @@ -106,19 +106,21 @@ static void umc_set_speeds(u8 speeds[]) static void umc_set_pio_mode(ide_drive_t *drive, const u8 pio) { - ide_hwif_t *hwif = drive->hwif; - unsigned long flags; + ide_hwif_t *hwif = drive->hwif, *mate = hwif->mate; + unsigned long uninitialized_var(flags); printk("%s: setting umc8672 to PIO mode%d (speed %d)\n", drive->name, pio, pio_to_umc[pio]); - spin_lock_irqsave(&ide_lock, flags); - if (hwif->mate && hwif->mate->hwgroup->handler) { + if (mate) + spin_lock_irqsave(&mate->lock, flags); + if (mate && mate->handler) { printk(KERN_ERR "umc8672: other interface is busy: exiting tune_umc()\n"); } else { current_speeds[drive->name[2] - 'a'] = pio_to_umc[pio]; umc_set_speeds(current_speeds); } - spin_unlock_irqrestore(&ide_lock, flags); + if (mate) + spin_unlock_irqrestore(&mate->lock, flags); } static const struct ide_port_ops umc8672_port_ops = { |