6c3c3158a8
Now that we handle all the special commands using REQ_TYPE_ATA_TASKFILE rather than using the old REQ_TYPE_ATA_CMD model, we need to also emulate the lack of full taskfile data that comes with the old command model (ie when commands are generated with the HDIO_DRIVE_CMD ioctl rather than using the HDIO_DRIVE_TASK[FILE] ioctls). In particular, this means that we should handle command completion the more relaxed way that the old drive_cmd_intr() code did. It allows commands to finish early even if they don't use up all the data that we thought we had for them. This fixes a regression seen by Anders Eriksson where some SMART commands sent by smartd would cause a boot-time system hang on his machine because the IDE command handling code didn't realize that the command had completed. Tested-by: Anders Eriksson <aeriksson@fastmail.fm> Cc: Jens Axboe <jens.axboe@oracle.com> Cc: Ingo Molnar <mingo@elte.hu> Acked-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org> |
||
---|---|---|
.. | ||
arm | ||
cris | ||
h8300 | ||
legacy | ||
mips | ||
pci | ||
ppc | ||
ide-acpi.c | ||
ide-cd.c | ||
ide-cd.h | ||
ide-cd_ioctl.c | ||
ide-cd_verbose.c | ||
ide-disk.c | ||
ide-dma.c | ||
ide-floppy.c | ||
ide-generic.c | ||
ide-io.c | ||
ide-iops.c | ||
ide-lib.c | ||
ide-pnp.c | ||
ide-probe.c | ||
ide-proc.c | ||
ide-scan-pci.c | ||
ide-tape.c | ||
ide-taskfile.c | ||
ide-timing.h | ||
ide.c | ||
Kconfig | ||
Makefile | ||
setup-pci.c |