mirror of
https://github.com/freebsd/freebsd-src
synced 2024-10-15 21:05:08 +00:00
Minimum changes for ctl to build on architectures with non-matching physical and
virtual address sizes Summary: Some architectures use physical addresses larger than virtual. This is the minimal changeset needed to get CAM/CTL to build on these targets. No functional changes. More changes would likely be needed for this to be fully functional on said platforms, but they can be made when needed. Reviewed By: mav, chuck Differential Revision: https://reviews.freebsd.org/D14041
This commit is contained in:
parent
51bd6f9618
commit
a99028fc70
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=328425
|
@ -354,7 +354,7 @@ cfcs_datamove(union ctl_io *io)
|
|||
case CAM_DATA_VADDR:
|
||||
cam_sglist = &cam_sg_entry;
|
||||
cam_sglist[0].ds_len = ccb->csio.dxfer_len;
|
||||
cam_sglist[0].ds_addr = (bus_addr_t)ccb->csio.data_ptr;
|
||||
cam_sglist[0].ds_addr = (bus_addr_t)(uintptr_t)ccb->csio.data_ptr;
|
||||
cam_sg_count = 1;
|
||||
cam_sg_start = 0;
|
||||
cam_sg_offset = io->scsiio.kern_rel_offset;
|
||||
|
@ -382,7 +382,7 @@ cfcs_datamove(union ctl_io *io)
|
|||
len_to_copy = MIN(cam_sglist[i].ds_len - cam_watermark,
|
||||
ctl_sglist[j].len - ctl_watermark);
|
||||
|
||||
cam_ptr = (uint8_t *)cam_sglist[i].ds_addr;
|
||||
cam_ptr = (uint8_t *)(uintptr_t)cam_sglist[i].ds_addr;
|
||||
cam_ptr = cam_ptr + cam_watermark;
|
||||
if (io->io_hdr.flags & CTL_FLAG_BUS_ADDR) {
|
||||
/*
|
||||
|
|
|
@ -728,7 +728,7 @@ ctlfedata(struct ctlfe_lun_softc *softc, union ctl_io *io,
|
|||
cam_sglist = cmd_info->cam_sglist;
|
||||
*dxfer_len = 0;
|
||||
for (i = 0; i < io->scsiio.kern_sg_entries - idx; i++) {
|
||||
cam_sglist[i].ds_addr = (bus_addr_t)ctl_sglist[i + idx].addr + off;
|
||||
cam_sglist[i].ds_addr = (bus_addr_t)(uintptr_t)ctl_sglist[i + idx].addr + off;
|
||||
if (ctl_sglist[i + idx].len - off <= bus_softc->maxio - *dxfer_len) {
|
||||
cam_sglist[i].ds_len = ctl_sglist[idx + i].len - off;
|
||||
*dxfer_len += cam_sglist[i].ds_len;
|
||||
|
|
Loading…
Reference in a new issue