Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 114f9f1e authored by Johan Hedberg's avatar Johan Hedberg Committed by Marcel Holtmann
Browse files

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: default avatarJohan Hedberg <johan.hedberg@intel.com>
Signed-off-by: default avatarMarcel Holtmann <marcel@holtmann.org>
parent d10d34aa
Loading
Loading
Loading
Loading
+6 −0
Original line number Diff line number Diff line
@@ -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
+3 −3
Original line number Diff line number Diff line
@@ -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;