View | Details | Raw Unified | Return to bug 225794 | Differences between
and this patch

Collapse All | Expand All

(-)b/sys/cam/cam_ccb.h (+1 lines)
Lines 601-606 typedef enum { Link Here
601
} pi_tmflag;
601
} pi_tmflag;
602
602
603
typedef enum {
603
typedef enum {
604
	PIM_MODESENSE_6	= 0x400,/* Always use MODE SENSE (6) command */
604
	PIM_ATA_EXT	= 0x200,/* ATA requests can understand ata_ext requests */
605
	PIM_ATA_EXT	= 0x200,/* ATA requests can understand ata_ext requests */
605
	PIM_EXTLUNS	= 0x100,/* 64bit extended LUNs supported */
606
	PIM_EXTLUNS	= 0x100,/* 64bit extended LUNs supported */
606
	PIM_SCANHILO	= 0x80,	/* Bus scans from high ID to low ID */
607
	PIM_SCANHILO	= 0x80,	/* Bus scans from high ID to low ID */
(-)b/sys/cam/scsi/scsi_da.c (-2 / +10 lines)
Lines 125-131 typedef enum { Link Here
125
	DA_Q_NO_UNMAP		= 0x20,
125
	DA_Q_NO_UNMAP		= 0x20,
126
	DA_Q_RETRY_BUSY		= 0x40,
126
	DA_Q_RETRY_BUSY		= 0x40,
127
	DA_Q_SMR_DM		= 0x80,
127
	DA_Q_SMR_DM		= 0x80,
128
	DA_Q_STRICT_UNMAP	= 0x100
128
	DA_Q_STRICT_UNMAP	= 0x100,
129
	DA_Q_MODESENSE_6	= 0x200
129
} da_quirks;
130
} da_quirks;
130
131
131
#define DA_Q_BIT_STRING		\
132
#define DA_Q_BIT_STRING		\
Lines 2589-2594 daregister(struct cam_periph *periph, void *arg) Link Here
2589
	softc->disk->d_hba_device = cpi.hba_device;
2590
	softc->disk->d_hba_device = cpi.hba_device;
2590
	softc->disk->d_hba_subvendor = cpi.hba_subvendor;
2591
	softc->disk->d_hba_subvendor = cpi.hba_subvendor;
2591
	softc->disk->d_hba_subdevice = cpi.hba_subdevice;
2592
	softc->disk->d_hba_subdevice = cpi.hba_subdevice;
2593
	if ((cpi.hba_misc & PIM_MODESENSE_6) != 0)
2594
		softc->quirks |= DA_Q_MODESENSE_6;
2592
2595
2593
	/*
2596
	/*
2594
	 * Acquire a reference to the periph before we register with GEOM.
2597
	 * Acquire a reference to the periph before we register with GEOM.
Lines 3095-3101 out: Link Here
3095
	{
3098
	{
3096
		void  *mode_buf;
3099
		void  *mode_buf;
3097
		int    mode_buf_len;
3100
		int    mode_buf_len;
3101
		int    cmd_size;
3098
3102
3103
		if ((softc->quirks & DA_Q_MODESENSE_6) != 0)
3104
			cmd_size = 6;
3105
		else
3106
			cmd_size = softc->minimum_cmd_size;
3099
		mode_buf_len = 192;
3107
		mode_buf_len = 192;
3100
		mode_buf = malloc(mode_buf_len, M_SCSIDA, M_NOWAIT);
3108
		mode_buf = malloc(mode_buf_len, M_SCSIDA, M_NOWAIT);
3101
		if (mode_buf == NULL) {
3109
		if (mode_buf == NULL) {
Lines 3113-3119 out: Link Here
3113
				    /*page*/ SMS_ALL_PAGES_PAGE,
3121
				    /*page*/ SMS_ALL_PAGES_PAGE,
3114
				    /*param_buf*/ mode_buf,
3122
				    /*param_buf*/ mode_buf,
3115
				    /*param_len*/ mode_buf_len,
3123
				    /*param_len*/ mode_buf_len,
3116
				    /*minimum_cmd_size*/ softc->minimum_cmd_size,
3124
				    /*minimum_cmd_size*/ cmd_size,
3117
				    /*sense_len*/ SSD_FULL_SIZE,
3125
				    /*sense_len*/ SSD_FULL_SIZE,
3118
				    /*timeout*/ da_default_timeout * 1000);
3126
				    /*timeout*/ da_default_timeout * 1000);
3119
		start_ccb->ccb_h.ccb_bp = NULL;
3127
		start_ccb->ccb_h.ccb_bp = NULL;
(-)b/sys/dev/usb/storage/umass.c (-1 / +1 lines)
Lines 2309-2315 umass_cam_action(struct cam_sim *sim, union ccb *ccb) Link Here
2309
			cpi->version_num = 1;
2309
			cpi->version_num = 1;
2310
			cpi->hba_inquiry = 0;
2310
			cpi->hba_inquiry = 0;
2311
			cpi->target_sprt = 0;
2311
			cpi->target_sprt = 0;
2312
			cpi->hba_misc = PIM_NO_6_BYTE;
2312
			cpi->hba_misc = PIM_NO_6_BYTE | PIM_MODESENSE_6;
2313
			cpi->hba_eng_cnt = 0;
2313
			cpi->hba_eng_cnt = 0;
2314
			cpi->max_target = UMASS_SCSIID_MAX;	/* one target */
2314
			cpi->max_target = UMASS_SCSIID_MAX;	/* one target */
2315
			cpi->initiator_id = UMASS_SCSIID_HOST;
2315
			cpi->initiator_id = UMASS_SCSIID_HOST;

Return to bug 225794