Re: [PATCH] aacraid: Fix 2T+ drives on SmartIOC-2000

2017-09-14 Thread Martin K. Petersen

Dave,

Not sure what happened. I do not have the original patch submission that
Raghava replied to. Nor does patchwork or marc.info.

Please resubmit. Thanks!

-- 
Martin K. Petersen  Oracle Linux Engineering


RE: [PATCH] aacraid: Fix 2T+ drives on SmartIOC-2000

2017-09-08 Thread Raghava Aditya Renukunta
> -Original Message-
> From: Dave Carroll [mailto:david.carr...@microsemi.com]
> Sent: Wednesday, August 30, 2017 3:23 PM
> To: Martin K . Petersen ; James Bottomley
> 
> Cc: Dave Carroll ; linux-scsi  s...@vger.kernel.org>; dl-esc-Aacraid Linux Driver
> ; Scott Benesh ;
> Brian King ; sta...@vger.kernel.org
> Subject: [PATCH] aacraid: Fix 2T+ drives on SmartIOC-2000
> 
> The logic for supporting large drives was previously tied to 4Kn support
> for SmartIOC-2000. As SmartIOC-2000 does not support volumes using 4Kn
> drives, use the intended option flag AAC_OPT_NEW_COMM_64 to
> determine
> support for volumes greater than 2T.
> 
> cc: sta...@vger.kernel.org
> Signed-off-by: Dave Carroll 
> 
> ---
>  drivers/scsi/aacraid/aachba.c  | 12 ++--
>  drivers/scsi/aacraid/aacraid.h |  5 +
>  2 files changed, 11 insertions(+), 6 deletions(-)
> 
> diff --git a/drivers/scsi/aacraid/aachba.c b/drivers/scsi/aacraid/aachba.c
> index 4591113..18a1a1f 100644
> --- a/drivers/scsi/aacraid/aachba.c
> +++ b/drivers/scsi/aacraid/aachba.c
> @@ -695,13 +695,13 @@ static void _aac_probe_container1(void * context,
> struct fib * fibptr)
>   int status;
> 
>   dresp = (struct aac_mount *) fib_data(fibptr);
> - if (!(fibptr->dev->supplement_adapter_info.supported_options2 &
> - AAC_OPTION_VARIABLE_BLOCK_SIZE))
> + if (!aac_supports_2T(fibptr->dev)) {
>   dresp->mnt[0].capacityhigh = 0;
> - if ((le32_to_cpu(dresp->status) != ST_OK) ||
> - (le32_to_cpu(dresp->mnt[0].vol) != CT_NONE)) {
> - _aac_probe_container2(context, fibptr);
> - return;
> + if ((le32_to_cpu(dresp->status) == ST_OK) &&
> + (le32_to_cpu(dresp->mnt[0].vol) != CT_NONE)) {
> + _aac_probe_container2(context, fibptr);
> + return;
> + }
>   }
>   scsicmd = (struct scsi_cmnd *) context;
> 
> diff --git a/drivers/scsi/aacraid/aacraid.h b/drivers/scsi/aacraid/aacraid.h
> index 6981299..998fbad 100644
> --- a/drivers/scsi/aacraid/aacraid.h
> +++ b/drivers/scsi/aacraid/aacraid.h
> @@ -2701,6 +2701,11 @@ static inline int aac_is_src(struct aac_dev *dev)
>   return 0;
>  }
> 
> +static inline int aac_supports_2T(struct aac_dev *dev)
> +{
> + return (dev->adapter_info.options & AAC_OPT_NEW_COMM_64);
> +}
> +
>  char * get_container_type(unsigned type);
>  extern int numacb;
>  extern char aac_driver_version[];
> --
> 2.8.4

Reviewed-by: Raghava Aditya Renukunta