video/rockchip: rga2: use axi safe reset
[firefly-linux-kernel-4.4.55.git] / drivers / net / ppp / pppolac.c
index a5d3d634fd9a5dd92e2852a87bb58f1ed9f0c8d3..0184c96579e9847b5aadefaf9c13c3444d2e2b97 100644 (file)
@@ -206,12 +206,11 @@ static void pppolac_xmit_core(struct work_struct *delivery_work)
        while ((skb = skb_dequeue(&delivery_queue))) {
                struct sock *sk_udp = skb->sk;
                struct kvec iov = {.iov_base = skb->data, .iov_len = skb->len};
-               struct msghdr msg = {
-                       .msg_iov = (struct iovec *)&iov,
-                       .msg_iovlen = 1,
-                       .msg_flags = MSG_NOSIGNAL | MSG_DONTWAIT,
-               };
-               sk_udp->sk_prot->sendmsg(NULL, sk_udp, &msg, skb->len);
+               struct msghdr msg = { 0 };
+
+               iov_iter_kvec(&msg.msg_iter, WRITE | ITER_KVEC, &iov, 1,
+                             skb->len);
+               sk_udp->sk_prot->sendmsg(sk_udp, &msg, skb->len);
                kfree_skb(skb);
        }
        set_fs(old_fs);
@@ -396,11 +395,11 @@ static struct proto_ops pppolac_proto_ops = {
        .mmap = sock_no_mmap,
 };
 
-static int pppolac_create(struct net *net, struct socket *sock)
+static int pppolac_create(struct net *net, struct socket *sock, int kern)
 {
        struct sock *sk;
 
-       sk = sk_alloc(net, PF_PPPOX, GFP_KERNEL, &pppolac_proto);
+       sk = sk_alloc(net, PF_PPPOX, GFP_KERNEL, &pppolac_proto, kern);
        if (!sk)
                return -ENOMEM;