All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 1/6] 6lowpan: Don't set IFF_NO_QUEUE
@ 2017-04-11 19:20 Luiz Augusto von Dentz
  2017-04-11 19:20 ` [PATCH 2/6] Bluetooth: 6lowpan: Don't drop packets when run out of credits Luiz Augusto von Dentz
                   ` (6 more replies)
  0 siblings, 7 replies; 13+ messages in thread
From: Luiz Augusto von Dentz @ 2017-04-11 19:20 UTC (permalink / raw)
  To: linux-bluetooth; +Cc: patrik.flykt, aar, jukka.rissanen, linux-wpan

From: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>

There is no point in setting IFF_NO_QUEUE should already have taken
care of setting it if tx_queue_len is not set, in fact this may
actually disable queue for interfaces that require it and do set
tx_queue_len.

Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
---
 net/6lowpan/core.c | 1 -
 1 file changed, 1 deletion(-)

diff --git a/net/6lowpan/core.c b/net/6lowpan/core.c
index 5f9909a..40d3d72 100644
--- a/net/6lowpan/core.c
+++ b/net/6lowpan/core.c
@@ -35,7 +35,6 @@ int lowpan_register_netdevice(struct net_device *dev,
 
 	dev->type = ARPHRD_6LOWPAN;
 	dev->mtu = IPV6_MIN_MTU;
-	dev->priv_flags |= IFF_NO_QUEUE;
 
 	lowpan_dev(dev)->lltype = lltype;
 
-- 
2.9.3


^ permalink raw reply related	[flat|nested] 13+ messages in thread

* [PATCH 2/6] Bluetooth: 6lowpan: Don't drop packets when run out of credits
  2017-04-11 19:20 [PATCH 1/6] 6lowpan: Don't set IFF_NO_QUEUE Luiz Augusto von Dentz
@ 2017-04-11 19:20 ` Luiz Augusto von Dentz
  2017-04-12 13:56   ` Jukka Rissanen
  2017-04-11 19:21 ` [PATCH 3/6] Bluetooth: 6lowpan: Use netif APIs to flow control Luiz Augusto von Dentz
                   ` (5 subsequent siblings)
  6 siblings, 1 reply; 13+ messages in thread
From: Luiz Augusto von Dentz @ 2017-04-11 19:20 UTC (permalink / raw)
  To: linux-bluetooth; +Cc: patrik.flykt, aar, jukka.rissanen, linux-wpan

From: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>

Since l2cap_chan_send will now queue the packets there is no point in
checking the credits anymore.

Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
---
 net/bluetooth/6lowpan.c | 11 ++---------
 1 file changed, 2 insertions(+), 9 deletions(-)

diff --git a/net/bluetooth/6lowpan.c b/net/bluetooth/6lowpan.c
index 5b91e85..22bd936 100644
--- a/net/bluetooth/6lowpan.c
+++ b/net/bluetooth/6lowpan.c
@@ -478,15 +478,8 @@ static int send_pkt(struct l2cap_chan *chan, struct sk_buff *skb,
 		return 0;
 	}
 
-	if (!err)
-		err = (!chan->tx_credits ? -EAGAIN : 0);
-
-	if (err < 0) {
-		if (err == -EAGAIN)
-			netdev->stats.tx_dropped++;
-		else
-			netdev->stats.tx_errors++;
-	}
+	if (err < 0)
+		netdev->stats.tx_errors++;
 
 	return err;
 }
-- 
2.9.3


^ permalink raw reply related	[flat|nested] 13+ messages in thread

