ide: fix locking for manual DMA enable/disable ("hdparm -d")
authorBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
Mon, 26 Mar 2007 21:03:19 +0000 (23:03 +0200)
committerBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
Mon, 26 Mar 2007 21:03:19 +0000 (23:03 +0200)
commit8799620400b0b1a4729d8be828b5bfb3d2a8db1a
tree4c5f3bb3360dddcc9638c4e92ddb7f1f2e0b1578
parentf68d9320cd06fdec19735143b42e5197b63165b4
ide: fix locking for manual DMA enable/disable ("hdparm -d")

Since hwif->ide_dma_check and hwif->ide_dma_on never queue any commands
(ide_config_drive_speed() sets transfer mode using polling and has no error
recovery) we are safe with setting hwgroup->busy for the time while DMA
setting for a drive is changed (so it won't race against I/O commands in fly).

I audited briefly all ->ide_dma_check/->ide_dma_on/->tuneproc/->speedproc
implementations and they all look OK wrt to this change.

This patch finally allowed me to close kernel bugzilla bug #8169
(once again thanks to Patrick Horn for reporting the issue & testing patches).

Cc: Sergei Shtylyov <sshtylyov@ru.mvista.com>
Cc: Alan Cox <alan@lxorguk.ukuu.org.uk>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
drivers/ide/ide.c