2014-10-16 02:21:55

by Li RongQing

[permalink] [raw]
Subject: [PATCH] Bluetooth: 6lowpan: remove unnecessary codes in give_skb_to_upper

From: Li RongQing <[email protected]>

netif_rx() only returns NET_RX_DROP and NET_RX_SUCCESS, not returns
negative value

Signed-off-by: Li RongQing <[email protected]>
---
net/bluetooth/6lowpan.c | 9 +--------
1 file changed, 1 insertion(+), 8 deletions(-)

diff --git a/net/bluetooth/6lowpan.c b/net/bluetooth/6lowpan.c
index c2e0d14..9b5c89b 100644
--- a/net/bluetooth/6lowpan.c
+++ b/net/bluetooth/6lowpan.c
@@ -249,19 +249,12 @@ static struct lowpan_dev *lookup_dev(struct l2cap_conn *conn)
static int give_skb_to_upper(struct sk_buff *skb, struct net_device *dev)
{
struct sk_buff *skb_cp;
- int ret;

skb_cp = skb_copy(skb, GFP_ATOMIC);
if (!skb_cp)
return -ENOMEM;

- ret = netif_rx(skb_cp);
- if (ret < 0) {
- BT_DBG("receive skb %d", ret);
- return NET_RX_DROP;
- }
-
- return ret;
+ return netif_rx(skb_cp);
}

