From: Simon Kelley <[EMAIL PROTECTED]>
Date: Sat, 06 May 2006 18:02:00 +0100

> This patch adds a new function, neigh_table_init_no_netlink() which
> does everything the neigh_table_init() does, except add the table to
> the netlink all-arp-tables chain. In addition neigh_table_init() has a
> check that all tables on the chain have a distinct address family.
> The init call in clip.c is changed to call neigh_table_init_no_netlink().
> 
> Since ATM ARP tables are rather more complicated than can currently be
> handled by the available rtattrs in the netlink protocol, no
> functionality is lost by this patch, and non-ATM ARP manipulation via
> netlink is rescued. A more complete solution would involve a rtattr for 
> ATM ARP entries and some way for the netlink code to give neigh_add 
> and friends more information than just address family with which to find 
> the correct ARP table.
> 
> Signed-off-by: Simon Kelley <[EMAIL PROTECTED]>

This is an OK solution to this problem for now.  So I will apply
this.

I made a minor change to your patch, I changed the assertion added to
neigh_table_init().  It's not so nice to BUG_ON() with critical locks
held just to get a log of who tried to do the double-registry.  It
could cause the machine to deadlock and subsequently the debugging
log we need to analyze such cases is less likely to get reported.

Longer term we should make neigh_table_init() return some kind of
error code to handle cases like this, but that's too large a change
for so close to 2.6.17-final.

Thanks again Simon.
-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to