Re: [RFC 6/8] Bluetooth: Move check for backlog size to l2cap_sock.c

Andrei Emeltchenko
2012-05-24T09:45:48Z

Hi Gustavo,

On Wed, May 23, 2012 at 10:12:42PM -0300, Gustavo Padovan wrote:
> From: Gustavo Padovan <gustavo.padovan@collabora.co.uk>
>
> Remove socket specific code from l2cap_core.c
>
> Signed-off-by: Gustavo Padovan <gustavo.padovan@collabora.co.uk>
> ---
> net/bluetooth/l2cap_core.c | 12 ------------
> net/bluetooth/l2cap_sock.c | 6 ++++++
> 2 files changed, 6 insertions(+), 12 deletions(-)
>
> diff --git a/net/bluetooth/l2cap_core.c b/net/bluetooth/l2cap_core.c
> index 9416c60..46e6fb7 100644
> --- a/net/bluetooth/l2cap_core.c
> +++ b/net/bluetooth/l2cap_core.c
> @@ -1156,12 +1156,6 @@ static void l2cap_le_conn_ready(struct l2cap_conn *conn)
>
> lock_sock(parent);
>
> - /* Check for backlog size */
> - if (sk_acceptq_is_full(parent)) {
> - BT_DBG("backlog full %d", parent->sk_ack_backlog);
> - goto clean;
> - }
> -
> chan = pchan->ops->new_connection(pchan->data);
> if (!chan)
> goto clean;
> @@ -3348,12 +3342,6 @@ static inline int l2cap_connect_req(struct l2cap_conn *conn, struct l2cap_cmd_hd
>
> result = L2CAP_CR_NO_MEM;
>
> - /* Check for backlog size */
> - if (sk_acceptq_is_full(parent)) {
> - BT_DBG("backlog full %d", parent->sk_ack_backlog);
> - goto response;
> - }
> -
> chan = pchan->ops->new_connection(pchan->data);
> if (!chan)
> goto response;
> diff --git a/net/bluetooth/l2cap_sock.c b/net/bluetooth/l2cap_sock.c
> index 8a3620b..bc409a2 100644
> --- a/net/bluetooth/l2cap_sock.c
> +++ b/net/bluetooth/l2cap_sock.c
> @@ -895,6 +895,12 @@ static struct l2cap_chan *l2cap_sock_new_connection_cb(void *data)
> {
> struct sock *sk, *parent = data;
>
> + /* Check for backlog size */
> + if (sk_acceptq_is_full(parent)) {
> + BT_DBG("backlog full %d", parent->sk_ack_backlog);
> + return NULL;
> + }
> +

Ok I see where comes from this change. I feel that this can be merged with
some other patch removing parent sk.

Best regards
Andrei Emeltchenko