Re: [PATCH] scsi: bfa: fix type conversion warning

From: Hannes Reinecke
Date: Thu Dec 07 2017 - 04:19:51 EST


On Wed, 6 Dec 2017 15:14:18 +0100
Arnd Bergmann <arnd@xxxxxxxx> wrote:

> A regression fix introduced a harmless type mismatch warning:
>
> drivers/scsi/bfa/bfad_bsg.c: In function 'bfad_im_bsg_vendor_request':
> drivers/scsi/bfa/bfad_bsg.c:3137:35: error: initialization of 'struct
> bfad_im_port_s *' from 'long unsigned int' makes pointer from integer
> without a cast [-Werror=int-conversion] struct bfad_im_port_s
> *im_port = shost->hostdata[0]; ^~~~~ drivers/scsi/bfa/bfad_bsg.c: In
> function 'bfad_im_bsg_els_ct_request':
> drivers/scsi/bfa/bfad_bsg.c:3353:35: error: initialization of 'struct
> bfad_im_port_s *' from 'long unsigned int' makes pointer from integer
> without a cast [-Werror=int-conversion] struct bfad_im_port_s
> *im_port = shost->hostdata[0];
>
> This changes the code back to shost_priv() once more, but encapsulates
> it in an inline function to document the rather unusual way of
> using the private data only as a pointer to the previously allocated
> structure.
>
> I did not try to get rid of the extra indirection level entirely,
> which would have been rather invasive and required reworking the
> entire initialization sequence.
>
> Fixes: 45349821ab3a ("scsi: bfa: fix access to bfad_im_port_s")
> Signed-off-by: Arnd Bergmann <arnd@xxxxxxxx>
> ---
> drivers/scsi/bfa/bfad_bsg.c | 4 ++--
> drivers/scsi/bfa/bfad_im.c | 6 ++++--
> drivers/scsi/bfa/bfad_im.h | 10 ++++++++++
> 3 files changed, 16 insertions(+), 4 deletions(-)
>

Reviewed-by: Hannes Reinecke <hare@xxxxxxxx>

Cheers,

Hannes