1
0
mirror of https://git.FreeBSD.org/src.git synced 2024-12-24 11:29:10 +00:00

Fix support for LUN flat space addressing.

MFC after:	1 week
This commit is contained in:
Alexander Motin 2014-10-26 20:13:46 +00:00
parent e015b1ab0a
commit ac4bf33203
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=273708

View File

@ -9403,17 +9403,18 @@ ctl_report_luns(struct ctl_scsiio *ctsio)
* Flat addressing method.
*/
lun_data->luns[num_filled].lundata[0] =
RPL_LUNDATA_ATYP_FLAT |
(targ_lun_id & RPL_LUNDATA_FLAT_LUN_MASK);
#ifdef OLDCTLHEADERS
(SRLD_ADDR_FLAT << SRLD_ADDR_SHIFT) |
(targ_lun_id & SRLD_BUS_LUN_MASK);
#endif
RPL_LUNDATA_ATYP_FLAT | (targ_lun_id >> 8);
lun_data->luns[num_filled].lundata[1] =
#ifdef OLDCTLHEADERS
targ_lun_id >> SRLD_BUS_LUN_BITS;
#endif
targ_lun_id >> RPL_LUNDATA_FLAT_LUN_BITS;
(targ_lun_id & 0xff);
num_filled++;
} else if (targ_lun_id <= 0xffffff) {
/*
* Extended flat addressing method.
*/
lun_data->luns[num_filled].lundata[0] =
RPL_LUNDATA_ATYP_EXTLUN | 0x12;
scsi_ulto3b(targ_lun_id,
&lun_data->luns[num_filled].lundata[1]);
num_filled++;
} else {
printf("ctl_report_luns: bogus LUN number %jd, "