Bluetooth: L2CAP: Introduce proper defines for PSM ranges
Having proper defines makes the code a bit readable, it also avoids duplicating hard-coded values since these are also needed when auto-allocating PSM values (in a subsequent patch). Signed-off-by: Johan Hedberg <johan.hedberg@intel.com> Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
This commit is contained in:
Родитель
d10d34aa7c
Коммит
114f9f1e03
|
@ -252,6 +252,12 @@ struct l2cap_conn_rsp {
|
|||
#define L2CAP_PSM_3DSP 0x0021
|
||||
#define L2CAP_PSM_IPSP 0x0023 /* 6LoWPAN */
|
||||
|
||||
#define L2CAP_PSM_DYN_START 0x1001
|
||||
#define L2CAP_PSM_DYN_END 0xffff
|
||||
#define L2CAP_PSM_AUTO_END 0x10ff
|
||||
#define L2CAP_PSM_LE_DYN_START 0x0080
|
||||
#define L2CAP_PSM_LE_DYN_END 0x00ff
|
||||
|
||||
/* channel identifier */
|
||||
#define L2CAP_CID_SIGNALING 0x0001
|
||||
#define L2CAP_CID_CONN_LESS 0x0002
|
||||
|
|
|
@ -58,7 +58,7 @@ static int l2cap_validate_bredr_psm(u16 psm)
|
|||
return -EINVAL;
|
||||
|
||||
/* Restrict usage of well-known PSMs */
|
||||
if (psm < 0x1001 && !capable(CAP_NET_BIND_SERVICE))
|
||||
if (psm < L2CAP_PSM_DYN_START && !capable(CAP_NET_BIND_SERVICE))
|
||||
return -EACCES;
|
||||
|
||||
return 0;
|
||||
|
@ -67,11 +67,11 @@ static int l2cap_validate_bredr_psm(u16 psm)
|
|||
static int l2cap_validate_le_psm(u16 psm)
|
||||
{
|
||||
/* Valid LE_PSM ranges are defined only until 0x00ff */
|
||||
if (psm > 0x00ff)
|
||||
if (psm > L2CAP_PSM_LE_DYN_END)
|
||||
return -EINVAL;
|
||||
|
||||
/* Restrict fixed, SIG assigned PSM values to CAP_NET_BIND_SERVICE */
|
||||
if (psm <= 0x007f && !capable(CAP_NET_BIND_SERVICE))
|
||||
if (psm < L2CAP_PSM_LE_DYN_START && !capable(CAP_NET_BIND_SERVICE))
|
||||
return -EACCES;
|
||||
|
||||
return 0;
|
||||
|
|
Загрузка…
Ссылка в новой задаче