libsas: old linkrate advertised after phy disabled

Bug #1830435 reported by dann frazier
8
This bug affects 1 person
Affects Status Importance Assigned to Milestone
linux (Ubuntu)
In Progress
Undecided
dann frazier
Disco
Fix Released
Medium
dann frazier
Eoan
In Progress
Undecided
dann frazier

Bug Description

[Impact]
sysfs continues to expose a valid phy linkrate even after the phy has been disabled.

[Test Case]
Using hisi_sas, a libsas-based driver:
(initramfs) cd /sys/class/sas_phy/phy-0\:0\:20
(initramfs) cat negotiated_linkrate
12.0 Gbit
(initramfs) echo 0 > enable
[ 59.172411] hisi_sas_v3_hw 0000:74:02.0: phydown: phy0 phy_state=0xfe
[ 59.178851] hisi_sas_v3_hw 0000:74:02.0: erroneous completion iptt=4028 task=00000000bb3ab63f dev id=1 CQ hdr: 0x1103 0x10fbc 0x0 0x20000 Error info: 0x0 0x4000000 0x0 0x0
[ 59.194139] sas: smp_execute_task_sg: task to dev 500e004aaaaaaa1f response: 0x0 status 0x2
(initramfs) cat negotiated_linkrate
12.0 Gbit

(Note to self: d06-1 has the setup to reproduce this)

[Fix]
d8649fc1c5e40 scsi: libsas: Do discovery on empty PHY to update PHY info
085f104a83d56 scsi: libsas: Inject revalidate event for root port event

[Regression Risk]
Impact is limited to drivers built on top of libsas.

dann frazier (dannf)
Changed in linux (Ubuntu Disco):
status: New → In Progress
assignee: nobody → dann frazier (dannf)
summary: - phy linkrate persists after deactivation
+ libsas: old linkrate advertised after phy disabled
description: updated
dann frazier (dannf)
description: updated
Stefan Bader (smb)
Changed in linux (Ubuntu Disco):
importance: Undecided → Medium
Changed in linux (Ubuntu Disco):
status: In Progress → Fix Committed
Revision history for this message
Ubuntu Kernel Bot (ubuntu-kernel-bot) wrote :

This bug is awaiting verification that the kernel in -proposed solves the problem. Please test the kernel and update this bug with the results. If the problem is solved, change the tag 'verification-needed-disco' to 'verification-done-disco'. If the problem still exists, change the tag 'verification-needed-disco' to 'verification-failed-disco'.

If verification is not done by 5 working days from today, this fix will be dropped from the source code, and this bug will be closed.

See https://wiki.ubuntu.com/Testing/EnableProposed for documentation how to enable and use -proposed. Thank you!

tags: added: verification-needed-disco
Revision history for this message
dann frazier (dannf) wrote :

Verification:
(initramfs) cd /sys/class/sas_phy/phy-0\:0\:20
(initramfs)
(initramfs) cat negotiated_linkrate
12.0 Gbit
(initramfs) echo 0 > enable
[ 42.507684] hisi_sas_v3_hw 0000:74:02.0: phydown: phy0 phy_state=0xfe
[ 42.558239] hisi_sas_v3_hw 0000:74:02.0: erroneous completion iptt=4048 task=(____ptrval____) dev id=1 CQ hdr: 0x1103 0x10fd0 0x0 0x20000 Error info: 0x0 0x4000000 0x0 0x0
[ 42.573527] sas: smp_execute_task_sg: task to dev 500e004aaaaaaa1f response: 0x0 status 0x2
(initramfs) [ 42.583264] sas: ex 500e004aaaaaaa1f phy20 change count has changed

(initramfs) echo 0 > enable
(initramfs) cat negotiated_linkrate
Phy disabled

tags: added: verification-done-disco
removed: verification-needed-disco
Revision history for this message
Launchpad Janitor (janitor) wrote :
Download full text (57.5 KiB)

