]> git.karo-electronics.de Git - karo-tx-linux.git/commit
sata_svw: check DMA start bit before reset
authorDavid Milburn <dmilburn@redhat.com>
Mon, 29 Oct 2012 23:00:22 +0000 (18:00 -0500)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 3 Dec 2012 19:38:13 +0000 (11:38 -0800)
commit7e351dcf6764e9d6ab6c12efef6bace6eeeb2b36
treeaca0e45067d024c1323a8682d81a2778efcaba82
parent2c531aa6d24cc8372c6aa4c0993309186dfb66af
sata_svw: check DMA start bit before reset

commit b03e66a6be91f8389fcd902ab6c1563db1c9c06b upstream.

If kdump is triggered with pending IO, controller may not respond causing
kdump to fail.

http://marc.info/?l=linux-ide&m=133032255424658&w=2

During error recovery ata_do_dev_read_id never completes due hang
in mmio_insw.

ata_do_dev_read_id
 ata_sff_data_xfer
  ioread16_rep
   mmio_insw

if DMA start bit is cleared before reset, PIO command is successful
and kdump succeeds.

Signed-off-by: David Milburn <dmilburn@redhat.com>
Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
Cc: CAI Qian <caiqian@redhat.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/ata/sata_svw.c