| To: | Andi Kleen <ak@xxxxxx> |
|---|---|
| Subject: | Re: PATCH 2.4.0.9.2: export ethtool interface |
| From: | Andrew Morton <andrewm@xxxxxxxxxx> |
| Date: | Thu, 21 Sep 2000 22:57:11 +1100 |
| Cc: | Donald Becker <becker@xxxxxxxxx>, "howling@xxxxxxxx" <havanna_moon@xxxxxxx>, netdev@xxxxxxxxxxx |
| References: | <39C883CF.9FB262FC@uow.edu.au> <Pine.LNX.4.10.10009201152510.1031-100000@vaio.greennet> <39C9F123.D8FA4F68@uow.edu.au>, <39C9F123.D8FA4F68@uow.edu.au>; from Andrew Morton on Thu, Sep 21, 2000 at 01:30:42PM +0200 <20000921133302.36264@colin.muc.de> |
| Sender: | owner-netdev@xxxxxxxxxxx |
Hi, Andi.
Andi Kleen wrote:
>
> ..
> > Yes. On 2.4 (at least) there is nothing to prevent the driver's ioctl()
> > function from running on two or more CPUs simultaneously.
>
> There is (2.4.0test9pre2):
>
> asmlinkage long sys_ioctl(unsigned int fd, unsigned int cmd, unsigned long
> arg)
> {
> struct file * filp;
> unsigned int flag;
> int on, error = -EBADF;
>
> filp = fget(fd);
> if (!filp)
> goto out;
> error = 0;
> lock_kernel(); <--------------
> switch (cmd) {
>
But sys_ioctl calls....
int sock_ioctl(struct inode *inode, struct file *file, unsigned int cmd,
unsigned long arg)
{
struct socket *sock;
int err;
unlock_kernel(); <---------------
sock = socki_lookup(inode);
sock = socki_lookup(inode);
err = sock->ops->ioctl(sock, cmd, arg);
|
| Previous by Date: | Re: PATCH 2.4.0.9.2: export ethtool interface, Andrew Morton |
|---|---|
| Next by Date: | Re: PATCH 2.4.0.9.2: export ethtool interface, David S. Miller |
| Previous by Thread: | Re: PATCH 2.4.0.9.2: export ethtool interface, Andi Kleen |
| Next by Thread: | Re: PATCH 2.4.0.9.2: export ethtool interface, David S. Miller |
| Indexes: | [Date] [Thread] [Top] [All Lists] |