* [PATCH 3/6] Bluetooth: 6lowpan: Use netif APIs to flow control
  2017-04-11 19:20 [PATCH 1/6] 6lowpan: Don't set IFF_NO_QUEUE Luiz Augusto von Dentz
  2017-04-11 19:20 ` [PATCH 2/6] Bluetooth: 6lowpan: Don't drop packets when run out of credits Luiz Augusto von Dentz
@ 2017-04-11 19:21 ` Luiz Augusto von Dentz
  2017-04-12 13:57   ` Jukka Rissanen
  2017-04-11 19:21 ` [PATCH 4/6] Bluetooth: L2CAP: Add l2cap_le_flowctl_send Luiz Augusto von Dentz
                   ` (4 subsequent siblings)
  6 siblings, 1 reply; 13+ messages in thread
From: Luiz Augusto von Dentz @ 2017-04-11 19:21 UTC (permalink / raw)
  To: linux-bluetooth; +Cc: patrik.flykt, aar, jukka.rissanen, linux-wpan

From: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>

Rely on netif_wake_queue and netif_stop_queue to flow control when
transmit resources are unavailable.

Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
---
 net/bluetooth/6lowpan.c | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)

diff --git a/net/bluetooth/6lowpan.c b/net/bluetooth/6lowpan.c
index 22bd936..dc7fda3 100644
--- a/net/bluetooth/6lowpan.c
+++ b/net/bluetooth/6lowpan.c
@@ -867,12 +867,28 @@ static struct sk_buff *chan_alloc_skb_cb(struct l2cap_chan *chan,
 
 static void chan_suspend_cb(struct l2cap_chan *chan)
 {
+	struct lowpan_btle_dev *dev;
+
 	BT_DBG("chan %p suspend", chan);
+
+	dev = lookup_dev(chan->conn);
+	if (!dev || !dev->netdev)
+		return;
+
+	netif_stop_queue(dev->netdev);
 }
 
 static void chan_resume_cb(struct l2cap_chan *chan)
 {
+	struct lowpan_btle_dev *dev;
+
 	BT_DBG("chan %p resume", chan);
+
+	dev = lookup_dev(chan->conn);
+	if (!dev || !dev->netdev)
+		return;
+
+	netif_wake_queue(dev->netdev);
 }
 
 static long chan_get_sndtimeo_cb(struct l2cap_chan *chan)
-- 
2.9.3


^ permalink raw reply related	[flat|nested] 13+ messages in thread

* [PATCH 4/6] Bluetooth: L2CAP: Add l2cap_le_flowctl_send
  2017-04-11 19:20 [PATCH 1/6] 6lowpan: Don't set IFF_NO_QUEUE Luiz Augusto von Dentz
  2017-04-11 19:20 ` [PATCH 2/6] Bluetooth: 6lowpan: Don't drop packets when run out of credits Luiz Augusto von Dentz
  2017-04-11 19:21 ` [PATCH 3/6] Bluetooth: 6lowpan: Use netif APIs to flow control Luiz Augusto von Dentz
@ 2017-04-11 19:21 ` Luiz Augusto von Dentz
  2017-04-12 13:57   ` Jukka Rissanen
  2017-04-11 19:21 ` [PATCH 5/6] Bluetooth: 6lowpan: Set tx_queue_len to DEFAULT_TX_QUEUE_LEN Luiz Augusto von Dentz
                   ` (3 subsequent siblings)
  6 siblings, 1 reply; 13+ messages in thread
From: Luiz Augusto von Dentz @ 2017-04-11 19:21 UTC (permalink / raw)
  To: linux-bluetooth; +Cc: patrik.flykt, aar, jukka.rissanen, linux-wpan

From: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>

Consolidate code sending data to LE CoC channels and adds proper
accounting of packets sent, the remaining credits and how many packets
are queued.

Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
---
 net/bluetooth/l2cap_core.c | 27 +++++++++++++++++++--------
 1 file changed, 19 insertions(+), 8 deletions(-)

diff --git a/net/bluetooth/l2cap_core.c b/net/bluetooth/l2cap_core.c
index 3a202b0..f88ac995 100644
--- a/net/bluetooth/l2cap_core.c
+++ b/net/bluetooth/l2cap_core.c
@@ -2425,6 +2425,22 @@ static int l2cap_segment_le_sdu(struct l2cap_chan *chan,
 	return 0;
 }
 
+static void l2cap_le_flowctl_send(struct l2cap_chan *chan)
+{
+	int sent = 0;
+
+	BT_DBG("chan %p", chan);
+
+	while (chan->tx_credits && !skb_queue_empty(&chan->tx_q)) {
+		l2cap_do_send(chan, skb_dequeue(&chan->tx_q));
+		chan->tx_credits--;
+		sent++;
+	}
+
+	BT_DBG("Sent %d credits %u queued %u", sent, chan->tx_credits,
+	       skb_queue_len(&chan->tx_q));
+}
+
 int l2cap_chan_send(struct l2cap_chan *chan, struct msghdr *msg, size_t len)
 {
 	struct sk_buff *skb;
@@ -2472,10 +2488,7 @@ int l2cap_chan_send(struct l2cap_chan *chan, struct msghdr *msg, size_t len)
 
 		skb_queue_splice_tail_init(&seg_queue, &chan->tx_q);
 
-		while (chan->tx_credits && !skb_queue_empty(&chan->tx_q)) {
-			l2cap_do_send(chan, skb_dequeue(&chan->tx_q));
-			chan->tx_credits--;
-		}
+		l2cap_le_flowctl_send(chan);
 
 		if (!chan->tx_credits)
 			chan->ops->suspend(chan);
@@ -5567,10 +5580,8 @@ static inline int l2cap_le_credits(struct l2cap_conn *conn,
 
 	chan->tx_credits += credits;
 
-	while (chan->tx_credits && !skb_queue_empty(&chan->tx_q)) {
-		l2cap_do_send(chan, skb_dequeue(&chan->tx_q));
-		chan->tx_credits--;
-	}
+	/* Resume sending */
+	l2cap_le_flowctl_send(chan);
 
 	if (chan->tx_credits)
 		chan->ops->resume(chan);
-- 
2.9.3


^ permalink raw reply related	[flat|nested] 13+ messages in thread

* [PATCH 5/6] Bluetooth: 6lowpan: Set tx_queue_len to DEFAULT_TX_QUEUE_LEN
  2017-04-11 19:20 [PATCH 1/6] 6lowpan: Don't set IFF_NO_QUEUE Luiz Augusto von Dentz
                   ` (2 preceding siblings ...)
  2017-04-11 19:21 ` [PATCH 4/6] Bluetooth: L2CAP: Add l2cap_le_flowctl_send Luiz Augusto von Dentz
@ 2017-04-11 19:21 ` Luiz Augusto von Dentz
  2017-04-12 13:58   ` Jukka Rissanen
  2017-04-11 19:21 ` [PATCH 6/6] bluetooth: Do not set IFF_POINTOPOINT Luiz Augusto von Dentz
                   ` (2 subsequent siblings)
  6 siblings, 1 reply; 13+ messages in thread
From: Luiz Augusto von Dentz @ 2017-04-11 19:21 UTC (permalink / raw)
  To: linux-bluetooth; +Cc: patrik.flykt, aar, jukka.rissanen, linux-wpan

From: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>

Make netdev queue packets if we run out of credits.

Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
---
 net/bluetooth/6lowpan.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/net/bluetooth/6lowpan.c b/net/bluetooth/6lowpan.c
index dc7fda3..a4deba6 100644
--- a/net/bluetooth/6lowpan.c
+++ b/net/bluetooth/6lowpan.c
@@ -20,6 +20,7 @@
 #include <net/ipv6.h>
 #include <net/ip6_route.h>
 #include <net/addrconf.h>
+#include <net/pkt_sched.h>
 
 #include <net/bluetooth/bluetooth.h>
 #include <net/bluetooth/hci_core.h>
@@ -594,6 +595,7 @@ static void netdev_setup(struct net_device *dev)
 	dev->flags		= IFF_RUNNING | IFF_POINTOPOINT |
 				  IFF_MULTICAST;
 	dev->watchdog_timeo	= 0;
+	dev->tx_queue_len	= DEFAULT_TX_QUEUE_LEN;
 
 	dev->netdev_ops		= &netdev_ops;
 	dev->header_ops		= &header_ops;
-- 
2.9.3


^ permalink raw reply related	[flat|nested] 13+ messages in thread

* [PATCH 6/6] bluetooth: Do not set IFF_POINTOPOINT
  2017-04-11 19:20 [PATCH 1/6] 6lowpan: Don't set IFF_NO_QUEUE Luiz Augusto von Dentz
                   ` (3 preceding siblings ...)
  2017-04-11 19:21 ` [PATCH 5/6] Bluetooth: 6lowpan: Set tx_queue_len to DEFAULT_TX_QUEUE_LEN Luiz Augusto von Dentz
@ 2017-04-11 19:21 ` Luiz Augusto von Dentz
  2017-04-12 13:58   ` Jukka Rissanen
  2017-04-12 13:55 ` [PATCH 1/6] 6lowpan: Don't set IFF_NO_QUEUE Jukka Rissanen
  2017-04-12 19:58 ` Marcel Holtmann
  6 siblings, 1 reply; 13+ messages in thread
From: Luiz Augusto von Dentz @ 2017-04-11 19:21 UTC (permalink / raw)
  To: linux-bluetooth; +Cc: patrik.flykt, aar, jukka.rissanen, linux-wpan

From: Patrik Flykt <patrik.flykt@linux.intel.com>

The IPv6 stack needs to send and receive Neighbor Discovery
messages. Remove the IFF_POINTOPOINT flag.

Signed-off-by: Patrik Flykt <patrik.flykt@linux.intel.com>
Reviewed-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
---
 net/bluetooth/6lowpan.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/net/bluetooth/6lowpan.c b/net/bluetooth/6lowpan.c
index a4deba6..6089599 100644
--- a/net/bluetooth/6lowpan.c
+++ b/net/bluetooth/6lowpan.c
@@ -592,8 +592,7 @@ static void netdev_setup(struct net_device *dev)
 {
 	dev->hard_header_len	= 0;
 	dev->needed_tailroom	= 0;
-	dev->flags		= IFF_RUNNING | IFF_POINTOPOINT |
-				  IFF_MULTICAST;
+	dev->flags		= IFF_RUNNING | IFF_MULTICAST;
 	dev->watchdog_timeo	= 0;
 	dev->tx_queue_len	= DEFAULT_TX_QUEUE_LEN;
 
-- 
2.9.3


^ permalink raw reply related	[flat|nested] 13+ messages in thread

* Re: [PATCH 1/6] 6lowpan: Don't set IFF_NO_QUEUE
  2017-04-11 19:20 [PATCH 1/6] 6lowpan: Don't set IFF_NO_QUEUE Luiz Augusto von Dentz
                   ` (4 preceding siblings ...)
  2017-04-11 19:21 ` [PATCH 6/6] bluetooth: Do not set IFF_POINTOPOINT Luiz Augusto von Dentz
@ 2017-04-12 13:55 ` Jukka Rissanen
  2017-04-12 19:58 ` Marcel Holtmann
  6 siblings, 0 replies; 13+ messages in thread
From: Jukka Rissanen @ 2017-04-12 13:55 UTC (permalink / raw)
  To: Luiz Augusto von Dentz, linux-bluetooth; +Cc: patrik.flykt, aar, linux-wpan

Hi Luiz,

On Tue, 2017-04-11 at 22:20 +0300, Luiz Augusto von Dentz wrote:
> From: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
> 
> There is no point in setting IFF_NO_QUEUE should already have taken
> care of setting it if tx_queue_len is not set, in fact this may
> actually disable queue for interfaces that require it and do set
> tx_queue_len.
> 
> Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
> ---
>  net/6lowpan/core.c | 1 -
>  1 file changed, 1 deletion(-)
> 
> diff --git a/net/6lowpan/core.c b/net/6lowpan/core.c
> index 5f9909a..40d3d72 100644
> --- a/net/6lowpan/core.c
> +++ b/net/6lowpan/core.c
> @@ -35,7 +35,6 @@ int lowpan_register_netdevice(struct net_device
> *dev,
>  
>  	dev->type = ARPHRD_6LOWPAN;
>  	dev->mtu = IPV6_MIN_MTU;
> -	dev->priv_flags |= IFF_NO_QUEUE;
>  
>  	lowpan_dev(dev)->lltype = lltype;
>  

Acked-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>


Cheers,
Jukka


^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [PATCH 2/6] Bluetooth: 6lowpan: Don't drop packets when run out of credits
  2017-04-11 19:20 ` [PATCH 2/6] Bluetooth: 6lowpan: Don't drop packets when run out of credits Luiz Augusto von Dentz