This bug was fixed in the package linux - 5.0.0-21.22

---------------
linux (5.0.0-21.22) disco; urgency=medium

  * linux: 5.0.0-21.22 -proposed tracker (LP: #1834902)

  * Disco update: 5.0.15 upstream stable release (LP: #1834529)
    - net: stmmac: Use bfsize1 in ndesc_init_rx_desc
    - Drivers: hv: vmbus: Remove the undesired put_cpu_ptr() in hv_synic_cleanup()
    - ubsan: Fix nasty -Wbuiltin-declaration-mismatch GCC-9 warnings
    - staging: greybus: power_supply: fix prop-descriptor request size
    - staging: wilc1000: Avoid GFP_KERNEL allocation from atomic context.
    - staging: most: cdev: fix chrdev_region leak in mod_exit
    - staging: most: sound: pass correct device when creating a sound card
    - ASoC: tlv320aic3x: fix reset gpio reference counting
    - ASoC: hdmi-codec: fix S/PDIF DAI
    - ASoC: stm32: sai: fix iec958 controls indexation
    - ASoC: stm32: sai: fix exposed capabilities in spdif mode
    - ASoC: stm32: sai: fix race condition in irq handler
    - ASoC:soc-pcm:fix a codec fixup issue in TDM case
    - ASoC:hdac_hda:use correct format to setup hda codec
    - ASoC:intel:skl:fix a simultaneous playback & capture issue on hda platform
    - ASoC: dpcm: prevent snd_soc_dpcm use after free
    - ASoC: nau8824: fix the issue of the widget with prefix name
    - ASoC: nau8810: fix the issue of widget with prefixed name
    - ASoC: samsung: odroid: Fix clock configuration for 44100 sample rate
    - ASoC: rt5682: Check JD status when system resume
    - ASoC: rt5682: fix jack type detection issue
    - ASoC: rt5682: recording has no sound after booting
    - ASoC: wm_adsp: Add locking to wm_adsp2_bus_error
    - clk: meson-gxbb: round the vdec dividers to closest
    - ASoC: stm32: dfsdm: manage multiple prepare
    - ASoC: stm32: dfsdm: fix debugfs warnings on entry creation
    - ASoC: cs4270: Set auto-increment bit for register writes
    - ASoC: dapm: Fix NULL pointer dereference in snd_soc_dapm_free_kcontrol
    - drm/omap: hdmi4_cec: Fix CEC clock handling for PM
    - IB/hfi1: Clear the IOWAIT pending bits when QP is put into error state
    - IB/hfi1: Eliminate opcode tests on mr deref
    - IB/hfi1: Fix the allocation of RSM table
    - MIPS: KGDB: fix kgdb support for SMP platforms.
    - ASoC: tlv320aic32x4: Fix Common Pins
    - drm/mediatek: Fix an error code in mtk_hdmi_dt_parse_pdata()
    - perf/x86/intel: Fix handling of wakeup_events for multi-entry PEBS
    - perf/x86/intel: Initialize TFA MSR
    - linux/kernel.h: Use parentheses around argument in u64_to_user_ptr()
    - iov_iter: Fix build error without CONFIG_CRYPTO
    - xtensa: fix initialization of pt_regs::syscall in start_thread
    - ASoC: rockchip: pdm: fix regmap_ops hang issue
    - drm/amdkfd: Add picasso pci id
    - drm/amdgpu: Adjust IB test timeout for XGMI configuration
    - drm/amdgpu: amdgpu_device_recover_vram always failed if only one node in
      shadow_list
    - drm/amd/display: fix cursor black issue
    - ASoC: cs35l35: Disable regulators on driver removal
    - objtool: Add rewind_stack_do_exit() to the noreturn list
    - slab: fix a crash by reading /proc/slab_allocators
    - drm/sun4i: tcon top: Fix NULL/inv...

Changed in linux (Ubuntu Disco):
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.