2012-03-30 23:05:06

by Andre Guedes

[permalink] [raw]
Subject: [PATCH] Bluetooth: Remove MGMT_ADDR_INVALID macro

This patch removes the MGMT_ADDR_INVALID macro. If the address type
isn't LE, we consider it is BR/EDR type.

Signed-off-by: Andre Guedes <[email protected]>
---
include/net/bluetooth/hci_core.h | 1 -
net/bluetooth/mgmt.c | 19 +++++--------------
2 files changed, 5 insertions(+), 15 deletions(-)

diff --git a/include/net/bluetooth/hci_core.h b/include/net/bluetooth/hci_core.h
index c8d5beb..c0b232c 100644
--- a/include/net/bluetooth/hci_core.h
+++ b/include/net/bluetooth/hci_core.h
@@ -967,7 +967,6 @@ void hci_sock_dev_event(struct hci_dev *hdev, int event);
#define MGMT_ADDR_BREDR 0x00
#define MGMT_ADDR_LE_PUBLIC 0x01
#define MGMT_ADDR_LE_RANDOM 0x02
-#define MGMT_ADDR_INVALID 0xff

#define DISCOV_TYPE_BREDR (BIT(MGMT_ADDR_BREDR))
#define DISCOV_TYPE_LE (BIT(MGMT_ADDR_LE_PUBLIC) | \
diff --git a/net/bluetooth/mgmt.c b/net/bluetooth/mgmt.c
index b4f7e32..c13ea5f 100644
--- a/net/bluetooth/mgmt.c
+++ b/net/bluetooth/mgmt.c
@@ -1635,20 +1635,13 @@ failed:

