2018-09-07 23:36:03

by Luiz Carlos Ramos

[permalink] [raw]
Subject: [PATCH] ath3k: add more information to error message

When there is an error in either ath3k_load_firmware() or
ath3k_load_fwfile(), the inlined function ath3k_log_failed_loading() is
called receiving the error returned and both the block size requested to
load and the size actually loaded. These values are printed in an error
message using the macro BT_ERR.

This patch creates a new function which does the same but also receives
the "count" variable, in order to show more information when a failing
firmware loading happens. The calls to the older function were changed
to the new one.

This event is being monitored in a laptop with an adapter which
identifies itself as 0cf3:0036, where sometimes there are errors in the
firmware loading process.

Signed-off-by: Luiz Carlos Ramos <[email protected]>
---
drivers/bluetooth/ath3k.c | 12 ++++++++++--
1 file changed, 10 insertions(+), 2 deletions(-)

diff --git a/drivers/bluetooth/ath3k.c b/drivers/bluetooth/ath3k.c
index 3a8c47efea55..ebc312cb4412 100644
--- a/drivers/bluetooth/ath3k.c
+++ b/drivers/bluetooth/ath3k.c
@@ -209,6 +209,14 @@ static inline void ath3k_log_failed_loading(int err, int len, int size)
err, len, size);
}

+static inline void ath3k_log_failed_loading_2(int err, int len, int size,
+ int count)
+{
+ BT_ERR("%s err = %d, len = %d, size = %d, count = %d",
+ "Error in firmware loading",
+ err, len, size, count);
+}
+
#define USB_REQ_DFU_DNLOAD 1
#define BULK_SIZE 4096
#define FW_HDR_SIZE 20
@@ -257,7 +265,7 @@ static int ath3k_load_firmware(struct usb_device *udev,
&len, 3000);

if (err || (len != size)) {
- ath3k_log_failed_loading(err, len, size);
+ ath3k_log_failed_loading_2(err, len, size, count);
goto error;
}

@@ -356,7 +364,7 @@ static int ath3k_load_fwfile(struct usb_device *udev,
err = usb_bulk_msg(udev, pipe, send_buf, size,
&len, 3000);
if (err || (len != size)) {
- ath3k_log_failed_loading(err, len, size);
+ ath3k_log_failed_loading_2(err, len, size, count);
kfree(send_buf);
return err;
}
--
2.14.4


2018-09-27 10:47:14

by Marcel Holtmann

[permalink] [raw]
Subject: Re: [PATCH] ath3k: add more information to error message

Hi Luiz,

> When there is an error in either ath3k_load_firmware() or
> ath3k_load_fwfile(), the inlined function ath3k_log_failed_loading() is
> called receiving the error returned and both the block size requested to
> load and the size actually loaded. These values are printed in an error
> message using the macro BT_ERR.
>
> This patch creates a new function which does the same but also receives
> the "count" variable, in order to show more information when a failing
> firmware loading happens. The calls to the older function were changed
> to the new one.
>
> This event is being monitored in a laptop with an adapter which
> identifies itself as 0cf3:0036, where sometimes there are errors in the
> firmware loading process.
>
> Signed-off-by: Luiz Carlos Ramos <[email protected]>
> ---
> drivers/bluetooth/ath3k.c | 12 ++++++++++--
> 1 file changed, 10 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/bluetooth/ath3k.c b/drivers/bluetooth/ath3k.c
> index 3a8c47efea55..ebc312cb4412 100644
> --- a/drivers/bluetooth/ath3k.c
> +++ b/drivers/bluetooth/ath3k.c
> @@ -209,6 +209,14 @@ static inline void ath3k_log_failed_loading(int err, int len, int size)
> err, len, size);
> }
>
> +static inline void ath3k_log_failed_loading_2(int err, int len, int size,
> + int count)
> +{
> + BT_ERR("%s err = %d, len = %d, size = %d, count = %d",
> + "Error in firmware loading",
> + err, len, size, count);
> +}
> +

just change the the original ath3k_log_failed_loading to include the count parameter.

Regards

Marcel


2018-09-27 20:13:29

by Luiz Carlos Ramos

[permalink] [raw]
Subject: Re: [PATCH] ath3k: add more information to error message

Hi, Marcel,


On Thu, Sep 27, 2018 at 12:47:11PM +0200, Marcel Holtmann wrote:
> Hi Luiz,
>
> > When there is an error in either ath3k_load_firmware() or
> > ath3k_load_fwfile(), the inlined function ath3k_log_failed_loading() is
> > called receiving the error returned and both the block size requested to
> > load and the size actually loaded. These values are printed in an error
> > message using the macro BT_ERR.
> >
> > This patch creates a new function which does the same but also receives
> > the "count" variable, in order to show more information when a failing
> > firmware loading happens. The calls to the older function were changed
> > to the new one.
> >
> > This event is being monitored in a laptop with an adapter which
> > identifies itself as 0cf3:0036, where sometimes there are errors in the
> > firmware loading process.
> >
> > Signed-off-by: Luiz Carlos Ramos <[email protected]>
> > ---
> > drivers/bluetooth/ath3k.c | 12 ++++++++++--
> > 1 file changed, 10 insertions(+), 2 deletions(-)
> >
> > diff --git a/drivers/bluetooth/ath3k.c b/drivers/bluetooth/ath3k.c
> > index 3a8c47efea55..ebc312cb4412 100644
> > --- a/drivers/bluetooth/ath3k.c
> > +++ b/drivers/bluetooth/ath3k.c
> > @@ -209,6 +209,14 @@ static inline void ath3k_log_failed_loading(int err, int len, int size)
> > err, len, size);
> > }
> >
> > +static inline void ath3k_log_failed_loading_2(int err, int len, int size,
> > + int count)
> > +{
> > + BT_ERR("%s err = %d, len = %d, size = %d, count = %d",
> > + "Error in firmware loading",
> > + err, len, size, count);
> > +}
> > +
>
> just change the the original ath3k_log_failed_loading to include the count parameter.
>

Ok, fine. I'll send it in a next message.

Many thanks,

Luiz