All of lore.kernel.org
 help / color / mirror / Atom feed
* information about kernel locking issue
@ 2006-07-01 11:55 Giacomo S.
  2006-07-01 20:29 ` Massimiliano Hofer
  0 siblings, 1 reply; 5+ messages in thread
From: Giacomo S. @ 2006-07-01 11:55 UTC (permalink / raw)
  To: netfilter-devel

Good morning.

Some time ago i wrote a module in kernel space which does some filtering.

While running `dhclient eth0'  and plugging/unplugging the ethernet cable
from the network card, kernel freezed saying the culprit was the following
function (EIP is at get_ifaddr_by_name() ) :

/* returns in *addr the internet address having the name ifname */
int get_ifaddr_by_name(const char *ifname, __u32 * addr)
{
       struct net_device *pnet_device;
       struct in_device *pin_device;

       read_lock_bh(&dev_base_lock);
       pnet_device = dev_base;
       while (pnet_device != NULL)
         {
                 if ((netif_running(pnet_device))
                     && (pnet_device->ip_ptr != NULL)
                     && (strcmp(pnet_device->name, ifname) == 0))
                   {
                           pin_device =
                               (struct in_device *) pnet_device->ip_ptr;
                           /* ifa_local: ifa_address is the remote point in 
ppp */
                           *addr = (pin_device->ifa_list->ifa_local);
                           read_unlock_bh(&dev_base_lock);
                           return 1;
                   }
                pnet_device = pnet_device->next;
         }
         read_unlock_bh(&dev_base_lock);
       return -1;              /* address not found! */
}

What could be wrong?
I think the problem is that read_lock_bh is not correct, perhaps
i would need read_lock_irq instead??

Can anyone suggest if i am right.

Thanks a lot

Giacomo.
-- 
Giacomo S.

www.giacomos.it

em@il:
delleceste@gmail.com
jacum@libero.it
giacomo.strangolino@elettra.trieste.it
 	

Running IPFIRE-wall on debian GNU/Linux:
www.giacomos.it/ipfire

www.debian.org

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2006-07-10 23:41 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2006-07-01 11:55 information about kernel locking issue Giacomo S.
2006-07-01 20:29 ` Massimiliano Hofer
2006-07-02  8:08   ` Giacomo
2006-07-10 22:39   ` Gregor Maier
2006-07-10 23:41     ` Massimiliano Hofer

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.