scsi: aacraid: Added macros to help loop through known buses and targets
Added macros to loop through the MAX SUPPORTED Buses and Targets. This will make the code a bit easier to read. Signed-off-by: Raghava Aditya Renukunta <RaghavaAditya.Renukunta@microsemi.com> Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
This commit is contained in:
parent
f2d2cabadb
commit
2290678fed
@ -117,9 +117,13 @@ enum {
|
|||||||
/* Thor: 5 phys. buses: #0: empty, 1-4: 256 targets each */
|
/* Thor: 5 phys. buses: #0: empty, 1-4: 256 targets each */
|
||||||
#define AAC_MAX_BUSES 5
|
#define AAC_MAX_BUSES 5
|
||||||
#define AAC_MAX_TARGETS 256
|
#define AAC_MAX_TARGETS 256
|
||||||
|
#define AAC_BUS_TARGET_LOOP (AAC_MAX_BUSES * AAC_MAX_TARGETS)
|
||||||
#define AAC_MAX_NATIVE_SIZE 2048
|
#define AAC_MAX_NATIVE_SIZE 2048
|
||||||
#define FW_ERROR_BUFFER_SIZE 512
|
#define FW_ERROR_BUFFER_SIZE 512
|
||||||
|
|
||||||
|
#define get_bus_number(x) (x/AAC_MAX_TARGETS)
|
||||||
|
#define get_target_number(x) (x%AAC_MAX_TARGETS)
|
||||||
|
|
||||||
/* Thor AIF events */
|
/* Thor AIF events */
|
||||||
#define SA_AIF_HOTPLUG (1<<1)
|
#define SA_AIF_HOTPLUG (1<<1)
|
||||||
#define SA_AIF_HARDWARE (1<<2)
|
#define SA_AIF_HARDWARE (1<<2)
|
||||||
|
@ -1890,31 +1890,31 @@ static int aac_is_safw_target_valid(struct aac_dev *dev, int bus, int target)
|
|||||||
|
|
||||||
static void aac_resolve_luns(struct aac_dev *dev)
|
static void aac_resolve_luns(struct aac_dev *dev)
|
||||||
{
|
{
|
||||||
|
int i;
|
||||||
int bus, target, channel;
|
int bus, target, channel;
|
||||||
struct scsi_device *sdev;
|
struct scsi_device *sdev;
|
||||||
|
|
||||||
for (bus = 0; bus < AAC_MAX_BUSES; bus++) {
|
for (i = 0; i < AAC_BUS_TARGET_LOOP; i++) {
|
||||||
for (target = 0; target < AAC_MAX_TARGETS; target++) {
|
|
||||||
|
|
||||||
if (bus == CONTAINER_CHANNEL)
|
bus = get_bus_number(i);
|
||||||
channel = CONTAINER_CHANNEL;
|
target = get_target_number(i);
|
||||||
else
|
|
||||||
channel = aac_phys_to_logical(bus);
|
|
||||||
|
|
||||||
sdev = scsi_device_lookup(dev->scsi_host_ptr, channel,
|
if (bus == CONTAINER_CHANNEL)
|
||||||
|
channel = CONTAINER_CHANNEL;
|
||||||
|
else
|
||||||
|
channel = aac_phys_to_logical(bus);
|
||||||
|
|
||||||
|
sdev = scsi_device_lookup(dev->scsi_host_ptr, channel,
|
||||||
|
target, 0);
|
||||||
|
|
||||||
|
if (!sdev && aac_is_safw_target_valid(dev, bus, target))
|
||||||
|
scsi_add_device(dev->scsi_host_ptr, channel,
|
||||||
target, 0);
|
target, 0);
|
||||||
|
else if (sdev && aac_is_safw_target_valid(dev, bus, target))
|
||||||
|
scsi_remove_device(sdev);
|
||||||
|
|
||||||
if (!sdev && aac_is_safw_target_valid(dev, bus, target))
|
if (sdev)
|
||||||
scsi_add_device(dev->scsi_host_ptr, channel,
|
scsi_device_put(sdev);
|
||||||
target, 0);
|
|
||||||
else if (sdev && aac_is_safw_target_valid(dev,
|
|
||||||
bus, target))
|
|
||||||
scsi_remove_device(sdev);
|
|
||||||
|
|
||||||
if (sdev)
|
|
||||||
scsi_device_put(sdev);
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user