Re: RFC: ATA to CAM integration patch

From: Alexander Motin <mav_at_FreeBSD.org>
Date: Fri, 07 Aug 2009 00:13:44 +0300
Sam Fourman Jr. wrote:
> On Fri, Jun 26, 2009 at 1:47 PM, Alexander Motin<mav_at_freebsd.org> wrote:
>> Hi.
>>
>> I would like to present for testing and feedback present state of my and
>> Scott work on extending CAM subsystem to support ATA in addition to
>> SCSI. At this moment we have
> 
> Are these patches in FreeBSD BETA2 (src from today)
> 
> I decided to try the iscsi client on FreeBSD 8 and I noticed that
> da0 will not attach, but the same setup works on PC-BSD computer
> aka FreeBSD 7.2
> 
> on the FreeBSD 8 i386 machine I get this message after
> 
> iscsi: version 2.1.0
> xpt_dev_async called  <-- This is why I am asking if it has anything
> to do with these patches

I've reproduced your problem.
Try attached patch. It fixed problem for me:

iscsi: version 2.1.0
pass0 at iscsi0 bus 0 target 0 lun 0
pass0: <NetBSD NetBSD iSCSI 0> Fixed Direct Access SCSI-3 device
GEOM: new disk da0
da0 at iscsi0 bus 0 target 0 lun 0
da0: <NetBSD NetBSD iSCSI 0> Fixed Direct Access SCSI-3 device

-- 
Alexander Motin

diff -ruNp sys/cam.prev/cam_ccb.h sys/cam/cam_ccb.h
--- sys/cam.prev/cam_ccb.h	2009-07-19 11:26:54.000000000 +0300
+++ sys/cam/cam_ccb.h	2009-08-06 23:28:36.000000000 +0300
_at__at_ -230,6 +230,7 _at__at_ typedef enum {
 	XPORT_ATA,	/* AT Attachment */
 	XPORT_SAS,	/* Serial Attached SCSI */
 	XPORT_SATA,	/* Serial AT Attachment */
+	XPORT_ISCSI,	/* iSCSI */
 } cam_xport;
 
 #define PROTO_VERSION_UNKNOWN (UINT_MAX - 1)
diff -ruNp sys/cam.prev/cam_xpt.c sys/cam/cam_xpt.c
--- sys/cam.prev/cam_xpt.c	2009-07-25 15:19:01.000000000 +0300
+++ sys/cam/cam_xpt.c	2009-08-06 23:29:03.000000000 +0300
_at__at_ -3799,6 +3799,7 _at__at_ xpt_bus_register(struct cam_sim *sim, de
 		case XPORT_SAS:
 		case XPORT_FC:
 		case XPORT_USB:
+		case XPORT_ISCSI:
 			new_bus->xport = scsi_get_xport();
 			break;
 		case XPORT_ATA:
--- sys/dev/iscsi/initiator/isc_cam.c.prev	2009-05-19 07:37:07.000000000 +0300
+++ sys/dev/iscsi/initiator/isc_cam.c	2009-08-06 23:30:35.000000000 +0300
_at__at_ -190,6 +190,8 _at__at_ _inq(struct cam_sim *sim, union ccb *ccb
      strncpy(cpi->hba_vid, "iSCSI", HBA_IDLEN);
      strncpy(cpi->dev_name, cam_sim_name(sim), DEV_IDLEN);
      cpi->unit_number = cam_sim_unit(sim);
+     cpi->transport = XPORT_ISCSI;
+     cpi->transport_version = 0;
      cpi->ccb_h.status = CAM_REQ_CMP;
 }
 
Received on Thu Aug 06 2009 - 19:14:36 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:39:53 UTC