Assert that a ccb passed to cam_periph_mapmem() for XPT_SCSI_IO and

XPT_ATA_IO holds virtual buffer address.

Sponsored by:	The FreeBSD Foundation
Tested by:	pho
This commit is contained in:
Konstantin Belousov 2013-03-19 13:10:14 +00:00
parent 96ecfd9813
commit b4862fafd5
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=248501

View File

@ -734,6 +734,8 @@ cam_periph_mapmem(union ccb *ccb, struct cam_periph_map_info *mapinfo)
case XPT_CONT_TARGET_IO:
if ((ccb->ccb_h.flags & CAM_DIR_MASK) == CAM_DIR_NONE)
return(0);
KASSERT((ccb->ccb_h.flags & CAM_DATA_MASK) == CAM_DATA_VADDR,
("not VADDR for SCSI_IO %p %x\n", ccb, ccb->ccb_h.flags));
data_ptrs[0] = &ccb->csio.data_ptr;
lengths[0] = ccb->csio.dxfer_len;
@ -743,6 +745,8 @@ cam_periph_mapmem(union ccb *ccb, struct cam_periph_map_info *mapinfo)
case XPT_ATA_IO:
if ((ccb->ccb_h.flags & CAM_DIR_MASK) == CAM_DIR_NONE)
return(0);
KASSERT((ccb->ccb_h.flags & CAM_DATA_MASK) == CAM_DATA_VADDR,
("not VADDR for ATA_IO %p %x\n", ccb, ccb->ccb_h.flags));
data_ptrs[0] = &ccb->ataio.data_ptr;
lengths[0] = ccb->ataio.dxfer_len;