Back in 06f6c4c6c3e8 ("ata: libata: add missing ata_identify_page_supported() calls") a read of ATA_LOG_DIRECTORY page was added. This caused the SATADOM-ML 3ME to lock up.
In 636f6e2af4fb ("libata: add horkage for missing Identify Device log") a flag was added to cache if a device supports this or not.
This adds a blacklist entry which flags that these devices doesn't support that call and shouldn't be issued that call.
Cc: stable@vger.kernel.org # v5.10+ Signed-off-by: Anton Lundin glance@acc.umu.se Depends-on: 636f6e2af4fb ("libata: add horkage for missing Identify Device log") --- drivers/ata/libata-core.c | 7 +++++++ 1 file changed, 7 insertions(+)
diff --git a/drivers/ata/libata-core.c b/drivers/ata/libata-core.c index 87d36b29ca5f..e024af9f33d0 100644 --- a/drivers/ata/libata-core.c +++ b/drivers/ata/libata-core.c @@ -4070,6 +4070,13 @@ static const struct ata_blacklist_entry ata_device_blacklist [] = { { "WDC WD3000JD-*", NULL, ATA_HORKAGE_WD_BROKEN_LPM }, { "WDC WD3200JD-*", NULL, ATA_HORKAGE_WD_BROKEN_LPM },
+ /* + * This sata dom goes on a walkabout when it sees the + * ATA_LOG_DIRECTORY read request so ensure we don't issue such a + * request to these devices. + */ + { "SATADOM-ML 3ME", NULL, ATA_HORKAGE_NO_ID_DEV_LOG }, + /* End Marker */ { } };
On 2/2/22 19:05, Anton Lundin wrote:
Back in 06f6c4c6c3e8 ("ata: libata: add missing ata_identify_page_supported() calls") a read of ATA_LOG_DIRECTORY page was added. This caused the SATADOM-ML 3ME to lock up.
In 636f6e2af4fb ("libata: add horkage for missing Identify Device log") a flag was added to cache if a device supports this or not.
This adds a blacklist entry which flags that these devices doesn't support that call and shouldn't be issued that call.
Cc: stable@vger.kernel.org # v5.10+ Signed-off-by: Anton Lundin glance@acc.umu.se Depends-on: 636f6e2af4fb ("libata: add horkage for missing Identify Device log")
drivers/ata/libata-core.c | 7 +++++++ 1 file changed, 7 insertions(+)
diff --git a/drivers/ata/libata-core.c b/drivers/ata/libata-core.c index 87d36b29ca5f..e024af9f33d0 100644 --- a/drivers/ata/libata-core.c +++ b/drivers/ata/libata-core.c @@ -4070,6 +4070,13 @@ static const struct ata_blacklist_entry ata_device_blacklist [] = { { "WDC WD3000JD-*", NULL, ATA_HORKAGE_WD_BROKEN_LPM }, { "WDC WD3200JD-*", NULL, ATA_HORKAGE_WD_BROKEN_LPM },
- /*
* This sata dom goes on a walkabout when it sees the
* ATA_LOG_DIRECTORY read request so ensure we don't issue such a
* request to these devices.
*/
- { "SATADOM-ML 3ME", NULL, ATA_HORKAGE_NO_ID_DEV_LOG },
- /* End Marker */ { }
};
Can you try the attached patch ?
I think it is important to confirm if the lockup on your drive happens due to reads of the log directory log page or due to reads of the identify device log page. The attached patch prevents the former, your patch prevents the latter. If your patch is all that is needed, then it is good, modulo some rephrasing of the commit message and comments.
On 02 February, 2022 - Damien Le Moal wrote:
On 2/2/22 19:05, Anton Lundin wrote:
Back in 06f6c4c6c3e8 ("ata: libata: add missing ata_identify_page_supported() calls") a read of ATA_LOG_DIRECTORY page was added. This caused the SATADOM-ML 3ME to lock up.
In 636f6e2af4fb ("libata: add horkage for missing Identify Device log") a flag was added to cache if a device supports this or not.
This adds a blacklist entry which flags that these devices doesn't support that call and shouldn't be issued that call.
Cc: stable@vger.kernel.org # v5.10+ Signed-off-by: Anton Lundin glance@acc.umu.se Depends-on: 636f6e2af4fb ("libata: add horkage for missing Identify Device log")
drivers/ata/libata-core.c | 7 +++++++ 1 file changed, 7 insertions(+)
diff --git a/drivers/ata/libata-core.c b/drivers/ata/libata-core.c index 87d36b29ca5f..e024af9f33d0 100644 --- a/drivers/ata/libata-core.c +++ b/drivers/ata/libata-core.c @@ -4070,6 +4070,13 @@ static const struct ata_blacklist_entry ata_device_blacklist [] = { { "WDC WD3000JD-*", NULL, ATA_HORKAGE_WD_BROKEN_LPM }, { "WDC WD3200JD-*", NULL, ATA_HORKAGE_WD_BROKEN_LPM },
- /*
* This sata dom goes on a walkabout when it sees the
* ATA_LOG_DIRECTORY read request so ensure we don't issue such a
* request to these devices.
*/
- { "SATADOM-ML 3ME", NULL, ATA_HORKAGE_NO_ID_DEV_LOG },
- /* End Marker */ { }
};
Can you try the attached patch ?
I think it is important to confirm if the lockup on your drive happens due to reads of the log directory log page or due to reads of the identify device log page. The attached patch prevents the former, your patch prevents the latter. If your patch is all that is needed, then it is good, modulo some rephrasing of the commit message and comments.
This patch also fixes the issue with these devices. From what I've previously concluded is that nothing else requests the log directory log page on these devices.
//Anton
linux-stable-mirror@lists.linaro.org