@ 2017-04-12 13:56   ` Jukka Rissanen
  0 siblings, 0 replies; 13+ messages in thread
From: Jukka Rissanen @ 2017-04-12 13:56 UTC (permalink / raw)
  To: Luiz Augusto von Dentz, linux-bluetooth; +Cc: patrik.flykt, aar, linux-wpan

Hi Luiz,

On Tue, 2017-04-11 at 22:20 +0300, Luiz Augusto von Dentz wrote:
> From: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
> 
> Since l2cap_chan_send will now queue the packets there is no point in
> checking the credits anymore.
> 
> Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
> ---
>  net/bluetooth/6lowpan.c | 11 ++---------
>  1 file changed, 2 insertions(+), 9 deletions(-)
> 
> diff --git a/net/bluetooth/6lowpan.c b/net/bluetooth/6lowpan.c
> index 5b91e85..22bd936 100644
> --- a/net/bluetooth/6lowpan.c
> +++ b/net/bluetooth/6lowpan.c
> @@ -478,15 +478,8 @@ static int send_pkt(struct l2cap_chan *chan,
> struct sk_buff *skb,
>  		return 0;
>  	}
>  
> -	if (!err)
> -		err = (!chan->tx_credits ? -EAGAIN : 0);
> -
> -	if (err < 0) {
> -		if (err == -EAGAIN)
> -			netdev->stats.tx_dropped++;
> -		else
> -			netdev->stats.tx_errors++;
> -	}
> +	if (err < 0)
> +		netdev->stats.tx_errors++;
>  
>  	return err;
>  }


Acked-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>


Cheers,
Jukka


^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [PATCH 3/6] Bluetooth: 6lowpan: Use netif APIs to flow control
  2017-04-11 19:21 ` [PATCH 3/6] Bluetooth: 6lowpan: Use netif APIs to flow control Luiz Augusto von Dentz