static u8 link_to_mgmt(u8 link_type, u8 addr_type)
{
- switch (link_type) {
- case LE_LINK:
- switch (addr_type) {
- case ADDR_LE_DEV_PUBLIC:
- return MGMT_ADDR_LE_PUBLIC;
- case ADDR_LE_DEV_RANDOM:
+ if (link_type == LE_LINK) {
+ if (addr_type == ADDR_LE_DEV_RANDOM)
return MGMT_ADDR_LE_RANDOM;
- default:
- return MGMT_ADDR_INVALID;
- }
- case ACL_LINK:
+ else
+ return MGMT_ADDR_LE_PUBLIC;
+ } else {
return MGMT_ADDR_BREDR;
- default:
- return MGMT_ADDR_INVALID;
}
}

@@ -1690,8 +1683,6 @@ static int get_connections(struct sock *sk, struct hci_dev *hdev, void *data,
continue;
bacpy(&rp->addr[i].bdaddr, &c->dst);
rp->addr[i].type = link_to_mgmt(c->type, c->dst_type);
- if (rp->addr[i].type == MGMT_ADDR_INVALID)
- continue;
i++;
}

--
1.7.9.4



2012-03-31 04:39:13

by Marcel Holtmann

[permalink] [raw]
Subject: Re: [PATCH] Bluetooth: Remove MGMT_ADDR_INVALID macro

Hi Andre,

> This patch removes the MGMT_ADDR_INVALID macro. If the address type
> isn't LE, we consider it is BR/EDR type.
>
> Signed-off-by: Andre Guedes <[email protected]>
> ---
> include/net/bluetooth/hci_core.h | 1 -
> net/bluetooth/mgmt.c | 19 +++++--------------
> 2 files changed, 5 insertions(+), 15 deletions(-)
>
> diff --git a/include/net/bluetooth/hci_core.h b/include/net/bluetooth/hci_core.h
> index c8d5beb..c0b232c 100644
> --- a/include/net/bluetooth/hci_core.h
> +++ b/include/net/bluetooth/hci_core.h
> @@ -967,7 +967,6 @@ void hci_sock_dev_event(struct hci_dev *hdev, int event);
> #define MGMT_ADDR_BREDR 0x00
> #define MGMT_ADDR_LE_PUBLIC 0x01
> #define MGMT_ADDR_LE_RANDOM 0x02
> -#define MGMT_ADDR_INVALID 0xff
>
> #define DISCOV_TYPE_BREDR (BIT(MGMT_ADDR_BREDR))
> #define DISCOV_TYPE_LE (BIT(MGMT_ADDR_LE_PUBLIC) | \
> diff --git a/net/bluetooth/mgmt.c b/net/bluetooth/mgmt.c
> index b4f7e32..c13ea5f 100644
> --- a/net/bluetooth/mgmt.c
> +++ b/net/bluetooth/mgmt.c
> @@ -1635,20 +1635,13 @@ failed:
>
> static u8 link_to_mgmt(u8 link_type, u8 addr_type)
> {
> - switch (link_type) {
> - case LE_LINK:
> - switch (addr_type) {
> - case ADDR_LE_DEV_PUBLIC:
> - return MGMT_ADDR_LE_PUBLIC;
> - case ADDR_LE_DEV_RANDOM:
> + if (link_type == LE_LINK) {
> + if (addr_type == ADDR_LE_DEV_RANDOM)
> return MGMT_ADDR_LE_RANDOM;
> - default:
> - return MGMT_ADDR_INVALID;
> - }
> - case ACL_LINK:
> + else
> + return MGMT_ADDR_LE_PUBLIC;
> + } else {
> return MGMT_ADDR_BREDR;
> - default:
> - return MGMT_ADDR_INVALID;
> }
> }
>

and what is the reason to remove the nice switch statement here? I
prefer a default label with a nice comment that we fallback to BR/EDR.

Regards

Marcel



2012-04-05 08:52:38

by Johan Hedberg

[permalink] [raw]
Subject: Re: [PATCH] Bluetooth: Remove MGMT_ADDR_INVALID macro

Hi Andre,

On Tue, Apr 03, 2012, Andre Guedes wrote:
> This patch removes the MGMT_ADDR_INVALID macro. If the address type
> isn't LE, we consider it is BR/EDR type.
>
> Signed-off-by: Andre Guedes <[email protected]>
> ---
> include/net/bluetooth/hci_core.h | 1 -
> net/bluetooth/mgmt.c | 14 +++++++-------
> 2 files changed, 7 insertions(+), 8 deletions(-)

Applied to the bluetooth-next tree. Thanks.

Johan

2012-04-02 17:40:04

by Andre Guedes

[permalink] [raw]
Subject: [PATCH] Bluetooth: Remove MGMT_ADDR_INVALID macro

This patch removes the MGMT_ADDR_INVALID macro. If the address type
isn't LE, we consider it is BR/EDR type.

Signed-off-by: Andre Guedes <[email protected]>
---
include/net/bluetooth/hci_core.h | 1 -
net/bluetooth/mgmt.c | 14 ++++++--------
2 files changed, 6 insertions(+), 9 deletions(-)

diff --git a/include/net/bluetooth/hci_core.h b/include/net/bluetooth/hci_core.h
index c8d5beb..c0b232c 100644
--- a/include/net/bluetooth/hci_core.h
+++ b/include/net/bluetooth/hci_core.h
@@ -967,7 +967,6 @@ void hci_sock_dev_event(struct hci_dev *hdev, int event);
#define MGMT_ADDR_BREDR 0x00
#define MGMT_ADDR_LE_PUBLIC 0x01
#define MGMT_ADDR_LE_RANDOM 0x02
-#define MGMT_ADDR_INVALID 0xff

#define DISCOV_TYPE_BREDR (BIT(MGMT_ADDR_BREDR))
#define DISCOV_TYPE_LE (BIT(MGMT_ADDR_LE_PUBLIC) | \
diff --git a/net/bluetooth/mgmt.c b/net/bluetooth/mgmt.c
index b4f7e32..bcfc20e 100644
--- a/net/bluetooth/mgmt.c
+++ b/net/bluetooth/mgmt.c
@@ -1640,15 +1640,15 @@ static u8 link_to_mgmt(u8 link_type, u8 addr_type)
switch (addr_type) {
case ADDR_LE_DEV_PUBLIC:
return MGMT_ADDR_LE_PUBLIC;
- case ADDR_LE_DEV_RANDOM:
- return MGMT_ADDR_LE_RANDOM;
+
default:
- return MGMT_ADDR_INVALID;
+ /* Fallback to LE Random address type */
+ return MGMT_ADDR_LE_RANDOM;
}
- case ACL_LINK:
- return MGMT_ADDR_BREDR;
+
default:
- return MGMT_ADDR_INVALID;
+ /* Fallback to BR/EDR type */
+ return MGMT_ADDR_BREDR;
}
}

@@ -1690,8 +1690,6 @@ static int get_connections(struct sock *sk, struct hci_dev *hdev, void *data,
continue;
bacpy(&rp->addr[i].bdaddr, &c->dst);
rp->addr[i].type = link_to_mgmt(c->type, c->dst_type);
- if (rp->addr[i].type == MGMT_ADDR_INVALID)
- continue;
i++;
}

