summaryrefslogtreecommitdiffstats
path: root/drivers/ata/sata_vsc.c
diff options
context:
space:
mode:
authorJens Axboe <axboe@kernel.dk>2018-09-20 08:30:55 -0600
committerJens Axboe <axboe@kernel.dk>2018-09-20 08:30:55 -0600
commit7ce5c8cd753f9afa8e79e9ec40351998e354f239 (patch)
treee96780b5a38b979bc8555717c5eb798edc171017 /drivers/ata/sata_vsc.c
parentb228ba1cb95afbaeeb86cf06cd9fd6f6369c3b14 (diff)
downloadlinux-7ce5c8cd753f9afa8e79e9ec40351998e354f239.tar.bz2
libata: mask swap internal and hardware tag
hen we're comparing the hardware completion mask passed in from the driver with the internal tag pending mask, we need to account for the fact that the internal tag is different from the hardware tag. If not, then we can end up either prematurely completing the internal tag (since it's not set in the hw mask), or simply flag an error: ata2: illegal qc_active transition (100000000->00000001) If the internal tag is set, then swap that with the hardware tag in this case before comparing with what the hardware reports. Fixes: 28361c403683 ("libata: add extra internal command") Buglink: https://bugzilla.kernel.org/show_bug.cgi?id=201151 Cc: stable@vger.kernel.org Reported-by: Paul Sbarra <sbarra.paul@gmail.com> Tested-by: Paul Sbarra <sbarra.paul@gmail.com> Signed-off-by: Jens Axboe <axboe@kernel.dk>
Diffstat (limited to 'drivers/ata/sata_vsc.c')
0 files changed, 0 insertions, 0 deletions