libata: fix reading concurrent positioning ranges log
authorTyler Erickson <tyler.erickson@seagate.com>
Thu, 2 Jun 2022 22:51:11 +0000 (16:51 -0600)
committerDamien Le Moal <damien.lemoal@opensource.wdc.com>
Wed, 8 Jun 2022 03:19:08 +0000 (12:19 +0900)
commitc745dfc541e78428ba3986f1d17fe1dfdaca8184
treebd733a689379dd4baeb00bcbb73f1e9d5a0182dc
parent10d6bdf532902be1d8aa5900b3c03c5671612aa2
libata: fix reading concurrent positioning ranges log

The concurrent positioning ranges log is not a fixed size and may depend
on how many ranges are supported by the device. This patch uses the size
reported in the GPL directory to determine the number of pages supported
by the device before attempting to read this log page.

This resolves this error from the dmesg output:
    ata6.00: Read log 0x47 page 0x00 failed, Emask 0x1

Cc: stable@vger.kernel.org
Fixes: fe22e1c2f705 ("libata: support concurrent positioning ranges log")
Signed-off-by: Tyler Erickson <tyler.erickson@seagate.com>
Reviewed-by: Muhammad Ahmad <muhammad.ahmad@seagate.com>
Tested-by: Michael English <michael.english@seagate.com>
Signed-off-by: Damien Le Moal <damien.lemoal@opensource.wdc.com>
drivers/ata/libata-core.c