@ 2017-04-12 13:57   ` Jukka Rissanen
  0 siblings, 0 replies; 13+ messages in thread
From: Jukka Rissanen @ 2017-04-12 13:57 UTC (permalink / raw)
  To: Luiz Augusto von Dentz, linux-bluetooth; +Cc: patrik.flykt, aar, linux-wpan

Hi Luiz,


On Tue, 2017-04-11 at 22:21 +0300, Luiz Augusto von Dentz wrote:
> From: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
> 
> Rely on netif_wake_queue and netif_stop_queue to flow control when
> transmit resources are unavailable.
> 
> Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
> ---
>  net/bluetooth/6lowpan.c | 16 ++++++++++++++++
>  1 file changed, 16 insertions(+)
> 
> diff --git a/net/bluetooth/6lowpan.c b/net/bluetooth/6lowpan.c
> index 22bd936..dc7fda3 100644
> --- a/net/bluetooth/6lowpan.c
> +++ b/net/bluetooth/6lowpan.c
> @@ -867,12 +867,28 @@ static struct sk_buff *chan_alloc_skb_cb(struct
> l2cap_chan *chan,
>  
>  static void chan_suspend_cb(struct l2cap_chan *chan)
>  {
> +	struct lowpan_btle_dev *dev;
> +
>  	BT_DBG("chan %p suspend", chan);
> +
> +	dev = lookup_dev(chan->conn);
> +	if (!dev || !dev->netdev)
> +		return;
> +
> +	netif_stop_queue(dev->netdev);
>  }
>  
>  static void chan_resume_cb(struct l2cap_chan *chan)
>  {
> +	struct lowpan_btle_dev *dev;
> +
>  	BT_DBG("chan %p resume", chan);
> +
> +	dev = lookup_dev(chan->conn);
> +	if (!dev || !dev->netdev)
> +		return;
> +
> +	netif_wake_queue(dev->netdev);
>  }
>  
>  static long chan_get_sndtimeo_cb(struct l2cap_chan *chan)


Acked-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>


Cheers,
Jukka



^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [PATCH 4/6] Bluetooth: L2CAP: Add l2cap_le_flowctl_send
  2017-04-11 19:21 ` [PATCH 4/6] Bluetooth: L2CAP: Add l2cap_le_flowctl_send Luiz Augusto von Dentz
