forked from Minki/linux
[SCSI] sym2: Report disabled devices and LUNs more attractively
Rather than print a list of targets at driver init time, print each disabled target as we attempt to scan it. Signed-off-by: Matthew Wilcox <matthew@wil.cx> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
This commit is contained in:
parent
b37df48923
commit
66e8d1cc64
@ -1018,6 +1018,7 @@ static int sym53c8xx_slave_alloc(struct scsi_device *sdev)
|
|||||||
if (sdev->id >= SYM_CONF_MAX_TARGET || sdev->lun >= SYM_CONF_MAX_LUN)
|
if (sdev->id >= SYM_CONF_MAX_TARGET || sdev->lun >= SYM_CONF_MAX_LUN)
|
||||||
return -ENXIO;
|
return -ENXIO;
|
||||||
|
|
||||||
|
tp->starget = sdev->sdev_target;
|
||||||
/*
|
/*
|
||||||
* Fail the device init if the device is flagged NOSCAN at BOOT in
|
* Fail the device init if the device is flagged NOSCAN at BOOT in
|
||||||
* the NVRAM. This may speed up boot and maintain coherency with
|
* the NVRAM. This may speed up boot and maintain coherency with
|
||||||
@ -1027,17 +1028,24 @@ static int sym53c8xx_slave_alloc(struct scsi_device *sdev)
|
|||||||
* lun devices behave badly when asked for a non zero LUN.
|
* lun devices behave badly when asked for a non zero LUN.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
if ((tp->usrflags & SYM_SCAN_BOOT_DISABLED) ||
|
if (tp->usrflags & SYM_SCAN_BOOT_DISABLED) {
|
||||||
((tp->usrflags & SYM_SCAN_LUNS_DISABLED) && sdev->lun != 0)) {
|
|
||||||
tp->usrflags &= ~SYM_SCAN_BOOT_DISABLED;
|
tp->usrflags &= ~SYM_SCAN_BOOT_DISABLED;
|
||||||
|
starget_printk(KERN_INFO, tp->starget,
|
||||||
|
"Scan at boot disabled in NVRAM\n");
|
||||||
return -ENXIO;
|
return -ENXIO;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (tp->usrflags & SYM_SCAN_LUNS_DISABLED) {
|
||||||
|
if (sdev->lun != 0)
|
||||||
|
return -ENXIO;
|
||||||
|
starget_printk(KERN_INFO, tp->starget,
|
||||||
|
"Multiple LUNs disabled in NVRAM\n");
|
||||||
|
}
|
||||||
|
|
||||||
lp = sym_alloc_lcb(np, sdev->id, sdev->lun);
|
lp = sym_alloc_lcb(np, sdev->id, sdev->lun);
|
||||||
if (!lp)
|
if (!lp)
|
||||||
return -ENOMEM;
|
return -ENOMEM;
|
||||||
|
|
||||||
tp->starget = sdev->sdev_target;
|
|
||||||
spi_min_period(tp->starget) = tp->usr_period;
|
spi_min_period(tp->starget) = tp->usr_period;
|
||||||
spi_max_width(tp->starget) = tp->usr_width;
|
spi_max_width(tp->starget) = tp->usr_width;
|
||||||
|
|
||||||
|
@ -616,29 +616,6 @@ static __inline void sym_init_burst(struct sym_hcb *np, u_char bc)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Print out the list of targets that have some flag disabled by user.
|
|
||||||
*/
|
|
||||||
static void sym_print_targets_flag(struct sym_hcb *np, int mask, char *msg)
|
|
||||||
{
|
|
||||||
int cnt;
|
|
||||||
int i;
|
|
||||||
|
|
||||||
for (cnt = 0, i = 0 ; i < SYM_CONF_MAX_TARGET ; i++) {
|
|
||||||
if (i == np->myaddr)
|
|
||||||
continue;
|
|
||||||
if (np->target[i].usrflags & mask) {
|
|
||||||
if (!cnt++)
|
|
||||||
printf("%s: %s disabled for targets",
|
|
||||||
sym_name(np), msg);
|
|
||||||
printf(" %d", i);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (cnt)
|
|
||||||
printf(".\n");
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Save initial settings of some IO registers.
|
* Save initial settings of some IO registers.
|
||||||
* Assumed to have been set by BIOS.
|
* Assumed to have been set by BIOS.
|
||||||
@ -986,13 +963,6 @@ static int sym_prepare_setting(struct Scsi_Host *shost, struct sym_hcb *np, stru
|
|||||||
sym_name(np), np->rv_scntl3, np->rv_dmode, np->rv_dcntl,
|
sym_name(np), np->rv_scntl3, np->rv_dmode, np->rv_dcntl,
|
||||||
np->rv_ctest3, np->rv_ctest4, np->rv_ctest5);
|
np->rv_ctest3, np->rv_ctest4, np->rv_ctest5);
|
||||||
}
|
}
|
||||||
/*
|
|
||||||
* Let user be aware of targets that have some disable flags set.
|
|
||||||
*/
|
|
||||||
sym_print_targets_flag(np, SYM_SCAN_BOOT_DISABLED, "SCAN AT BOOT");
|
|
||||||
if (sym_verbose)
|
|
||||||
sym_print_targets_flag(np, SYM_SCAN_LUNS_DISABLED,
|
|
||||||
"SCAN FOR LUNS");
|
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user