mirror of
https://github.com/opnsense/src.git
synced 2026-03-30 22:45:13 -04:00
cam: make sure to clear even more CCBs allocated on the stack
This is my second pass, this time over all of CAM except for the SCSI target bits. There should be no functional changes. Reviewed By: imp Sponsored by: NetApp, Inc. Sponsored by: Klara, Inc. Differential Revision: https://reviews.freebsd.org/D29549
This commit is contained in:
parent
93457c4ec9
commit
ec5325dbca
9 changed files with 17 additions and 0 deletions
|
|
@ -1327,6 +1327,7 @@ adaasync(void *callback_arg, u_int32_t code,
|
|||
case AC_GETDEV_CHANGED:
|
||||
{
|
||||
softc = (struct ada_softc *)periph->softc;
|
||||
memset(&cgd, 0, sizeof(cgd));
|
||||
xpt_setup_ccb(&cgd.ccb_h, periph->path, CAM_PRIORITY_NORMAL);
|
||||
cgd.ccb_h.func_code = XPT_GDEV_TYPE;
|
||||
xpt_action((union ccb *)&cgd);
|
||||
|
|
@ -1362,6 +1363,7 @@ adaasync(void *callback_arg, u_int32_t code,
|
|||
cam_periph_async(periph, code, path, arg);
|
||||
if (softc->state != ADA_STATE_NORMAL)
|
||||
break;
|
||||
memset(&cgd, 0, sizeof(cgd));
|
||||
xpt_setup_ccb(&cgd.ccb_h, periph->path, CAM_PRIORITY_NORMAL);
|
||||
cgd.ccb_h.func_code = XPT_GDEV_TYPE;
|
||||
xpt_action((union ccb *)&cgd);
|
||||
|
|
|
|||
|
|
@ -726,6 +726,7 @@ aproberequestdefaultnegotiation(struct cam_periph *periph)
|
|||
{
|
||||
struct ccb_trans_settings cts;
|
||||
|
||||
bzero(&cts, sizeof(cts));
|
||||
xpt_setup_ccb(&cts.ccb_h, periph->path, CAM_PRIORITY_NONE);
|
||||
cts.ccb_h.func_code = XPT_GET_TRAN_SETTINGS;
|
||||
cts.type = CTS_TYPE_USER_SETTINGS;
|
||||
|
|
@ -1693,6 +1694,7 @@ ata_device_transport(struct cam_path *path)
|
|||
ata_version(ident_buf->version_major) : cpi.transport_version;
|
||||
|
||||
/* Tell the controller what we think */
|
||||
bzero(&cts, sizeof(cts));
|
||||
xpt_setup_ccb(&cts.ccb_h, path, CAM_PRIORITY_NONE);
|
||||
cts.ccb_h.func_code = XPT_SET_TRAN_SETTINGS;
|
||||
cts.type = CTS_TYPE_CURRENT_SETTINGS;
|
||||
|
|
@ -2125,6 +2127,7 @@ ata_announce_periph(struct cam_periph *periph)
|
|||
struct ccb_trans_settings cts;
|
||||
u_int speed, mb;
|
||||
|
||||
bzero(&cts, sizeof(cts));
|
||||
_ata_announce_periph(periph, &cts, &speed);
|
||||
if ((cts.ccb_h.status & CAM_STATUS_MASK) != CAM_REQ_CMP)
|
||||
return;
|
||||
|
|
|
|||
|
|
@ -712,6 +712,7 @@ sddaasync(void *callback_arg, u_int32_t code,
|
|||
{
|
||||
CAM_DEBUG(path, CAM_DEBUG_TRACE, ("=> AC_GETDEV_CHANGED\n"));
|
||||
softc = (struct sdda_softc *)periph->softc;
|
||||
memset(&cgd, 0, sizeof(cgd));
|
||||
xpt_setup_ccb(&cgd.ccb_h, periph->path, CAM_PRIORITY_NORMAL);
|
||||
cgd.ccb_h.func_code = XPT_GDEV_TYPE;
|
||||
xpt_action((union ccb *)&cgd);
|
||||
|
|
|
|||
|
|
@ -375,6 +375,7 @@ mmc_announce_periph(struct cam_periph *periph)
|
|||
|
||||
CAM_DEBUG(periph->path, CAM_DEBUG_TRACE, ("mmc_announce_periph"));
|
||||
|
||||
memset(&cts, 0, sizeof(cts));
|
||||
xpt_setup_ccb(&cts.ccb_h, path, CAM_PRIORITY_NORMAL);
|
||||
cts.ccb_h.func_code = XPT_GET_TRAN_SETTINGS;
|
||||
cts.type = CTS_TYPE_CURRENT_SETTINGS;
|
||||
|
|
|
|||
|
|
@ -634,6 +634,7 @@ nvme_device_transport(struct cam_path *path)
|
|||
path->device->protocol_version = cpi.protocol_version;
|
||||
|
||||
/* Tell the controller what we think */
|
||||
memset(&cts, 0, sizeof(cts));
|
||||
xpt_setup_ccb(&cts.ccb_h, path, CAM_PRIORITY_NONE);
|
||||
cts.ccb_h.func_code = XPT_SET_TRAN_SETTINGS;
|
||||
cts.type = CTS_TYPE_CURRENT_SETTINGS;
|
||||
|
|
@ -792,6 +793,7 @@ nvme_announce_periph(struct cam_periph *periph)
|
|||
cam_periph_assert(periph, MA_OWNED);
|
||||
|
||||
/* Ask the SIM for connection details */
|
||||
memset(&cts, 0, sizeof(cts));
|
||||
xpt_setup_ccb(&cts.ccb_h, path, CAM_PRIORITY_NORMAL);
|
||||
cts.ccb_h.func_code = XPT_GET_TRAN_SETTINGS;
|
||||
cts.type = CTS_TYPE_CURRENT_SETTINGS;
|
||||
|
|
|
|||
|
|
@ -1259,6 +1259,7 @@ cddone(struct cam_periph *periph, union ccb *done_ccb)
|
|||
|
||||
status = done_ccb->ccb_h.status;
|
||||
|
||||
bzero(&cgd, sizeof(cgd));
|
||||
xpt_setup_ccb(&cgd.ccb_h,
|
||||
done_ccb->ccb_h.path,
|
||||
CAM_PRIORITY_NORMAL);
|
||||
|
|
|
|||
|
|
@ -974,6 +974,7 @@ ses_paths_iter(enc_softc_t *enc, enc_element_t *elm,
|
|||
!= CAM_REQ_CMP)
|
||||
return;
|
||||
|
||||
memset(&cgd, 0, sizeof(cgd));
|
||||
xpt_setup_ccb(&cgd.ccb_h, path, CAM_PRIORITY_NORMAL);
|
||||
cgd.ccb_h.func_code = XPT_GDEV_TYPE;
|
||||
xpt_action((union ccb *)&cgd);
|
||||
|
|
@ -1035,6 +1036,7 @@ ses_setphyspath_callback(enc_softc_t *enc, enc_element_t *elm,
|
|||
args = (ses_setphyspath_callback_args_t *)arg;
|
||||
old_physpath = malloc(MAXPATHLEN, M_SCSIENC, M_WAITOK|M_ZERO);
|
||||
xpt_path_lock(path);
|
||||
memset(&cdai, 0, sizeof(cdai));
|
||||
xpt_setup_ccb(&cdai.ccb_h, path, CAM_PRIORITY_NORMAL);
|
||||
cdai.ccb_h.func_code = XPT_DEV_ADVINFO;
|
||||
cdai.buftype = CDAI_TYPE_PHYS_PATH;
|
||||
|
|
@ -1095,6 +1097,7 @@ ses_set_physpath(enc_softc_t *enc, enc_element_t *elm,
|
|||
* Assemble the components of the physical path starting with
|
||||
* the device ID of the enclosure itself.
|
||||
*/
|
||||
memset(&cdai, 0, sizeof(cdai));
|
||||
xpt_setup_ccb(&cdai.ccb_h, enc->periph->path, CAM_PRIORITY_NORMAL);
|
||||
cdai.ccb_h.func_code = XPT_DEV_ADVINFO;
|
||||
cdai.flags = CDAI_FLAG_NONE;
|
||||
|
|
|
|||
|
|
@ -2403,6 +2403,7 @@ saregister(struct cam_periph *periph, void *arg)
|
|||
|
||||
bzero(&ext_inq, sizeof(ext_inq));
|
||||
|
||||
memset(&cdai, 0, sizeof(cdai));
|
||||
xpt_setup_ccb(&cdai.ccb_h, periph->path, CAM_PRIORITY_NORMAL);
|
||||
|
||||
cdai.ccb_h.func_code = XPT_DEV_ADVINFO;
|
||||
|
|
@ -4416,6 +4417,7 @@ saextget(struct cdev *dev, struct cam_periph *periph, struct sbuf *sb,
|
|||
SASBADDVARSTR(sb, indent, periph->periph_name, %s, periph_name,
|
||||
strlen(periph->periph_name) + 1);
|
||||
SASBADDUINT(sb, indent, periph->unit_number, %u, unit_number);
|
||||
memset(&cgd, 0, sizeof(cgd));
|
||||
xpt_setup_ccb(&cgd.ccb_h,
|
||||
periph->path,
|
||||
CAM_PRIORITY_NORMAL);
|
||||
|
|
|
|||
|
|
@ -2737,6 +2737,7 @@ scsi_set_transfer_settings(struct ccb_trans_settings *cts, struct cam_path *path
|
|||
|
||||
inq_data = &device->inq_data;
|
||||
scsi = &cts->proto_specific.scsi;
|
||||
memset(&cpi, 0, sizeof(cpi));
|
||||
xpt_setup_ccb(&cpi.ccb_h, path, CAM_PRIORITY_NONE);
|
||||
cpi.ccb_h.func_code = XPT_PATH_INQ;
|
||||
xpt_action((union ccb *)&cpi);
|
||||
|
|
@ -3093,6 +3094,7 @@ scsi_announce_periph_sbuf(struct cam_periph *periph, struct sbuf *sb)
|
|||
struct ccb_trans_settings cts;
|
||||
u_int speed, freq, mb;
|
||||
|
||||
memset(&cts, 0, sizeof(cts));
|
||||
_scsi_announce_periph(periph, &speed, &freq, &cts);
|
||||
if (cam_ccb_status((union ccb *)&cts) != CAM_REQ_CMP)
|
||||
return;
|
||||
|
|
|
|||
Loading…
Reference in a new issue