@ 2017-04-12 13:57   ` Jukka Rissanen
  0 siblings, 0 replies; 13+ messages in thread
From: Jukka Rissanen @ 2017-04-12 13:57 UTC (permalink / raw)
  To: Luiz Augusto von Dentz, linux-bluetooth; +Cc: patrik.flykt, aar, linux-wpan

Hi Luiz,

On Tue, 2017-04-11 at 22:21 +0300, Luiz Augusto von Dentz wrote:
> From: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
> 
> Consolidate code sending data to LE CoC channels and adds proper
> accounting of packets sent, the remaining credits and how many
> packets
> are queued.
> 
> Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
> ---
>  net/bluetooth/l2cap_core.c | 27 +++++++++++++++++++--------
>  1 file changed, 19 insertions(+), 8 deletions(-)
> 
> diff --git a/net/bluetooth/l2cap_core.c b/net/bluetooth/l2cap_core.c
> index 3a202b0..f88ac995 100644
> --- a/net/bluetooth/l2cap_core.c
> +++ b/net/bluetooth/l2cap_core.c
> @@ -2425,6 +2425,22 @@ static int l2cap_segment_le_sdu(struct
> l2cap_chan *chan,
>  	return 0;
>  }
>  
> +static void l2cap_le_flowctl_send(struct l2cap_chan *chan)
> +{
> +	int sent = 0;
> +
> +	BT_DBG("chan %p", chan);
> +
> +	while (chan->tx_credits && !skb_queue_empty(&chan->tx_q)) {
> +		l2cap_do_send(chan, skb_dequeue(&chan->tx_q));
> +		chan->tx_credits--;
> +		sent++;
> +	}
> +
> +	BT_DBG("Sent %d credits %u queued %u", sent, chan-
> >tx_credits,
> +	       skb_queue_len(&chan->tx_q));
> +}
> +
>  int l2cap_chan_send(struct l2cap_chan *chan, struct msghdr *msg,
> size_t len)
>  {
>  	struct sk_buff *skb;
> @@ -2472,10 +2488,7 @@ int l2cap_chan_send(struct l2cap_chan *chan,
> struct msghdr *msg, size_t len)
>  
>  		skb_queue_splice_tail_init(&seg_queue, &chan->tx_q);
>  
> -		while (chan->tx_credits && !skb_queue_empty(&chan-
> >tx_q)) {
> -			l2cap_do_send(chan, skb_dequeue(&chan-
> >tx_q));
> -			chan->tx_credits--;
> -		}
> +		l2cap_le_flowctl_send(chan);
>  
>  		if (!chan->tx_credits)
>  			chan->ops->suspend(chan);
> @@ -5567,10 +5580,8 @@ static inline int l2cap_le_credits(struct
> l2cap_conn *conn,
>  
>  	chan->tx_credits += credits;
>  
> -	while (chan->tx_credits && !skb_queue_empty(&chan->tx_q)) {
> -		l2cap_do_send(chan, skb_dequeue(&chan->tx_q));
> -		chan->tx_credits--;
> -	}
> +	/* Resume sending */
> +	l2cap_le_flowctl_send(chan);
>  
>  	if (chan->tx_credits)
>  		chan->ops->resume(chan);

Acked-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>


Cheers,
Jukka


^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [PATCH 5/6] Bluetooth: 6lowpan: Set tx_queue_len to DEFAULT_TX_QUEUE_LEN
  2017-04-11 19:21 ` [PATCH 5/6] Bluetooth: 6lowpan: Set tx_queue_len to DEFAULT_TX_QUEUE_LEN Luiz Augusto von Dentz
