]> git.baikalelectronics.ru Git - kernel.git/commit
ide: fix ->io_32bit race in ide_taskfile_ioctl()
authorTejun Heo <htejun@gmail.com>
Sat, 26 Jan 2008 19:13:10 +0000 (20:13 +0100)
committerBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
Sat, 26 Jan 2008 19:13:10 +0000 (20:13 +0100)
commitb684b505ad5655cc1da7b782dbf9895996211aba
tree6c3681f06b078626aeeb8de1e28bbdd458f95c70
parent8d22216a48a61630f1ca5831b7e6d574d1346cd5
ide: fix ->io_32bit race in ide_taskfile_ioctl()

In ide_taskfile_ioctl(), there was a race condition involving
drive->io_32bit.  It was cleared and restored during ioctl
requests but there was no synchronization with other requests.
So, other requests could execute with the altered ->io_32bit
setting or updated drive->io_32bit could be overwritten by
ide_taskfile_ioctl().

This patch adds IDE_TFLAG_IO_16BIT flag to indicate to
ide_pio_datablock() that 16-bit I/O is needed regardless of
drive->io_32bit settting.

Bart:
- ported it over recent IDE changes

Signed-off-by: Tejun Heo <htejun@gmail.com>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
drivers/ide/ide-taskfile.c
include/linux/ide.h