2009-02-25 21:58:07

by Roel Kluin

[permalink] [raw]
Subject: [PATCH] Bluetooth: i reaches pkts_to_be_removed + 1

i reaches pkts_to_be_removed + 1

Signed-off-by: Roel Kluin <[email protected]>
---
diff --git a/drivers/bluetooth/hci_bcsp.c b/drivers/bluetooth/hci_bcsp.c
index 894b2cb..177f34b 100644
--- a/drivers/bluetooth/hci_bcsp.c
+++ b/drivers/bluetooth/hci_bcsp.c
@@ -385,7 +385,7 @@ static void bcsp_pkt_cull(struct bcsp_struct *bcsp)

spin_unlock_irqrestore(&bcsp->unack.lock, flags);

- if (i != pkts_to_be_removed)
+ if (i <= pkts_to_be_removed)
BT_ERR("Removed only %u out of %u pkts", i, pkts_to_be_removed);
}



2009-02-25 23:43:06

by Marcel Holtmann

[permalink] [raw]
Subject: Re: [PATCH] Bluetooth: i reaches pkts_to_be_removed + 1

Hi David,

> >> diff --git a/drivers/bluetooth/hci_bcsp.c b/drivers/bluetooth/hci_bcsp.c
> >> index 894b2cb..177f34b 100644
> >> --- a/drivers/bluetooth/hci_bcsp.c
> >> +++ b/drivers/bluetooth/hci_bcsp.c
> >> @@ -385,7 +385,7 @@ static void bcsp_pkt_cull(struct bcsp_struct *bcsp)
> >>
> >> spin_unlock_irqrestore(&bcsp->unack.lock, flags);
> >>
> >> - if (i != pkts_to_be_removed)
> >> + if (i <= pkts_to_be_removed)
> >> BT_ERR("Removed only %u out of %u pkts", i, pkts_to_be_removed);
> >> }
> >>
> >
> > patch looks good, but can you please fill in the commit message with a
> > little bit more details and background.
> >
>
> Isn't there something wrong with this? The patched code looks like it
> will output apparently nonsensical messages like "Removed only 10 out of
> 10 pkts".

yeah, that would make no real sense. I actually just thought about why
we have that error message at all. We might should remove the message
all together.

Regards

Marcel



2009-02-25 23:08:39

by David Sainty

[permalink] [raw]
Subject: Re: [PATCH] Bluetooth: i reaches pkts_to_be_removed + 1

Marcel Holtmann wrote:
> Hi Roel,
>
>
>> i reaches pkts_to_be_removed + 1
>>
>> Signed-off-by: Roel Kluin <[email protected]>
>> ---
>> diff --git a/drivers/bluetooth/hci_bcsp.c b/drivers/bluetooth/hci_bcsp.c
>> index 894b2cb..177f34b 100644
>> --- a/drivers/bluetooth/hci_bcsp.c
>> +++ b/drivers/bluetooth/hci_bcsp.c
>> @@ -385,7 +385,7 @@ static void bcsp_pkt_cull(struct bcsp_struct *bcsp)
>>
>> spin_unlock_irqrestore(&bcsp->unack.lock, flags);
>>
>> - if (i != pkts_to_be_removed)
>> + if (i <= pkts_to_be_removed)
>> BT_ERR("Removed only %u out of %u pkts", i, pkts_to_be_removed);
>> }
>>
>
> patch looks good, but can you please fill in the commit message with a
> little bit more details and background.
>

Isn't there something wrong with this? The patched code looks like it
will output apparently nonsensical messages like "Removed only 10 out of
10 pkts".

2009-02-25 22:53:55

by Roel Kluin

[permalink] [raw]
Subject: Re: [PATCH] Bluetooth: i reaches pkts_to_be_removed + 1

>> i reaches pkts_to_be_removed + 1

> patch looks good, but can you please fill in the commit message with a
> little bit more details and background.

This was found by code inspection by the way, and not tested.

how about:
------------------------------>8-------------8<---------------------------------
When all packets are removed 'i' reaches pkts_to_be_removed + 1, so the
error message was printed upon success, and not when the last packet
wasn't removed.

Signed-off-by: Roel Kluin <[email protected]>
---
diff --git a/drivers/bluetooth/hci_bcsp.c b/drivers/bluetooth/hci_bcsp.c
index 894b2cb..177f34b 100644
--- a/drivers/bluetooth/hci_bcsp.c
+++ b/drivers/bluetooth/hci_bcsp.c
@@ -385,7 +385,7 @@ static void bcsp_pkt_cull(struct bcsp_struct *bcsp)

spin_unlock_irqrestore(&bcsp->unack.lock, flags);

- if (i != pkts_to_be_removed)
+ if (i <= pkts_to_be_removed)
BT_ERR("Removed only %u out of %u pkts", i, pkts_to_be_removed);
}


2009-02-25 22:40:39

by Marcel Holtmann

[permalink] [raw]
Subject: Re: [PATCH] Bluetooth: i reaches pkts_to_be_removed + 1

Hi Roel,

> i reaches pkts_to_be_removed + 1
>
> Signed-off-by: Roel Kluin <[email protected]>
> ---
> diff --git a/drivers/bluetooth/hci_bcsp.c b/drivers/bluetooth/hci_bcsp.c
> index 894b2cb..177f34b 100644
> --- a/drivers/bluetooth/hci_bcsp.c
> +++ b/drivers/bluetooth/hci_bcsp.c
> @@ -385,7 +385,7 @@ static void bcsp_pkt_cull(struct bcsp_struct *bcsp)
>
> spin_unlock_irqrestore(&bcsp->unack.lock, flags);
>
> - if (i != pkts_to_be_removed)
> + if (i <= pkts_to_be_removed)
> BT_ERR("Removed only %u out of %u pkts", i, pkts_to_be_removed);
> }

patch looks good, but can you please fill in the commit message with a
little bit more details and background.

Regards

Marcel



2009-03-02 12:37:22

by Roel Kluin

[permalink] [raw]
Subject: Re: [PATCH] Bluetooth: i reaches pkts_to_be_removed + 1


>> Isn't there something wrong with this? The patched code looks like it
>> will output apparently nonsensical messages like "Removed only 10 out of
>> 10 pkts".
>
> yeah, that would make no real sense. I actually just thought about why
> we have that error message at all. We should remove the message all together.
------------------------------>8-------------8<---------------------------------
When all packets are removed 'i' reaches pkts_to_be_removed + 1, so the error
message was printed upon success, and not when the last packet wasn't removed.
Since it results in nonsensical messages, it was decided to remove the test
altogether.

Signed-off-by: Roel Kluin <[email protected]>
---
diff --git a/drivers/bluetooth/hci_bcsp.c b/drivers/bluetooth/hci_bcsp.c
index 894b2cb..52c6bdc 100644
--- a/drivers/bluetooth/hci_bcsp.c
+++ b/drivers/bluetooth/hci_bcsp.c
@@ -384,9 +384,6 @@ static void bcsp_pkt_cull(struct bcsp_struct *bcsp)
del_timer(&bcsp->tbcsp);

spin_unlock_irqrestore(&bcsp->unack.lock, flags);
-
- if (i != pkts_to_be_removed)
- BT_ERR("Removed only %u out of %u pkts", i, pkts_to_be_removed);
}

/* Handle BCSP link-establishment packets. When we