@ 2017-04-12 13:58   ` Jukka Rissanen
  0 siblings, 0 replies; 13+ messages in thread
From: Jukka Rissanen @ 2017-04-12 13:58 UTC (permalink / raw)
  To: Luiz Augusto von Dentz, linux-bluetooth; +Cc: patrik.flykt, aar, linux-wpan

Hi Luiz,

On Tue, 2017-04-11 at 22:21 +0300, Luiz Augusto von Dentz wrote:
> From: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
> 
> Make netdev queue packets if we run out of credits.
> 
> Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
> ---
>  net/bluetooth/6lowpan.c | 2 ++
>  1 file changed, 2 insertions(+)
> 
> diff --git a/net/bluetooth/6lowpan.c b/net/bluetooth/6lowpan.c
> index dc7fda3..a4deba6 100644
> --- a/net/bluetooth/6lowpan.c
> +++ b/net/bluetooth/6lowpan.c
> @@ -20,6 +20,7 @@
>  #include <net/ipv6.h>
>  #include <net/ip6_route.h>
>  #include <net/addrconf.h>
> +#include <net/pkt_sched.h>
>  
>  #include <net/bluetooth/bluetooth.h>
>  #include <net/bluetooth/hci_core.h>
> @@ -594,6 +595,7 @@ static void netdev_setup(struct net_device *dev)
>  	dev->flags		= IFF_RUNNING | IFF_POINTOPOINT |
>  				  IFF_MULTICAST;
>  	dev->watchdog_timeo	= 0;
> +	dev->tx_queue_len	= DEFAULT_TX_QUEUE_LEN;
>  
>  	dev->netdev_ops		= &netdev_ops;
>  	dev->header_ops		= &header_ops;


Acked-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>


Cheers,
Jukka


^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [PATCH 6/6] bluetooth: Do not set IFF_POINTOPOINT
  2017-04-11 19:21 ` [PATCH 6/6] bluetooth: Do not set IFF_POINTOPOINT Luiz Augusto von Dentz
