[lkml]   [2001]   [Nov]   [3]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
SubjectLocks in kernel
Hi All,
I am having doubts in locking mechanism in Linux 2.2 kernel code.

We have done modifications in the Linux kernel code to support our
application which runs at the user space. The modification done in
the Linux kernel is to maintain a table of data(like a routing table),
which will be updated by the applicaition with appropriate data. This
data will be used by the kernel for other processing.

We are using "up" & "down" functions for locking global data in the kernel.
Our code in kernel will get called when a IP packet is received. During
that time we are trying to lock that global data and retrieve some
info from that. Is this a correct way to do. We are also locking
the global data when it gets updated from the application. Since
ip_rcv() gets called from bottom_half(), can we do any locking
stuff there? We faced kernel panicking when the application locked
the global data and got scheduled to continue later(with lock held).
That time ip_rcv() got called and we are trying to acquire the lock
which is held by the scheduled process. This made the kernel panic.

How should we approach this problem? Shouldn't we use any locking in
the code which is called by the bottom_half()?

Thanks in advance for your replies,
Information transmitted by this E-MAIL is proprietary to Wipro and/or its Customers and
is intended for use only by the individual or entity to which it is
addressed, and may contain information that is privileged, confidential or
exempt from disclosure under applicable law. If you are not the intended
recipient or it appears that this mail has been forwarded to you without
proper authority, you are notified that any use or dissemination of this
information in any manner is strictly prohibited. In such cases, please
notify us immediately at and delete this mail
from your records.
 \ /
  Last update: 2005-03-22 13:12    [W:0.078 / U:2.804 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site