Re: [PATCH 1 16/25] hpsa: refactor hpsa_figure_bus_target_lun

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 28.10.2015 23:06, Don Brace wrote:
> From: Kevin Barnett <kevin.barnett@xxxxxxxx>
>
> setup for sas transport. Need to set the
> bus and target accordingly.
>
> Reviewed-by: Scott Teel <scott.teel@xxxxxxxx>
> Reviewed-by: Justin Lindley <justin.lindley@xxxxxxxx>
> Reviewed-by: Kevin Barnett <kevin.barnett@xxxxxxxx>
> Signed-off-by: Don Brace <don.brace@xxxxxxxx>
> ---
>  drivers/scsi/hpsa.c |   25 ++++++++++++-------------
>  drivers/scsi/hpsa.h |    5 +++++
>  2 files changed, 17 insertions(+), 13 deletions(-)
>
> diff --git a/drivers/scsi/hpsa.c b/drivers/scsi/hpsa.c
> index 1361414..24b3c8c 100644
> --- a/drivers/scsi/hpsa.c
> +++ b/drivers/scsi/hpsa.c
> @@ -3521,38 +3521,37 @@ static int is_ext_target(struct ctlr_info *h, struct hpsa_scsi_dev_t *device)
>  	return 0;
>  }
>  
> -/* Helper function to assign bus, target, lun mapping of devices.
> - * Puts non-external target logical volumes on bus 0, external target logical
> - * volumes on bus 1, physical devices on bus 2. and the hba on bus 3.
> +/*
> + * Helper function to assign bus, target, lun mapping of devices.
>   * Logical drive target and lun are assigned at this time, but
>   * physical device lun and target assignment are deferred (assigned
>   * in hpsa_find_target_lun, called by hpsa_scsi_add_entry.)
> - */
> +*/
>  static void figure_bus_target_lun(struct ctlr_info *h,
>  	u8 *lunaddrbytes, struct hpsa_scsi_dev_t *device)
>  {
> -	u32 lunid = le32_to_cpu(*((__le32 *) lunaddrbytes));
> +	u32 lunid = get_unaligned_le32(lunaddrbytes);
>  
>  	if (!is_logical_dev_addr_mode(lunaddrbytes)) {
>  		/* physical device, target and lun filled in later */
>  		if (is_hba_lunid(lunaddrbytes))
> -			hpsa_set_bus_target_lun(device, 3, 0, lunid & 0x3fff);
> +			hpsa_set_bus_target_lun(device,
> +					HPSA_HBA_BUS, 0, lunid & 0x3fff);
>  		else
>  			/* defer target, lun assignment for physical devices */
> -			hpsa_set_bus_target_lun(device, 2, -1, -1);
> +			hpsa_set_bus_target_lun(device,
> +					HPSA_PHYSICAL_DEVICE_BUS, -1, -1);
>  		return;
>  	}
>  	/* It's a logical device */
>  	if (is_ext_target(h, device)) {
> -		/* external target way, put logicals on bus 1
> -		 * and match target/lun numbers box
> -		 * reports, other smart array, bus 0, target 0, match lunid
> -		 */
>  		hpsa_set_bus_target_lun(device,
> -			1, (lunid >> 16) & 0x3fff, lunid & 0x00ff);
> +			HPSA_EXTERNAL_RAID_VOLUME_BUS, (lunid >> 16) & 0x3fff,
> +			lunid & 0x00ff);
>  		return;
>  	}
> -	hpsa_set_bus_target_lun(device, 0, 0, lunid & 0x3fff);
> +	hpsa_set_bus_target_lun(device, HPSA_RAID_VOLUME_BUS,
> +				0, lunid & 0x3fff);
>  }
>  
>  /*
> diff --git a/drivers/scsi/hpsa.h b/drivers/scsi/hpsa.h
> index 808b520..38d5534 100644
> --- a/drivers/scsi/hpsa.h
> +++ b/drivers/scsi/hpsa.h
> @@ -367,6 +367,11 @@ struct offline_device_entry {
>  #define IOACCEL2_INBOUND_POSTQ_64_LOW	0xd0
>  #define IOACCEL2_INBOUND_POSTQ_64_HI	0xd4
>  
> +#define HPSA_PHYSICAL_DEVICE_BUS	0
> +#define HPSA_RAID_VOLUME_BUS		1
> +#define HPSA_EXTERNAL_RAID_VOLUME_BUS	2
> +#define HPSA_HBA_BUS			3

Some of the numbers changed their values from what they used 
to be before. It probably doesn't matter, but users may be used
to certain numbers assigned and this will change the scheme.
If there is no reason for the change, please keep the numbering
stable.
-tm

> +
>  /*
>  	Send the command to the hardware
>  */
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
> the body of a message to majordomo@xxxxxxxxxxxxxxx
> More majordomo info at  http://vger.kernel.org/majordomo-info.html

--
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [SCSI Target Devel]     [Linux SCSI Target Infrastructure]     [Kernel Newbies]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Linux IIO]     [Samba]     [Device Mapper]
  Powered by Linux