Re: [PATCH net 1/4] net-sysfs: check device is present when showing carrier

From: Johannes Berg
Date: Wed Jul 24 2024 - 05:36:11 EST


On Wed, 2024-07-24 at 01:46 +0000, Jamie Bainbridge wrote:
> A sysfs reader can race with a device reset or removal.

Kind of, yes, but please check what the race actually is.

> This was fixed for speed_show with commit 4224cfd7fb65 ("net-sysfs: add
> check for netdevice being present to speed_show") so add the same check
> to carrier_show.

You didn't say why it's needed here, so ... why is it?

FWIW, I don't think it actually _is_ needed, since the netdev struct
itself is still around, linkwatch_sync_dev() will not do anything that's
not still needed anyway (the removal from list must clearly either still
happen or nothing happens in the function). This will not call into the
driver (which would be the problematic part).

So while I don't think this is _wrong_ per se, I also don't think it's
necessary, nor are you demonstrating that it is.

And for userspace it should be pretty much immaterial whether it gets a
real value or -EINVAL in the race, or -ENOENT because the file
disappeared anyway?

johannes