On 11/18/25 2:52 AM, [email protected] wrote:
> From: Long Li <[email protected]>
>
> When MANA is being probed, it's possible that hardware is in recovery
> mode and the device may get GDMA_EQE_HWC_RESET_REQUEST over HWC in the
> middle of the probe. Detect such condition and go through the recovery
> service procedure.
>
> Fixes: fbe346ce9d62 ("net: mana: Handle Reset Request from MANA NIC")
> Signed-off-by: Long Li <[email protected]>
Does not apply cleanly anymore due to commit
934fa943b53795339486cc0026b3ab7ad39dc600, please rebase and repost.
> +static void mana_recovery_delayed_func(struct work_struct *w)
> +{
> + struct mana_dev_recovery_work *work;
> + struct mana_dev_recovery *dev, *tmp;
> + unsigned long flags;
> +
> + work = container_of(w, struct mana_dev_recovery_work, work.work);
> +
> + spin_lock_irqsave(&work->lock, flags);
> +
> + list_for_each_entry_safe(dev, tmp, &work->dev_list, list) {
> + list_del(&dev->list);
Minor nit: here and in similar code below I find sligly more readable
something alike:
while (!list_empty(&work->dev_list)) {
dev = list_first_entry(&work->dev_list);
list_del(dev);
//...
as it's more clear that releasing the lock will not causes races, but no
strong opinion against the current style.
/P
/P