Re: netpoll_setup questions

From: Matt Mackall
Date: Wed Oct 27 2004 - 12:47:44 EST


On Wed, Oct 27, 2004 at 11:50:05AM -0400, Jeff Moyer wrote:
> Hi, Matt,
>
> The section of code in the body of this if statement:
>
> if (!(ndev->flags & IFF_UP)) {
>
> is a bit broken. First, upon discussion with jgarzik, it seems we should
> not check for IFF_UP, but instead do netif_running.

Well I cribbed it from the nfsroot code, which is perhaps not up on
fashion.

> However, I'm wondering why we try to force the interface up in the
> first place?

Uh, so we can send packets before userspace has configured the network?

> Just because we force it up doesn't mean that it will get an IP
> address.

I don't expect it does. Usually we have our own IP address from the
command line, but if we don't, we will check if there's an in_dev
connected to the device and if so, look up the device's IP. This is
useful for the modular case where the network is up before we start
and we have a handy default for local IP.

> And, in the case where it doesn't, you will get an oops further on
> when dereferencing the ifa_list.

Does this actually happen? I'm checking in_dev for null already, but
perhaps I need to check ifa_list as well.

> So, why does this section of code exist at all? If it has a good
> purpose, can we replace it with a call to ndev->open?

Maybe. We should probably revisit the nfsroot code as well.

--
Mathematics is the supreme nostalgia of our time.
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/