From 9c44788c6b5f2fab5a56fbd4ace1f25cd1004e5e Mon Sep 17 00:00:00 2001 From: andrew hendry Date: Thu, 25 Nov 2010 02:18:40 +0000 Subject: [PATCH] --- yaml --- r: 224512 b: refs/heads/master c: 5b7958dfa5db758e36e92e1790075b470b4947f8 h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/net/x25/af_x25.c | 14 +++++++------- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/[refs] b/[refs] index fcb6171b448b..0a5ef6f28369 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: f90de660678cf553f63c387945830a2e4d26dd3e +refs/heads/master: 5b7958dfa5db758e36e92e1790075b470b4947f8 diff --git a/trunk/net/x25/af_x25.c b/trunk/net/x25/af_x25.c index 2518efae8ec9..e2eea0aec466 100644 --- a/trunk/net/x25/af_x25.c +++ b/trunk/net/x25/af_x25.c @@ -1512,11 +1512,11 @@ static int x25_ioctl(struct socket *sock, unsigned int cmd, unsigned long arg) } case SIOCX25GCALLUSERDATA: { - struct x25_calluserdata cud = x25->calluserdata; - lock_kernel(); - rc = copy_to_user(argp, &cud, - sizeof(cud)) ? -EFAULT : 0; - unlock_kernel(); + lock_sock(sk); + rc = copy_to_user(argp, &x25->calluserdata, + sizeof(x25->calluserdata)) + ? -EFAULT : 0; + release_sock(sk); break; } @@ -1524,15 +1524,15 @@ static int x25_ioctl(struct socket *sock, unsigned int cmd, unsigned long arg) struct x25_calluserdata calluserdata; rc = -EFAULT; - lock_kernel(); if (copy_from_user(&calluserdata, argp, sizeof(calluserdata))) break; rc = -EINVAL; if (calluserdata.cudlength > X25_MAX_CUD_LEN) break; + lock_sock(sk); x25->calluserdata = calluserdata; - unlock_kernel(); + release_sock(sk); rc = 0; break; }