Re: [PATCH] common/rc: confirm pcie hotplug capabilities

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Nov 25, 2020 / 07:49, Keith Busch wrote:
> It turns out some PCIe slots report hotplug surprise but are not hotplug
> capable. Despite the contridiction, the spec seems to allow that.
> 
> The linux pciehp driver needs hotplug capable to bind to the slot, and
> the block/019 test requires hotplug surprise to handle the unannounced
> link-down. Verify both bits in the slot capabilities register are set.
> 
> Reported-by: Shinichiro Kawasaki <shinichiro.kawasaki@xxxxxxx>
> Signed-off-by: Keith Busch <kbusch@xxxxxxxxxx>
> ---
>  common/rc | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/common/rc b/common/rc
> index 0d7a3cd..d396fb5 100644
> --- a/common/rc
> +++ b/common/rc
> @@ -269,7 +269,7 @@ _require_test_dev_in_hotplug_slot() {
>  
>  	local slt_cap
>  	slt_cap="$(setpci -s "${parent}" CAP_EXP+14.w)"
> -	if [[ $((0x${slt_cap} & 0x20)) -eq 0 ]]; then
> +	if [[ $((0x${slt_cap} & 0x60)) -ne 0x60 ]]; then
>  		SKIP_REASON="$TEST_DEV is not in a hot pluggable slot"
>  		return 1
>  	fi
> -- 
> 2.24.1
>

Thank you Keith.

I saw some mother boards report "hotplug surprise" bit to PCIe slots with
SAS-HBA, but do not report "hotplug capable" bit. Without the fix, block/019
was executed to the HDDs connected to the SAS-HBA, and the HDDs disappear after
the test case run (the test case emulates hotplug, but the PCIe slot is not
hotplug capable). I confirmed that this fix checks the both bits and skips
the test case for the HDDs.

Omar, please consider this fix to upstream.

Tested-by: Shinichiro Kawasaki <shinichiro.kawasaki@xxxxxxx>

-- 
Best Regards,
Shin'ichiro Kawasaki



[Index of Archives]     [Linux RAID]     [Linux SCSI]     [Linux ATA RAID]     [IDE]     [Linux Wireless]     [Linux Kernel]     [ATH6KL]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Device Mapper]

  Powered by Linux