[PATCH v3] scsi: ufs: correct ufshcd_shutdown flow

Stanley Chu chu.stanley at gmail.com
Sun Jul 24 19:11:20 PDT 2022


On Sat, Jul 23, 2022 at 5:15 AM Bart Van Assche <bvanassche at acm.org> wrote:
>
> On 7/20/22 23:58, peter.wang at mediatek.com wrote:
> > Both ufshcd_shtdown and ufshcd_wl_shutdown could run concurrently.
> > And it have race condition when ufshcd_wl_shutdown on-going and
> > clock/power turn off by ufshcd_shutdown.
> >
> > The normal case:
> > ufshcd_wl_shutdown -> ufshcd_shtdown
> > ufshcd_shtdown should turn off clock/power.
> >
> > The abnormal case:
> > ufshcd_shtdown -> ufshcd_wl_shutdown
>
> How can this happen since device_shutdown() iterates over devices in the
> opposite order in which these have been created?
>

Is it possible for more than one initiator to invoke
kernel_power_off() at the same time?

In this case, the order of device shutdown is not promised anymore
because devices_kset is manipulated simultaneously by multiple
initiators in device_shutdown().

> Thanks,
>
> Bart.



More information about the Linux-mediatek mailing list