Re: [PATCH net-next 5/6] devlink: Reshuffle resource registration logic

From: Jakub Kicinski
Date: Thu Nov 18 2021 - 20:48:18 EST


On Thu, 18 Nov 2021 09:50:20 +0200 Leon Romanovsky wrote:
> And it shouldn't. devlink_resource_find() will return valid resource only
> if there driver is completely bogus with races or incorrect allocations of
> resource_id.
>
> devlink_*_register(..)
> mutex_lock(&devlink->lock);
> if (devlink_*_find(...)) {
> mutex_unlock(&devlink->lock);
> return ....;
> }
> .....
>
> It is almost always wrong from locking and layering perspective the pattern above,
> as it is racy by definition if not protected by top layer.
>
> There are exceptions from the rule above, but devlink is clearly not the
> one of such exceptions.

Just drop the unnecessary "cleanup" patches and limit the amount
of driver code we'll have to revert if your approach fails.

I spent enough time going back and forth with you.

Please.