@ 2017-04-12 13:58   ` Jukka Rissanen
  0 siblings, 0 replies; 13+ messages in thread
From: Jukka Rissanen @ 2017-04-12 13:58 UTC (permalink / raw)
  To: Luiz Augusto von Dentz, linux-bluetooth; +Cc: patrik.flykt, aar, linux-wpan


On Tue, 2017-04-11 at 22:21 +0300, Luiz Augusto von Dentz wrote:
> From: Patrik Flykt <patrik.flykt@linux.intel.com>
> 
> The IPv6 stack needs to send and receive Neighbor Discovery
> messages. Remove the IFF_POINTOPOINT flag.
> 
> Signed-off-by: Patrik Flykt <patrik.flykt@linux.intel.com>
> Reviewed-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
> ---
>  net/bluetooth/6lowpan.c | 3 +--
>  1 file changed, 1 insertion(+), 2 deletions(-)
> 
> diff --git a/net/bluetooth/6lowpan.c b/net/bluetooth/6lowpan.c
> index a4deba6..6089599 100644
> --- a/net/bluetooth/6lowpan.c
> +++ b/net/bluetooth/6lowpan.c
> @@ -592,8 +592,7 @@ static void netdev_setup(struct net_device *dev)
>  {
>  	dev->hard_header_len	= 0;
>  	dev->needed_tailroom	= 0;
> -	dev->flags		= IFF_RUNNING | IFF_POINTOPOINT |
> -				  IFF_MULTICAST;
> +	dev->flags		= IFF_RUNNING | IFF_MULTICAST;
>  	dev->watchdog_timeo	= 0;
>  	dev->tx_queue_len	= DEFAULT_TX_QUEUE_LEN;
>  


Acked-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>


Cheers,
Jukka


^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [PATCH 1/6] 6lowpan: Don't set IFF_NO_QUEUE
  2017-04-11 19:20 [PATCH 1/6] 6lowpan: Don't set IFF_NO_QUEUE Luiz Augusto von Dentz
                   ` (5 preceding siblings ...)
  2017-04-12 13:55 ` [PATCH 1/6] 6lowpan: Don't set IFF_NO_QUEUE Jukka Rissanen
@ 2017-04-12 19:58 ` Marcel Holtmann
  6 siblings, 0 replies; 13+ messages in thread
