Received: by oss.sgi.com id ; Tue, 20 Jun 2000 17:43:13 -0700 Received: from smtprch1.nortelnetworks.com ([192.135.215.14]:10627 "EHLO smtprch1.nortel.com") by oss.sgi.com with ESMTP id ; Tue, 20 Jun 2000 17:43:02 -0700 Received: from zrchb213.us.nortel.com (actually zrchb213) by smtprch1.nortel.com; Tue, 20 Jun 2000 19:41:42 -0500 Received: from zctwb003.asiapac.nortel.com ([47.152.32.111]) by zrchb213.us.nortel.com with SMTP (Microsoft Exchange Internet Mail Service Version 5.5.2650.21) id NKANVL97; Tue, 20 Jun 2000 19:42:46 -0500 Received: from pwold011.asiapac.nortel.com ([47.181.193.45]) by zctwb003.asiapac.nortel.com with SMTP (Microsoft Exchange Internet Mail Service Version 5.5.2650.21) id NCLF8DC5; Wed, 21 Jun 2000 10:42:47 +1000 Received: from uow.edu.au (IDENT:akpm@localhost [127.0.0.1]) by pwold011.asiapac.nortel.com (8.9.3/8.9.3) with ESMTP id KAA26949; Wed, 21 Jun 2000 10:42:41 +1000 Message-ID: <39500F81.46F5A826@uow.edu.au> Date: Wed, 21 Jun 2000 00:42:41 +0000 X-Sybari-Space: 00000000 00000000 00000000 From: Andrew Morton X-Mailer: Mozilla 4.61 [en] (X11; I; Linux 2.4.0-test1-ac10 i686) X-Accept-Language: en MIME-Version: 1.0 To: Andi Kleen CC: "netdev@oss.sgi.com" Subject: Re: modular net drivers, take 2 References: <394F5E62.DE02F835@uow.edu.au>, <394F5E62.DE02F835@uow.edu.au>; from Andrew Morton on Tue, Jun 20, 2000 at 02:04:35PM +0200 <20000620173857.A4089@fred.muc.de> Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Sender: owner-netdev@oss.sgi.com Precedence: bulk Return-Path: X-Orcpt: rfc822;netdev-outgoing Andi Kleen wrote: > > On Tue, Jun 20, 2000 at 02:04:35PM +0200, Andrew Morton wrote: > > > > - sys_ioctl() and sys_delete_module() both already claim > > the big lock, so where's the race anyway? I feel I'm missing > > something.. > > Ugh, I missed that. Ok, with that there is no race. Even better :-) I think I lied. Look at this: int sock_ioctl(...) { struct socket *sock; int err; unlock_kernel(); sock = socki_lookup(inode); err = sock->ops->ioctl(sock, cmd, arg); lock_kernel(); return err; }