Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Merge tag 'ata-5.17-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/dlemoal/libata

Pull ata fix from Damien Le Moal:
"A single patch from me, to fix a bug that is causing boot issues in
the field (reports of problems with Fedora 35).

The bug affects mostly old-ish drives that have issues with read log
page command handling"

* tag 'ata-5.17-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/dlemoal/libata:
ata: libata-core: Fix ata_dev_config_cpr()

+7 -9
+6 -8
drivers/ata/libata-core.c
··· 2448 2448 struct ata_cpr_log *cpr_log = NULL; 2449 2449 u8 *desc, *buf = NULL; 2450 2450 2451 - if (!ata_identify_page_supported(dev, 2452 - ATA_LOG_CONCURRENT_POSITIONING_RANGES)) 2451 + if (ata_id_major_version(dev->id) < 11 || 2452 + !ata_log_supported(dev, ATA_LOG_CONCURRENT_POSITIONING_RANGES)) 2453 2453 goto out; 2454 2454 2455 2455 /* 2456 - * Read IDENTIFY DEVICE data log, page 0x47 2457 - * (concurrent positioning ranges). We can have at most 255 32B range 2458 - * descriptors plus a 64B header. 2456 + * Read the concurrent positioning ranges log (0x47). We can have at 2457 + * most 255 32B range descriptors plus a 64B header. 2459 2458 */ 2460 2459 buf_len = (64 + 255 * 32 + 511) & ~511; 2461 2460 buf = kzalloc(buf_len, GFP_KERNEL); 2462 2461 if (!buf) 2463 2462 goto out; 2464 2463 2465 - err_mask = ata_read_log_page(dev, ATA_LOG_IDENTIFY_DEVICE, 2466 - ATA_LOG_CONCURRENT_POSITIONING_RANGES, 2467 - buf, buf_len >> 9); 2464 + err_mask = ata_read_log_page(dev, ATA_LOG_CONCURRENT_POSITIONING_RANGES, 2465 + 0, buf, buf_len >> 9); 2468 2466 if (err_mask) 2469 2467 goto out; 2470 2468
+1 -1
include/linux/ata.h
··· 324 324 ATA_LOG_NCQ_NON_DATA = 0x12, 325 325 ATA_LOG_NCQ_SEND_RECV = 0x13, 326 326 ATA_LOG_IDENTIFY_DEVICE = 0x30, 327 + ATA_LOG_CONCURRENT_POSITIONING_RANGES = 0x47, 327 328 328 329 /* Identify device log pages: */ 329 330 ATA_LOG_SECURITY = 0x06, 330 331 ATA_LOG_SATA_SETTINGS = 0x08, 331 332 ATA_LOG_ZONED_INFORMATION = 0x09, 332 - ATA_LOG_CONCURRENT_POSITIONING_RANGES = 0x47, 333 333 334 334 /* Identify device SATA settings log:*/ 335 335 ATA_LOG_DEVSLP_OFFSET = 0x30,