From: Marcel Holtmann @ 2017-04-12 19:58 UTC (permalink / raw)
  To: Luiz Augusto von Dentz
  Cc: Linux Bluetooth, Patrik Flykt, Alexander Aring, Jukka Rissanen,
	linux-wpan

Hi Luiz,

> There is no point in setting IFF_NO_QUEUE should already have taken
> care of setting it if tx_queue_len is not set, in fact this may
> actually disable queue for interfaces that require it and do set
> tx_queue_len.
> 
> Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
> ---
> net/6lowpan/core.c | 1 -
> 1 file changed, 1 deletion(-)

all 6 patches have been applied to bluetooth-next tree.

Regards

Marcel


^ permalink raw reply	[flat|nested] 13+ messages in thread

end of thread, other threads:[~2017-04-12 19:58 UTC | newest]

Thread overview: 13+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-04-11 19:20 [PATCH 1/6] 6lowpan: Don't set IFF_NO_QUEUE Luiz Augusto von Dentz
2017-04-11 19:20 ` [PATCH 2/6] Bluetooth: 6lowpan: Don't drop packets when run out of credits Luiz Augusto von Dentz
2017-04-12 13:56   ` Jukka Rissanen
2017-04-11 19:21 ` [PATCH 3/6] Bluetooth: 6lowpan: Use netif APIs to flow control Luiz Augusto von Dentz
2017-04-12 13:57   ` Jukka Rissanen
2017-04-11 19:21 ` [PATCH 4/6] Bluetooth: L2CAP: Add l2cap_le_flowctl_send Luiz Augusto von Dentz
2017-04-12 13:57   ` Jukka Rissanen
2017-04-11 19:21 ` [PATCH 5/6] Bluetooth: 6lowpan: Set tx_queue_len to DEFAULT_TX_QUEUE_LEN Luiz Augusto von Dentz
2017-04-12 13:58   ` Jukka Rissanen
2017-04-11 19:21 ` [PATCH 6/6] bluetooth: Do not set IFF_POINTOPOINT Luiz Augusto von Dentz
2017-04-12 13:58   ` Jukka Rissanen
2017-04-12 13:55 ` [PATCH 1/6] 6lowpan: Don't set IFF_NO_QUEUE Jukka Rissanen
2017-04-12 19:58 ` Marcel Holtmann

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.