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:
Raghava Aditya Renukunta 2017-12-26 20:34:41 -08:00 committed by Martin K. Petersen
parent f2d2cabadb
commit 2290678fed
2 changed files with 22 additions and 18 deletions

View file

@ -117,9 +117,13 @@ enum {
/* Thor: 5 phys. buses: #0: empty, 1-4: 256 targets each */
#define AAC_MAX_BUSES 5
#define AAC_MAX_TARGETS 256
#define AAC_BUS_TARGET_LOOP (AAC_MAX_BUSES * AAC_MAX_TARGETS)
#define AAC_MAX_NATIVE_SIZE 2048
#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 */
#define SA_AIF_HOTPLUG (1<<1)
#define SA_AIF_HARDWARE (1<<2)

View file

@ -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)
{
int i;
int bus, target, channel;
struct scsi_device *sdev;
for (bus = 0; bus < AAC_MAX_BUSES; bus++) {
for (target = 0; target < AAC_MAX_TARGETS; target++) {
for (i = 0; i < AAC_BUS_TARGET_LOOP; i++) {
if (bus == CONTAINER_CHANNEL)
channel = CONTAINER_CHANNEL;
else
channel = aac_phys_to_logical(bus);
bus = get_bus_number(i);
target = get_target_number(i);
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);
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))
scsi_add_device(dev->scsi_host_ptr, channel,
target, 0);
else if (sdev && aac_is_safw_target_valid(dev,
bus, target))
scsi_remove_device(sdev);
if (sdev)
scsi_device_put(sdev);
}
if (sdev)
scsi_device_put(sdev);
}
}