irda: don't open-code memdup_user()
and no, GFP_ATOMIC does not make any sense there... Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
This commit is contained in:
parent
7f2d17c67a
commit
aa47cc1c3c
|
@ -1901,16 +1901,10 @@ static int irda_setsockopt(struct socket *sock, int level, int optname,
|
|||
goto out;
|
||||
}
|
||||
|
||||
ias_opt = kmalloc(sizeof(struct irda_ias_set), GFP_ATOMIC);
|
||||
if (ias_opt == NULL) {
|
||||
err = -ENOMEM;
|
||||
goto out;
|
||||
}
|
||||
|
||||
/* Copy query to the driver. */
|
||||
if (copy_from_user(ias_opt, optval, optlen)) {
|
||||
kfree(ias_opt);
|
||||
err = -EFAULT;
|
||||
ias_opt = memdup_user(optval, optlen);
|
||||
if (IS_ERR(ias_opt)) {
|
||||
err = PTR_ERR(ias_opt);
|
||||
goto out;
|
||||
}
|
||||
|
||||
|
@ -2032,16 +2026,10 @@ static int irda_setsockopt(struct socket *sock, int level, int optname,
|
|||
goto out;
|
||||
}
|
||||
|
||||
ias_opt = kmalloc(sizeof(struct irda_ias_set), GFP_ATOMIC);
|
||||
if (ias_opt == NULL) {
|
||||
err = -ENOMEM;
|
||||
goto out;
|
||||
}
|
||||
|
||||
/* Copy query to the driver. */
|
||||
if (copy_from_user(ias_opt, optval, optlen)) {
|
||||
kfree(ias_opt);
|
||||
err = -EFAULT;
|
||||
ias_opt = memdup_user(optval, optlen);
|
||||
if (IS_ERR(ias_opt)) {
|
||||
err = PTR_ERR(ias_opt);
|
||||
goto out;
|
||||
}
|
||||
|
||||
|
@ -2317,16 +2305,10 @@ static int irda_getsockopt(struct socket *sock, int level, int optname,
|
|||
goto out;
|
||||
}
|
||||
|
||||
ias_opt = kmalloc(sizeof(struct irda_ias_set), GFP_ATOMIC);
|
||||
if (ias_opt == NULL) {
|
||||
err = -ENOMEM;
|
||||
goto out;
|
||||
}
|
||||
|
||||
/* Copy query to the driver. */
|
||||
if (copy_from_user(ias_opt, optval, len)) {
|
||||
kfree(ias_opt);
|
||||
err = -EFAULT;
|
||||
ias_opt = memdup_user(optval, len);
|
||||
if (IS_ERR(ias_opt)) {
|
||||
err = PTR_ERR(ias_opt);
|
||||
goto out;
|
||||
}
|
||||
|
||||
|
@ -2381,16 +2363,10 @@ static int irda_getsockopt(struct socket *sock, int level, int optname,
|
|||
goto out;
|
||||
}
|
||||
|
||||
ias_opt = kmalloc(sizeof(struct irda_ias_set), GFP_ATOMIC);
|
||||
if (ias_opt == NULL) {
|
||||
err = -ENOMEM;
|
||||
goto out;
|
||||
}
|
||||
|
||||
/* Copy query to the driver. */
|
||||
if (copy_from_user(ias_opt, optval, len)) {
|
||||
kfree(ias_opt);
|
||||
err = -EFAULT;
|
||||
ias_opt = memdup_user(optval, len);
|
||||
if (IS_ERR(ias_opt)) {
|
||||
err = PTR_ERR(ias_opt);
|
||||
goto out;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue