mirror of
https://git.FreeBSD.org/src.git
synced 2025-01-16 15:11:52 +00:00
cam(4): Add an xpt-neutral flag indicating a valid panic CCB
No functional change. Note that this change is careful to set the CCB header xflags after foo_fill_bar() routines, which generally zero existing flags. An earlier version of this patch mistakenly set the flag before the fill routines. Submitted by: Scott Ferris <sferris AT isilon.com>, jhibbits@ Reviewed by: bdrewery@, markj@, and non-committer FreeBSD contributor Anton Rang Sponsored by: Dell EMC Isilon
This commit is contained in:
parent
2d73ac5e4a
commit
2077be2b73
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=337554
@ -1081,6 +1081,7 @@ adadump(void *arg, void *virtual, vm_offset_t physical, off_t offset, size_t len
|
||||
(u_int8_t *) virtual,
|
||||
length,
|
||||
ada_default_timeout*1000);
|
||||
ataio.ccb_h.xflags |= CAM_CCB_DUMP;
|
||||
if ((softc->flags & ADA_FLAG_CAN_48BIT) &&
|
||||
(lba + count >= ATA_MAX_28BIT_LBA ||
|
||||
count >= 256)) {
|
||||
@ -1115,6 +1116,7 @@ adadump(void *arg, void *virtual, vm_offset_t physical, off_t offset, size_t len
|
||||
NULL,
|
||||
0,
|
||||
5*1000);
|
||||
ataio.ccb_h.xflags |= CAM_CCB_DUMP;
|
||||
|
||||
if (softc->flags & ADA_FLAG_CAN_48BIT)
|
||||
ata_48bit_cmd(&ataio, ATA_FLUSHCACHE48, 0, 0, 0);
|
||||
@ -3499,6 +3501,7 @@ adaspindown(uint8_t cmd, int flags)
|
||||
NULL,
|
||||
0,
|
||||
ada_default_timeout*1000);
|
||||
local_ccb.ccb_h.xflags |= CAM_CCB_DUMP;
|
||||
ata_28bit_cmd(&local_ccb, cmd, 0, 0, 0);
|
||||
error = cam_periph_runccb((union ccb *)&local_ccb, adaerror,
|
||||
/*cam_flags*/0, /*sense_flags*/ SF_NO_RECOVERY | SF_NO_RETRY,
|
||||
|
@ -116,7 +116,8 @@ typedef enum {
|
||||
typedef enum {
|
||||
CAM_USER_DATA_ADDR = 0x00000002,/* Userspace data pointers */
|
||||
CAM_SG_FORMAT_IOVEC = 0x00000004,/* iovec instead of busdma S/G*/
|
||||
CAM_UNMAPPED_BUF = 0x00000008 /* use unmapped I/O */
|
||||
CAM_UNMAPPED_BUF = 0x00000008,/* use unmapped I/O */
|
||||
CAM_CCB_DUMP = 0x00000010,/* polled ccb during dump */
|
||||
} ccb_xflags;
|
||||
|
||||
/* XPT Opcodes for xpt_action */
|
||||
|
@ -426,6 +426,7 @@ ndadump(void *arg, void *virtual, vm_offset_t physical, off_t offset, size_t len
|
||||
xpt_setup_ccb(&nvmeio.ccb_h, periph->path, CAM_PRIORITY_NORMAL);
|
||||
nvmeio.ccb_state = NDA_CCB_DUMP;
|
||||
nda_nvme_write(softc, &nvmeio, virtual, lba, length, count);
|
||||
nvmeio.ccb_h.xflags |= CAM_CCB_DUMP;
|
||||
error = cam_periph_runccb((union ccb *)&nvmeio, cam_periph_error,
|
||||
0, SF_NO_RECOVERY | SF_NO_RETRY, NULL);
|
||||
if (error != 0)
|
||||
@ -439,6 +440,7 @@ ndadump(void *arg, void *virtual, vm_offset_t physical, off_t offset, size_t len
|
||||
|
||||
nvmeio.ccb_state = NDA_CCB_DUMP;
|
||||
nda_nvme_flush(softc, &nvmeio);
|
||||
nvmeio.ccb_h.xflags |= CAM_CCB_DUMP;
|
||||
error = cam_periph_runccb((union ccb *)&nvmeio, cam_periph_error,
|
||||
0, SF_NO_RECOVERY | SF_NO_RETRY, NULL);
|
||||
if (error != 0)
|
||||
|
@ -1847,6 +1847,7 @@ dadump(void *arg, void *virtual, vm_offset_t physical, off_t offset, size_t leng
|
||||
/*dxfer_len*/length,
|
||||
/*sense_len*/SSD_FULL_SIZE,
|
||||
da_default_timeout * 1000);
|
||||
csio.ccb_h.xflags |= CAM_CCB_DUMP;
|
||||
error = cam_periph_runccb((union ccb *)&csio, cam_periph_error,
|
||||
0, SF_NO_RECOVERY | SF_NO_RETRY, NULL);
|
||||
if (error != 0)
|
||||
@ -1869,6 +1870,7 @@ dadump(void *arg, void *virtual, vm_offset_t physical, off_t offset, size_t leng
|
||||
/*lb_count*/0,
|
||||
SSD_FULL_SIZE,
|
||||
5 * 1000);
|
||||
csio.ccb_h.xflags |= CAM_CCB_DUMP;
|
||||
error = cam_periph_runccb((union ccb *)&csio, cam_periph_error,
|
||||
0, SF_NO_RECOVERY | SF_NO_RETRY, NULL);
|
||||
if (error != 0)
|
||||
|
Loading…
Reference in New Issue
Block a user