lkml.org 
[lkml]   [2020]   [May]   [14]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 3/4] appletalk: factor out a atrtr_ioctl_addrt helper
    Date
    Add a helper than can be shared with the upcoming compat ioctl handler.

    Signed-off-by: Christoph Hellwig <hch@lst.de>
    ---
    net/appletalk/ddp.c | 33 ++++++++++++++++++++-------------
    1 file changed, 20 insertions(+), 13 deletions(-)

    diff --git a/net/appletalk/ddp.c b/net/appletalk/ddp.c
    index b41375d4d295d..4177a74f65436 100644
    --- a/net/appletalk/ddp.c
    +++ b/net/appletalk/ddp.c
    @@ -867,6 +867,24 @@ static int atif_ioctl(int cmd, void __user *arg)
    return copy_to_user(arg, &atreq, sizeof(atreq)) ? -EFAULT : 0;
    }

    +static int atrtr_ioctl_addrt(struct rtentry *rt)
    +{
    + struct net_device *dev = NULL;
    +
    + if (rt->rt_dev) {
    + char name[IFNAMSIZ];
    +
    + if (copy_from_user(name, rt->rt_dev, IFNAMSIZ-1))
    + return -EFAULT;
    + name[IFNAMSIZ-1] = '\0';
    +
    + dev = __dev_get_by_name(&init_net, name);
    + if (!dev)
    + return -ENODEV;
    + }
    + return atrtr_create(rt, dev);
    +}
    +
    /* Routing ioctl() calls */
    static int atrtr_ioctl(unsigned int cmd, void __user *arg)
    {
    @@ -882,19 +900,8 @@ static int atrtr_ioctl(unsigned int cmd, void __user *arg)
    return atrtr_delete(&((struct sockaddr_at *)
    &rt.rt_dst)->sat_addr);

    - case SIOCADDRT: {
    - struct net_device *dev = NULL;
    - if (rt.rt_dev) {
    - char name[IFNAMSIZ];
    - if (copy_from_user(name, rt.rt_dev, IFNAMSIZ-1))
    - return -EFAULT;
    - name[IFNAMSIZ-1] = '\0';
    - dev = __dev_get_by_name(&init_net, name);
    - if (!dev)
    - return -ENODEV;
    - }
    - return atrtr_create(&rt, dev);
    - }
    + case SIOCADDRT:
    + return atrtr_ioctl_addrt(&rt);
    }
    return -EINVAL;
    }
    --
    2.26.2
    \
     
     \ /
      Last update: 2020-05-14 16:47    [W:3.162 / U:0.760 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site