The variable val in the set_ssp() function of the management interface
is not needed. Just use cp->val directly since its input values have
already been validated.
Signed-off-by: Marcel Holtmann <[email protected]>
---
net/bluetooth/mgmt.c | 8 +++-----
1 file changed, 3 insertions(+), 5 deletions(-)
diff --git a/net/bluetooth/mgmt.c b/net/bluetooth/mgmt.c
index a9d7506..2fb4d35 100644
--- a/net/bluetooth/mgmt.c
+++ b/net/bluetooth/mgmt.c
@@ -1290,7 +1290,7 @@ static int set_ssp(struct sock *sk, struct hci_dev *hdev, void *data, u16 len)
{
struct mgmt_mode *cp = data;
struct pending_cmd *cmd;
- u8 val, status;
+ u8 status;
int err;
BT_DBG("request for %s", hdev->name);
@@ -1309,8 +1309,6 @@ static int set_ssp(struct sock *sk, struct hci_dev *hdev, void *data, u16 len)
hci_dev_lock(hdev);
- val = !!cp->val;
-
if (!hdev_is_powered(hdev)) {
bool changed = false;
@@ -1335,7 +1333,7 @@ static int set_ssp(struct sock *sk, struct hci_dev *hdev, void *data, u16 len)
goto failed;
}
- if (test_bit(HCI_SSP_ENABLED, &hdev->dev_flags) == val) {
+ if (!!cp->val == test_bit(HCI_SSP_ENABLED, &hdev->dev_flags)) {
err = send_settings_rsp(sk, MGMT_OP_SET_SSP, hdev);
goto failed;
}
@@ -1346,7 +1344,7 @@ static int set_ssp(struct sock *sk, struct hci_dev *hdev, void *data, u16 len)
goto failed;
}
- err = hci_send_cmd(hdev, HCI_OP_WRITE_SSP_MODE, sizeof(val), &val);
+ err = hci_send_cmd(hdev, HCI_OP_WRITE_SSP_MODE, 1, &cp->val);
if (err < 0) {
mgmt_pending_remove(cmd);
goto failed;
--
1.8.3.1
Hi Andrei,
>> The variable val in the set_ssp() function of the management interface
>> is not needed. Just use cp->val directly since its input values have
>> already been validated.
>>
>> Signed-off-by: Marcel Holtmann <[email protected]>
>> ---
>> net/bluetooth/mgmt.c | 8 +++-----
>> 1 file changed, 3 insertions(+), 5 deletions(-)
>>
>> diff --git a/net/bluetooth/mgmt.c b/net/bluetooth/mgmt.c
>> index a9d7506..2fb4d35 100644
>> --- a/net/bluetooth/mgmt.c
>> +++ b/net/bluetooth/mgmt.c
>> @@ -1290,7 +1290,7 @@ static int set_ssp(struct sock *sk, struct hci_dev *hdev, void *data, u16 len)
>> {
>> struct mgmt_mode *cp = data;
>> struct pending_cmd *cmd;
>> - u8 val, status;
>> + u8 status;
>> int err;
>>
>> BT_DBG("request for %s", hdev->name);
>> @@ -1309,8 +1309,6 @@ static int set_ssp(struct sock *sk, struct hci_dev *hdev, void *data, u16 len)
>>
>> hci_dev_lock(hdev);
>>
>> - val = !!cp->val;
>> -
>> if (!hdev_is_powered(hdev)) {
>> bool changed = false;
>>
>> @@ -1335,7 +1333,7 @@ static int set_ssp(struct sock *sk, struct hci_dev *hdev, void *data, u16 len)
>> goto failed;
>> }
>>
>> - if (test_bit(HCI_SSP_ENABLED, &hdev->dev_flags) == val) {
>> + if (!!cp->val == test_bit(HCI_SSP_ENABLED, &hdev->dev_flags)) {
>> err = send_settings_rsp(sk, MGMT_OP_SET_SSP, hdev);
>> goto failed;
>> }
>> @@ -1346,7 +1344,7 @@ static int set_ssp(struct sock *sk, struct hci_dev *hdev, void *data, u16 len)
>> goto failed;
>> }
>>
>> - err = hci_send_cmd(hdev, HCI_OP_WRITE_SSP_MODE, sizeof(val), &val);
>> + err = hci_send_cmd(hdev, HCI_OP_WRITE_SSP_MODE, 1, &cp->val);
>
> I think sizeof is read better then magic number
if you look at the whole code base, for cases of single u8, we use the "magic" number 1 a lot to keep the lines shorter.
Regards
Marcel
Hi Anderson,
>> The variable val in the set_ssp() function of the management interface
>> is not needed. Just use cp->val directly since its input values have
>> already been validated.
>> [...]
>> - if (test_bit(HCI_SSP_ENABLED, &hdev->dev_flags) == val) {
>> + if (!!cp->val == test_bit(HCI_SSP_ENABLED, &hdev->dev_flags)) {
>
> In this case, the "!!" trick is unnecessary as the only allowed values
> are 0x00 and 0x01 (I believe this has been removed in other similar
> cases).
it has not been removed. That is why I changed it and made it similar to the other case.
Regards
Marcel
Hi Marcel,
On Thu, Oct 10, 2013 at 6:08 AM, Marcel Holtmann <[email protected]> wrote:
> The variable val in the set_ssp() function of the management interface
> is not needed. Just use cp->val directly since its input values have
> already been validated.
> [...]
> - if (test_bit(HCI_SSP_ENABLED, &hdev->dev_flags) == val) {
> + if (!!cp->val == test_bit(HCI_SSP_ENABLED, &hdev->dev_flags)) {
In this case, the "!!" trick is unnecessary as the only allowed values
are 0x00 and 0x01 (I believe this has been removed in other similar
cases).
Best Regards,
--
Anderson Lizardo
Instituto Nokia de Tecnologia - INdT
Manaus - Brazil
Hi Marcel,
On Thu, Oct 10, 2013 at 03:08:10AM -0700, Marcel Holtmann wrote:
> The variable val in the set_ssp() function of the management interface
> is not needed. Just use cp->val directly since its input values have
> already been validated.
>
> Signed-off-by: Marcel Holtmann <[email protected]>
> ---
> net/bluetooth/mgmt.c | 8 +++-----
> 1 file changed, 3 insertions(+), 5 deletions(-)
>
> diff --git a/net/bluetooth/mgmt.c b/net/bluetooth/mgmt.c
> index a9d7506..2fb4d35 100644
> --- a/net/bluetooth/mgmt.c
> +++ b/net/bluetooth/mgmt.c
> @@ -1290,7 +1290,7 @@ static int set_ssp(struct sock *sk, struct hci_dev *hdev, void *data, u16 len)
> {
> struct mgmt_mode *cp = data;
> struct pending_cmd *cmd;
> - u8 val, status;
> + u8 status;
> int err;
>
> BT_DBG("request for %s", hdev->name);
> @@ -1309,8 +1309,6 @@ static int set_ssp(struct sock *sk, struct hci_dev *hdev, void *data, u16 len)
>
> hci_dev_lock(hdev);
>
> - val = !!cp->val;
> -
> if (!hdev_is_powered(hdev)) {
> bool changed = false;
>
> @@ -1335,7 +1333,7 @@ static int set_ssp(struct sock *sk, struct hci_dev *hdev, void *data, u16 len)
> goto failed;
> }
>
> - if (test_bit(HCI_SSP_ENABLED, &hdev->dev_flags) == val) {
> + if (!!cp->val == test_bit(HCI_SSP_ENABLED, &hdev->dev_flags)) {
> err = send_settings_rsp(sk, MGMT_OP_SET_SSP, hdev);
> goto failed;
> }
> @@ -1346,7 +1344,7 @@ static int set_ssp(struct sock *sk, struct hci_dev *hdev, void *data, u16 len)
> goto failed;
> }
>
> - err = hci_send_cmd(hdev, HCI_OP_WRITE_SSP_MODE, sizeof(val), &val);
> + err = hci_send_cmd(hdev, HCI_OP_WRITE_SSP_MODE, 1, &cp->val);
I think sizeof is read better then magic number
Best regards
Andrei Emeltchenko
Hi Marcel,
On Thu, Oct 10, 2013, Marcel Holtmann wrote:
> The variable val in the set_ssp() function of the management interface
> is not needed. Just use cp->val directly since its input values have
> already been validated.
>
> Signed-off-by: Marcel Holtmann <[email protected]>
> ---
> net/bluetooth/mgmt.c | 8 +++-----
> 1 file changed, 3 insertions(+), 5 deletions(-)
Both patches have been applied to bluetooth-next. Thanks.
Johan