On 25/02/2025 09:35, yangxingui wrote:
pm8001 sends sas_notify_port_event(sas_phy, PORTE_LINK_RESET_ERR,)
link reset errors - can you consider doing that in
hisi_sas_update_port_id() when you find an inconstant port id?
Currently during phyup, the hw port id may change, and the
corresponding hisi_sas_port.id and the port id in itct are not
updated synchronously. The problem caused is not a link error, so we
don't need deform port, just update the port id when phyup.
Sure, but I am just trying to keep this simple. If you deform and
reform the port - and so lose and find the disk (which does the itct
config) - will that solve the problem?
1、phyup ->form port -> eh -> ata reset -> found hw port change ->
deform port -> let dev gone -> refound
2、controller reset -> phyup -> finish controller reset -> found hw port
change -> deform port -> let dev gone -> refound
I also thought about the plan you mentioned in the early days. The above
will make the process more complicated and retriggering phyup may result
in a new round of port id changes. Lose and find the disk will cause the
upper layer IO to report error when controller reset. It seems that it
is better to make the upper layer unaware of the hw port id change when
phyup in reset, like ata reset or controller reset. ^_^
The lldd_dev_found CB is where you should set the itct, and it is only
possible to do that if you report the device gone first. So that seems
like a simpler solution.