** Changed in: kunpeng920/ubuntu-20.04 Status: Fix Committed => Fix Released
-- You received this bug notification because you are a member of Kernel Packages, which is subscribed to linux in Ubuntu. https://bugs.launchpad.net/bugs/1854547 Title: 【sas-1130】scsi: sd: define variable dif as unsigned int instead of bool Status in kunpeng920: Fix Committed Status in kunpeng920 ubuntu-18.04 series: Invalid Status in kunpeng920 ubuntu-18.04-hwe series: Fix Released Status in kunpeng920 ubuntu-19.04 series: Invalid Status in kunpeng920 ubuntu-19.10 series: Fix Released Status in kunpeng920 ubuntu-20.04 series: Fix Released Status in kunpeng920 upstream-kernel series: Fix Released Status in linux package in Ubuntu: Fix Released Status in linux source package in Eoan: Fix Released Status in linux source package in Focal: Fix Released Bug description: [Bug Description] DIF3 WILL not work when run fio test 【Steps to Reproduce] 1. Enable DIF/DIX for DIF3 disk 2. fio test [Actual Results] IO error when running IO; [ 781.032816] sd 5:0:0:0: [sdd] Disabling DIF Type 3 protection [ 781.112250] sd 5:0:0:0: [sdd] tag#72 FAILED Result: hostbyte=DID_ERROR driverbyte=DRIVER_OK [ 781.112287] sd 5:0:0:0: [sdd] tag#72 CDB: Read(10) 28 00 00 00 00 00 00 00 08 00 [ 781.112305] print_req_error: I/O error, dev sdd, sector 0 flags 0 [ 781.118429] Buffer I/O error on dev sdd, logical block 0, async page read [ 781.204243] sd 5:0:0:0: [sdd] tag#77 FAILED Result: hostbyte=DID_ERROR driverbyte=DRIVER_OK [ 781.204252] sd 5:0:0:0: [sdd] tag#77 CDB: Read(10) 28 00 00 00 00 00 00 00 08 00 [ 781.204257] print_req_error: I/O error, dev sdd, sector 0 flags 0 [ 781.210365] Buffer I/O error on dev sdd, logical block 0, async page read [ 781.296238] sd 5:0:0:0: [sdd] tag#82 FAILED Result: hostbyte=DID_ERROR driverbyte=DRIVER_OK [ 781.296266] sd 5:0:0:0: [sdd] tag#82 CDB: Read(10) 28 00 00 00 00 00 00 00 08 00 [ 781.296276] print_req_error: I/O error, dev sdd, sector 0 flags 0 [ 781.302384] Buffer I/O error on dev sdd, logical block 0, async page read [ 781.309207] ldm_validate_partition_table(): Disk read failed. [ 781.392239] sd 5:0:0:0: [sdd] tag#87 FAILED Result: hostbyte=DID_ERROR driverbyte=DRIVER_OK [ 781.392267] sd 5:0:0:0: [sdd] tag#87 CDB: Read(10) 28 00 00 00 00 00 00 00 08 00 [ 781.392278] print_req_error: I/O error, dev sdd, sector 0 flags 0 [ 781.398386] Buffer I/O error on dev sdd, logical block 0, async page read [ 781.484250] sd 5:0:0:0: [sdd] tag#92 FAILED Result: hostbyte=DID_ERROR driverbyte=DRIVER_OK [ 781.484260] sd 5:0:0:0: [sdd] tag#92 CDB: Read(10) 28 00 00 00 00 00 00 00 08 00 [ 781.484264] print_req_error: I/O error, dev sdd, sector 0 flags 0 [ 781.490371] Buffer I/O error on dev sdd, logical block 0, async page read [ 781.576249] sd 5:0:0:0: [sdd] tag#97 FAILED Result: hostbyte=DID_ERROR driverbyte=DRIVER_OK [ 781.576278] sd 5:0:0:0: [sdd] tag#97 CDB: Read(10) 28 00 00 00 00 00 00 00 08 00 [ 781.576293] print_req_error: I/O error, dev sdd, sector 0 flags 0 [ 781.582399] Buffer I/O error on dev sdd, logical block 0, async page read [ 781.668236] sd 5:0:0:0: [sdd] tag#102 FAILED Result: hostbyte=DID_ERROR driverbyte=DRIVER_OK [ 781.668245] sd 5:0:0:0: [sdd] tag#102 CDB: Read(10) 28 00 00 00 00 00 00 00 08 00 [ 781.668249] print_req_error: I/O error, dev sdd, sector 0 flags 0 [ 781.674354] Buffer I/O error on dev sdd, logical block 0, async page read [ 781.681184] Dev sdd: unable to read RDB block 0 [ 781.764241] sd 5:0:0:0: [sdd] tag#121 FAILED Result: hostbyte=DID_ERROR driverbyte=DRIVER_OK [ 781.764267] sd 5:0:0:0: [sdd] tag#121 CDB: Read(10) 28 00 00 00 00 00 00 00 08 00 [ 781.764278] print_req_error: I/O error, dev sdd, sector 0 flags 0 [ 781.770386] Buffer I/O error on dev sdd, logical block 0, async page read [ 781.856240] sd 5:0:0:0: [sdd] tag#126 FAILED Result: hostbyte=DID_ERROR driverbyte=DRIVER_OK [ 781.856248] sd 5:0:0:0: [sdd] tag#126 CDB: Read(10) 28 00 00 00 00 00 00 00 08 00 [ 781.856253] print_req_error: I/O error, dev sdd, sector 0 flags 0 [ 781.862362] Buffer I/O error on dev sdd, logical block 0, async page read [ 781.948238] sd 5:0:0:0: [sdd] tag#131 FAILED Result: hostbyte=DID_ERROR driverbyte=DRIVER_OK [ 781.948264] sd 5:0:0:0: [sdd] tag#131 CDB: Read(10) 28 00 00 00 00 18 00 00 08 00 [ 781.948272] print_req_error: I/O error, dev sdd, sector 24 flags 0 [ 781.954467] Buffer I/O error on dev sdd, logical block 3, async page read [ 782.120252] sdd: unable to read partition table [Expected Results] IO running normally [Reproducibility] occasionally [Additional information] Hardware: D06 CS Firmware: NA+I59 Kernel: NA [Resolution] Variable dif in function sd_setup_read_write_cmnd() is the return value of function scsi_host_dif_capable() which returns dif capability of disks. If define it as bool, even for the disks which support DIF3, the function still return dif=1, which causes IO error. So define variable dif as unsigned int instead of bool. scsi: sd: define variable dif as unsigned int instead of bool To manage notifications about this bug go to: https://bugs.launchpad.net/kunpeng920/+bug/1854547/+subscriptions -- Mailing list: https://launchpad.net/~kernel-packages Post to : kernel-packages@lists.launchpad.net Unsubscribe : https://launchpad.net/~kernel-packages More help : https://help.launchpad.net/ListHelp