Messages in this thread | | | Subject | Re: [PATCH V2 net-next 6/7] tap: support receiving skb from msg_control | From | Jason Wang <> | Date | Fri, 31 Mar 2017 12:07:44 +0800 |
| |
On 2017年03月30日 23:03, Michael S. Tsirkin wrote: > On Thu, Mar 30, 2017 at 03:22:29PM +0800, Jason Wang wrote: >> This patch makes tap_recvmsg() can receive from skb from its caller >> through msg_control. Vhost_net will be the first user. >> >> Signed-off-by: Jason Wang<jasowang@redhat.com> >> --- >> drivers/net/tap.c | 12 ++++++++---- >> 1 file changed, 8 insertions(+), 4 deletions(-) >> >> diff --git a/drivers/net/tap.c b/drivers/net/tap.c >> index abdaf86..07d9174 100644 >> --- a/drivers/net/tap.c >> +++ b/drivers/net/tap.c >> @@ -824,15 +824,17 @@ static ssize_t tap_put_user(struct tap_queue *q, >> >> static ssize_t tap_do_read(struct tap_queue *q, >> struct iov_iter *to, >> - int noblock) >> + int noblock, struct sk_buff *skb) >> { >> DEFINE_WAIT(wait); >> - struct sk_buff *skb; >> ssize_t ret = 0; >> >> if (!iov_iter_count(to)) >> return 0; >> >> + if (skb) >> + goto done; >> + >> while (1) { >> if (!noblock) >> prepare_to_wait(sk_sleep(&q->sk), &wait, >> @@ -856,6 +858,7 @@ static ssize_t tap_do_read(struct tap_queue *q, >> if (!noblock) >> finish_wait(sk_sleep(&q->sk), &wait); >> >> +done: > Please just use an if {} block here. goto on error is ok, > but we are far from done here and goto done is misleading. > >
Ok.
Thanks.
| |