Return-Path: MIME-Version: 1.0 In-Reply-To: <20140325083837.GB5490@t440s.lan> References: <1395735950-17968-1-git-send-email-surendra.tux@gmail.com> <20140325083837.GB5490@t440s.lan> Date: Tue, 25 Mar 2014 10:09:56 -0700 Message-ID: Subject: Re: [PATCH] drivers:bluetooth:ath3k.c: Fixed sparse warning for cast to restricted __le32 From: Surendra Patil To: Surendra Patil , Marcel Holtmann , gustavo@padovan.org, linux-bluetooth@vger.kernel.org, linux-kernel@vger.kernel.org Content-Type: multipart/alternative; boundary=047d7b5d8391e3c82604f5716b7d List-ID: --047d7b5d8391e3c82604f5716b7d Content-Type: text/plain; charset=ISO-8859-1 thanks for reviews. will work on it . On Tue, Mar 25, 2014 at 1:38 AM, Johan Hedberg wrote: > Hi, > > On Tue, Mar 25, 2014, Surendra Patil wrote: > > This patch fixes below Sparse warnings - > > drivers/bluetooth/ath3k.c:370:17: warning: cast to restricted __le32 > > drivers/bluetooth/ath3k.c:432:17: warning: cast to restricted __le32 > > > > Signed-off-by: Surendra Patil > > --- > > drivers/bluetooth/ath3k.c | 4 ++-- > > 1 file changed, 2 insertions(+), 2 deletions(-) > > > > diff --git a/drivers/bluetooth/ath3k.c b/drivers/bluetooth/ath3k.c > > index be571fe..badacbc 100644 > > --- a/drivers/bluetooth/ath3k.c > > +++ b/drivers/bluetooth/ath3k.c > > @@ -367,7 +367,7 @@ static int ath3k_load_patch(struct usb_device *udev) > > } > > > > snprintf(filename, ATH3K_NAME_LEN, "ar3k/AthrBT_0x%08x.dfu", > > - le32_to_cpu(fw_version.rom_version)); > > + fw_version.rom_version); > > > > ret = request_firmware(&firmware, filename, &udev->dev); > > if (ret < 0) { > > @@ -429,7 +429,7 @@ static int ath3k_load_syscfg(struct usb_device *udev) > > } > > > > snprintf(filename, ATH3K_NAME_LEN, "ar3k/ramps_0x%08x_%d%s", > > - le32_to_cpu(fw_version.rom_version), clk_value, ".dfu"); > > + fw_version.rom_version, clk_value, ".dfu"); > > > > ret = request_firmware(&firmware, filename, &udev->dev); > > if (ret < 0) { > > Are you sure this doesn't introduce a bug on big endian systems? We just > recently applied commit b9e2535acad8f52a17e2aa843d45a6b756b59592 which > adds this le32_to_cpu conversion. Probably the correct fix is to update > this fw_version struct definition to use __le32 for any member that's > expected to be in little endian format? > > Johan > -- Best, Surendra Patil --047d7b5d8391e3c82604f5716b7d Content-Type: text/html; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable
thanks for reviews.
will work on it .


On Tue, Mar 25, 20= 14 at 1:38 AM, Johan Hedberg <johan.hedberg@gmail.com>= wrote:
Hi,

On Tue, Mar 25, 2014, Surendra Patil wrote:
> This patch fixes below Sparse warnings -
> drivers/bluetooth/ath3k.c:370:17: warning: cast to restricted __le32 > drivers/bluetooth/ath3k.c:432:17: warning: cast to restricted __le32 >
> Signed-off-by: Surendra Patil <surendra.tux@gmail.com>
> ---
> =A0drivers/bluetooth/ath3k.c | 4 ++--
> =A01 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/bluetooth/ath3k.c b/drivers/bluetooth/ath3k.c
> index be571fe..badacbc 100644
> --- a/drivers/bluetooth/ath3k.c
> +++ b/drivers/bluetooth/ath3k.c
> @@ -367,7 +367,7 @@ static int ath3k_load_patch(struct usb_device *ude= v)
> =A0 =A0 =A0 }
>
> =A0 =A0 =A0 snprintf(filename, ATH3K_NAME_LEN, "ar3k/AthrBT_0x%08= x.dfu",
> - =A0 =A0 =A0 =A0 =A0 =A0 le32_to_cpu(fw_version.rom_version));
> + =A0 =A0 =A0 =A0 =A0 =A0 fw_version.rom_version);
>
> =A0 =A0 =A0 ret =3D request_firmware(&firmware, filename, &ude= v->dev);
> =A0 =A0 =A0 if (ret < 0) {
> @@ -429,7 +429,7 @@ static int ath3k_load_syscfg(struct usb_device *ud= ev)
> =A0 =A0 =A0 }
>
> =A0 =A0 =A0 snprintf(filename, ATH3K_NAME_LEN, "ar3k/ramps_0x%08x= _%d%s",
> - =A0 =A0 =A0 =A0 =A0 =A0 le32_to_cpu(fw_version.rom_version), clk_val= ue, ".dfu");
> + =A0 =A0 =A0 =A0 =A0 =A0 =A0fw_version.rom_version, clk_value, "= .dfu");
>
> =A0 =A0 =A0 ret =3D request_firmware(&firmware, filename, &ude= v->dev);
> =A0 =A0 =A0 if (ret < 0) {

Are you sure this doesn't introduce a bug on big endian sys= tems? We just
recently applied commit b9e2535acad8f52a17e2aa843d45a6b756b59592 which
adds this le32_to_cpu conversion. Probably the correct fix is to update
this fw_version struct definition to use __le32 for any member that's expected to be in little endian format?

Johan



--
Best,
Surendra Patil
--047d7b5d8391e3c82604f5716b7d--