--
1.7.9.4


2012-04-02 13:14:34

by Andre Guedes

[permalink] [raw]
Subject: Re: [PATCH] Bluetooth: Remove MGMT_ADDR_INVALID macro

Hi Marcel,

On Sat, Mar 31, 2012 at 1:39 AM, Marcel Holtmann <[email protected]> wrot=
e:
> Hi Andre,
>
>> This patch removes the MGMT_ADDR_INVALID macro. If the address type
>> isn't LE, we consider it is BR/EDR type.
>>
>> Signed-off-by: Andre Guedes <[email protected]>
>> ---
>> =A0include/net/bluetooth/hci_core.h | =A0 =A01 -
>> =A0net/bluetooth/mgmt.c =A0 =A0 =A0 =A0 =A0 =A0 | =A0 19 +++++----------=
----
>> =A02 files changed, 5 insertions(+), 15 deletions(-)
>>
>> diff --git a/include/net/bluetooth/hci_core.h b/include/net/bluetooth/hc=
i_core.h
>> index c8d5beb..c0b232c 100644
>> --- a/include/net/bluetooth/hci_core.h
>> +++ b/include/net/bluetooth/hci_core.h
>> @@ -967,7 +967,6 @@ void hci_sock_dev_event(struct hci_dev *hdev, int ev=
ent);
>> =A0#define MGMT_ADDR_BREDR =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A00x=
00
>> =A0#define MGMT_ADDR_LE_PUBLIC =A0 =A0 =A0 =A0 =A00x01
>> =A0#define MGMT_ADDR_LE_RANDOM =A0 =A0 =A0 =A0 =A00x02
>> -#define MGMT_ADDR_INVALID =A0 =A0 =A0 =A0 =A0 =A00xff
>>
>> =A0#define DISCOV_TYPE_BREDR =A0 =A0 =A0 =A0 =A0 =A0(BIT(MGMT_ADDR_BREDR=
))
>> =A0#define DISCOV_TYPE_LE =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 (B=
IT(MGMT_ADDR_LE_PUBLIC) | \
>> diff --git a/net/bluetooth/mgmt.c b/net/bluetooth/mgmt.c
>> index b4f7e32..c13ea5f 100644
>> --- a/net/bluetooth/mgmt.c
>> +++ b/net/bluetooth/mgmt.c
>> @@ -1635,20 +1635,13 @@ failed:
>>
>> =A0static u8 link_to_mgmt(u8 link_type, u8 addr_type)
>> =A0{
>> - =A0 =A0 switch (link_type) {
>> - =A0 =A0 case LE_LINK:
>> - =A0 =A0 =A0 =A0 =A0 =A0 switch (addr_type) {
>> - =A0 =A0 =A0 =A0 =A0 =A0 case ADDR_LE_DEV_PUBLIC:
>> - =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 return MGMT_ADDR_LE_PUBLIC;
>> - =A0 =A0 =A0 =A0 =A0 =A0 case ADDR_LE_DEV_RANDOM:
>> + =A0 =A0 if (link_type =3D=3D LE_LINK) {
>> + =A0 =A0 =A0 =A0 =A0 =A0 if (addr_type =3D=3D ADDR_LE_DEV_RANDOM)
>> =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 return MGMT_ADDR_LE_RANDOM;
>> - =A0 =A0 =A0 =A0 =A0 =A0 default:
>> - =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 return MGMT_ADDR_INVALID;
>> - =A0 =A0 =A0 =A0 =A0 =A0 }
>> - =A0 =A0 case ACL_LINK:
>> + =A0 =A0 =A0 =A0 =A0 =A0 else
>> + =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 return MGMT_ADDR_LE_PUBLIC;
>> + =A0 =A0 } else {
>> =A0 =A0 =A0 =A0 =A0 =A0 =A0 return MGMT_ADDR_BREDR;
>> - =A0 =A0 default:
>> - =A0 =A0 =A0 =A0 =A0 =A0 return MGMT_ADDR_INVALID;
>> =A0 =A0 =A0 }
>> =A0}
>>
>
> and what is the reason to remove the nice switch statement here? I
> prefer a default label with a nice comment that we fallback to BR/EDR.

Ok, I'll change this and send a new version of this patch.

Thanks,

Andre