Re: [PATCH v3 2/8] Bluetooth: Fix L2CAP command reject reason

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Marcel,

On Sat, Sep 14, 2013, Marcel Holtmann wrote:
> > There are several possible reason codes that can be sent in the command
> > reject L2CAP packet. Before this patch the code has used a hard-coded
> > single response code ("command not understood"). This patch adds a
> > helper function to map the return value of an L2CAP handler function to
> > the correct command reject reason.
> > 
> > Signed-off-by: Johan Hedberg <johan.hedberg@xxxxxxxxx>
> > ---
> > net/bluetooth/l2cap_core.c | 22 ++++++++++++++++++----
> > 1 file changed, 18 insertions(+), 4 deletions(-)
> > 
> > diff --git a/net/bluetooth/l2cap_core.c b/net/bluetooth/l2cap_core.c
> > index b3bb7bc..83acb28 100644
> > --- a/net/bluetooth/l2cap_core.c
> > +++ b/net/bluetooth/l2cap_core.c
> > @@ -5294,6 +5294,20 @@ static inline int l2cap_le_sig_cmd(struct l2cap_conn *conn,
> > 	}
> > }
> > 
> > +static u16 l2cap_err_to_reason(int err)
> 
> what we could to is return __le16 here. And then keep using
> __constant_cpu_to_le16.

I was mainly trying to follow the principle of using host endianness
until the very moment when we actually encode into the protocol struct.
However, I agree that we could be more pragmatic here since the only
users of this function are places where we're directly encoding into the
response PDU.

> > +{
> > +	switch (err) {
> > +	case -EFAULT:
> > +		return L2CAP_REJ_INVALID_CID;
> > +	case -EMSGSIZE:
> > +		return L2CAP_REJ_MTU_EXCEEDED;
> > +	case -EINVAL:
> > +	case -EPROTO:
> > +	default:
> > +		return L2CAP_REJ_NOT_UNDERSTOOD;
> > +	}
> > +}
> 
> Is there really a point in listing EINVAL and EPROTO here.

I thought it would make it clear which error codes are recommended for
parsing errors but I can remove them and just rely on default.

Johan
--
To unsubscribe from this list: send the line "unsubscribe linux-bluetooth" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Bluez Devel]     [Linux Wireless Networking]     [Linux Wireless Personal Area Networking]     [Linux ATH6KL]     [Linux USB Devel]     [Linux Media Drivers]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Big List of Linux Books]

  Powered by Linux