static int process_data(struct sk_buff *skb, struct net_device *netdev,
--
1.7.10.4


2014-10-17 15:01:17

by Alexander Aring

[permalink] [raw]
Subject: Re: [PATCH] Bluetooth: 6lowpan: remove unnecessary codes in give_skb_to_upper

Hi Jukka,

On Fri, Oct 17, 2014 at 04:10:45PM +0300, Jukka Rissanen wrote:
> Hi,
>
> On to, 2014-10-16 at 10:21 +0800, [email protected] wrote:
> > From: Li RongQing <[email protected]>
> >
> > netif_rx() only returns NET_RX_DROP and NET_RX_SUCCESS, not returns
> > negative value
> >
> > Signed-off-by: Li RongQing <[email protected]>
> > ---
> > net/bluetooth/6lowpan.c | 9 +--------
> > 1 file changed, 1 insertion(+), 8 deletions(-)
> >
> > diff --git a/net/bluetooth/6lowpan.c b/net/bluetooth/6lowpan.c
> > index c2e0d14..9b5c89b 100644
> > --- a/net/bluetooth/6lowpan.c
> > +++ b/net/bluetooth/6lowpan.c
> > @@ -249,19 +249,12 @@ static struct lowpan_dev *lookup_dev(struct l2cap_conn *conn)
> > static int give_skb_to_upper(struct sk_buff *skb, struct net_device *dev)
> > {
> > struct sk_buff *skb_cp;
> > - int ret;
> >
> > skb_cp = skb_copy(skb, GFP_ATOMIC);
> > if (!skb_cp)
> > return -ENOMEM;
> >
> > - ret = netif_rx(skb_cp);
> > - if (ret < 0) {
> > - BT_DBG("receive skb %d", ret);
> > - return NET_RX_DROP;
> > - }
> > -
> > - return ret;
> > + return netif_rx(skb_cp);
> > }
> >
> > static int process_data(struct sk_buff *skb, struct net_device *netdev,
>
> Ack to this.
>

Just for notice: this doesn't fix anything, because it's currently
broken.

This is part of issue that lowpan_process_data returns sometimes errno
and (NET_RX_DROP or NET_RX_SUCCESS).

Martin tries to fix this issue, but it seems that this isn't easy.

The lowpan_process_data function still returns sometimes a errno or
NET_RX_DROP. So a check on (ret < 0) or (ret == NET_RX_DROP) doesn't
work. I mean this patch is okay for me, but there still are some
problems around. :-)

Simple we can't return errno or NET_RX_FOO in lowpan_process_data, but I
am sure Martin still working on a fix for this issue. We need to change
everything to returning errno's only.

- Alex

2014-10-17 14:20:39

by Jukka Rissanen

[permalink] [raw]
Subject: Re: [PATCH] Bluetooth: 6lowpan: remove unnecessary codes in give_skb_to_upper

On pe, 2014-10-17 at 16:08 +0200, Marcel Holtmann wrote:
> Hi Jukka,
>
> >> From: Li RongQing <[email protected]>
> >>
> >> netif_rx() only returns NET_RX_DROP and NET_RX_SUCCESS, not returns
> >> negative value
> >>
> >> Signed-off-by: Li RongQing <[email protected]>
> >> ---
> >> net/bluetooth/6lowpan.c | 9 +--------
> >> 1 file changed, 1 insertion(+), 8 deletions(-)
> >>
> >> diff --git a/net/bluetooth/6lowpan.c b/net/bluetooth/6lowpan.c
> >> index c2e0d14..9b5c89b 100644
> >> --- a/net/bluetooth/6lowpan.c
> >> +++ b/net/bluetooth/6lowpan.c
> >> @@ -249,19 +249,12 @@ static struct lowpan_dev *lookup_dev(struct l2cap_conn *conn)
> >> static int give_skb_to_upper(struct sk_buff *skb, struct net_device *dev)
> >> {
> >> struct sk_buff *skb_cp;
> >> - int ret;
> >>
> >> skb_cp = skb_copy(skb, GFP_ATOMIC);
> >> if (!skb_cp)
> >> return -ENOMEM;
> >>
> >> - ret = netif_rx(skb_cp);
> >> - if (ret < 0) {
> >> - BT_DBG("receive skb %d", ret);
> >> - return NET_RX_DROP;
> >> - }
> >> -
> >> - return ret;
> >> + return netif_rx(skb_cp);
> >> }
> >>
> >> static int process_data(struct sk_buff *skb, struct net_device *netdev,
> >
> > Ack to this.
> >
> > Signed-off-by: Jukka Rissanen <[email protected]>
>
> this should be acked-by or reviewed-by and not signed-off-by. The signed-off-by is only if you would send Roy's original patch on his behalf or you would be in the chain of sending patches along the maintainer trees.

Do'h! Yep, I meant to say Acked-by (too many things going on same
time :)

Acked-by: Jukka Rissanen <[email protected]>


>
> Regards
>
> Marcel
>


Cheers,
Jukka

2014-10-17 14:11:20

by Marcel Holtmann

[permalink] [raw]
Subject: Re: [PATCH] Bluetooth: 6lowpan: remove unnecessary codes in give_skb_to_upper

Hi Roy,

> From: Li RongQing <[email protected]>
>
> netif_rx() only returns NET_RX_DROP and NET_RX_SUCCESS, not returns
> negative value
>
> Signed-off-by: Li RongQing <[email protected]>
> ---
> net/bluetooth/6lowpan.c | 9 +--------
> 1 file changed, 1 insertion(+), 8 deletions(-)

patch has been applied to bluetooth-next tree.

Regards

Marcel


2014-10-17 14:08:54

by Marcel Holtmann

[permalink] [raw]
Subject: Re: [PATCH] Bluetooth: 6lowpan: remove unnecessary codes in give_skb_to_upper

Hi Jukka,

>> From: Li RongQing <[email protected]>
>>
>> netif_rx() only returns NET_RX_DROP and NET_RX_SUCCESS, not returns
>> negative value
>>
>> Signed-off-by: Li RongQing <[email protected]>
>> ---
>> net/bluetooth/6lowpan.c | 9 +--------
>> 1 file changed, 1 insertion(+), 8 deletions(-)
>>
>> diff --git a/net/bluetooth/6lowpan.c b/net/bluetooth/6lowpan.c
>> index c2e0d14..9b5c89b 100644
>> --- a/net/bluetooth/6lowpan.c
>> +++ b/net/bluetooth/6lowpan.c
>> @@ -249,19 +249,12 @@ static struct lowpan_dev *lookup_dev(struct l2cap_conn *conn)
>> static int give_skb_to_upper(struct sk_buff *skb, struct net_device *dev)
>> {
>> struct sk_buff *skb_cp;
>> - int ret;
>>
>> skb_cp = skb_copy(skb, GFP_ATOMIC);
>> if (!skb_cp)
>> return -ENOMEM;
>>
>> - ret = netif_rx(skb_cp);
>> - if (ret < 0) {
>> - BT_DBG("receive skb %d", ret);
>> - return NET_RX_DROP;
>> - }
>> -
>> - return ret;
>> + return netif_rx(skb_cp);
>> }
>>
>> static int process_data(struct sk_buff *skb, struct net_device *netdev,
>
> Ack to this.
>
> Signed-off-by: Jukka Rissanen <[email protected]>

this should be acked-by or reviewed-by and not signed-off-by. The signed-off-by is only if you would send Roy's original patch on his behalf or you would be in the chain of sending patches along the maintainer trees.

Regards

Marcel


2014-10-17 13:10:45

by Jukka Rissanen

[permalink] [raw]
Subject: Re: [PATCH] Bluetooth: 6lowpan: remove unnecessary codes in give_skb_to_upper

Hi,

On to, 2014-10-16 at 10:21 +0800, [email protected] wrote:
> From: Li RongQing <[email protected]>
>
> netif_rx() only returns NET_RX_DROP and NET_RX_SUCCESS, not returns
> negative value
>
> Signed-off-by: Li RongQing <[email protected]>
> ---
> net/bluetooth/6lowpan.c | 9 +--------
> 1 file changed, 1 insertion(+), 8 deletions(-)
>
> diff --git a/net/bluetooth/6lowpan.c b/net/bluetooth/6lowpan.c
> index c2e0d14..9b5c89b 100644
> --- a/net/bluetooth/6lowpan.c
> +++ b/net/bluetooth/6lowpan.c
> @@ -249,19 +249,12 @@ static struct lowpan_dev *lookup_dev(struct l2cap_conn *conn)
> static int give_skb_to_upper(struct sk_buff *skb, struct net_device *dev)
> {
> struct sk_buff *skb_cp;
> - int ret;
>
> skb_cp = skb_copy(skb, GFP_ATOMIC);
> if (!skb_cp)
> return -ENOMEM;
>
> - ret = netif_rx(skb_cp);
> - if (ret < 0) {
> - BT_DBG("receive skb %d", ret);
> - return NET_RX_DROP;
> - }
> -
> - return ret;
> + return netif_rx(skb_cp);
> }
>
> static int process_data(struct sk_buff *skb, struct net_device *netdev,

Ack to this.

Signed-off-by: Jukka Rissanen <[email protected]>


Cheers,
Jukka