lkml.org 
[lkml]   [2003]   [Jun]   [6]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
SubjectRe: [PATCH][ATM] use rtnl_{lock,unlock} during device operations (take 2)
From
   From: chas williams <chas@cmf.nrl.navy.mil>
Date: Fri, 06 Jun 2003 06:58:20 -0400

In message <20030606.023618.13768006.davem@redhat.com>,"David S. Miller" writes:
>Read the comment above dev_base in drivers/net/Space.c to see what
>the intended locking model is.

yeah, i already read that. it has a bit of a typo (rtln indeed).
it looks like rtnl_lock() is also used to protect dev_ioctl's
(thus my usage in atm_ioctl) and protect lookup's like __dev_get_by_name.

RTNL also protects the rest of all networking administrative
via being acquired in the recvmsg() loop of rtnetlink.c

Basically it protects all networking administrative actions, add an
address for a device, up a device, down a device, add a route, attach
a packet scheduler to dev, etc. etc.

i didnt get rid of atm_dev_lock, i just dont use it unless writing
or if i couldnt safely use rtnl when a reader is iterating (like
atm_dev_hold() which could be called at interrupt--though no one does).
i thought this was the idea.

Hmmm, this is not how RTNL works on netdevs. The SMP lock is held
around all walking, and at the very precise moment where we are
doing the actual device unlink from dev_base. rtnl is acquired at
top-level when we will change something.

This is very different from how you are using the lock+rtnl scheme
for your ATM stuff.

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

\
 
 \ /
  Last update: 2005-03-22 13:36    [W:0.141 / U:0.204 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site