Skip to contentSkip to conversation

Linux 2.4.18-pre4 bonding driver...

DISCUSSION Trond Myklebust 3 participants 3 messages Jan 17, 2002 – Jan 21, 2002 1 message not in the archive

lore
Share & tools
lore
#1 lore raw
In reply to a message not in the archive

Marcelo,

Is this code from linux-2.4.18-pre4/drivers/net/bonding.c safe?

static int bond_close(struct net_device *master)

{
       write_lock_irqsave(&bond->lock, flags);
<snip>
       bond_release_all(master);

       write_unlock_irqrestore(&bond->lock, flags);

AFAICS 'bond_release_all()' calls a bunch of lower level networking functions some of which do sleep. It does nothing to release the bond->lock when this occurs.

Cheers,
Trond

#2 lore raw

From: Trond Myklebust <[email protected]>
Date: Thu, 17 Jan 2002 22:15:00 +0100

Is this code from linux-2.4.18-pre4/drivers/net/bonding.c safe?

We don't know, ask the Bonding maintainers as they asked us to merge in these updates for them.

Franks a lot,
David S. Miller
[email protected]

#3 lore raw
In reply to Trond Myklebust
Quoted 13 lines · Trond Myklebust

Marcelo,

Is this code from linux-2.4.18-pre4/drivers/net/bonding.c safe?

static int bond_close(struct net_device *master)

{
       write_lock_irqsave(&bond->lock, flags);
<snip>
       bond_release_all(master);

       write_unlock_irqrestore(&bond->lock, flags);
Quoted 3 lines

AFAICS 'bond_release_all()' calls a bunch of lower level networking functions some of which do sleep. It does nothing to release the bond->lock when this occurs.

They are not safe, indeed.

Have you tried to contact the driver authors ?