summaryrefslogtreecommitdiffstats
path: root/sys/dev/firewire/firewire.c
diff options
context:
space:
mode:
authorsimokawa <simokawa@FreeBSD.org>2003-02-27 12:51:24 +0000
committersimokawa <simokawa@FreeBSD.org>2003-02-27 12:51:24 +0000
commit15b70bcd2e4f67772c1a7611a7f17d291acbff3f (patch)
tree9dc6d0572414885de0d9b6a17ee7854130b3e2e9 /sys/dev/firewire/firewire.c
parent6eb790939b8d733c0cad2a9b724d11fb1c5c344e (diff)
downloadFreeBSD-src-15b70bcd2e4f67772c1a7611a7f17d291acbff3f.zip
FreeBSD-src-15b70bcd2e4f67772c1a7611a7f17d291acbff3f.tar.gz
MFp4(simokawa_sbp branch)
Improve SBP device probeing: - Wait 2 sec before issuing LOGIN ORB expecting the reconnection hold timer expires. - Serialize management ORB and scanning LUN by CAM on each target. This should fix the problem for devices which have multiple LUNs. Test device is donated by: Jaye Mathisen <mrcpu@internetcds.com> - Freeze SIM queue for 2 sec after BUS RESET. - Retry with LOGIN rather than RECONNECT after LOGIN is not completed for BUS RESET. - Use appropriate CAM status for BUS RESET and DEVICE RESET. - Let CAM to scan targets after BUS REST. - Implement CAM scan target function. - Keep our own devq freeze count. - Let CAM to know that SBP does tagged queuing. These should be merged to RELENG_4 before 4.8-RELEASE.
Diffstat (limited to 'sys/dev/firewire/firewire.c')
-rw-r--r--sys/dev/firewire/firewire.c12
1 files changed, 4 insertions, 8 deletions
diff --git a/sys/dev/firewire/firewire.c b/sys/dev/firewire/firewire.c
index b25ede6..afd65e5 100644
--- a/sys/dev/firewire/firewire.c
+++ b/sys/dev/firewire/firewire.c
@@ -423,11 +423,6 @@ firewire_attach( device_t dev )
#else
sc->dev[i] = d;
#endif
-#if __FreeBSD_version >= 500000
-#define CALLOUT_INIT(x) callout_init(x, 0 /* mpsafe */)
-#else
-#define CALLOUT_INIT(x) callout_init(x)
-#endif
CALLOUT_INIT(&sc->fc->timeout_callout);
CALLOUT_INIT(&sc->fc->bmr_callout);
CALLOUT_INIT(&sc->fc->retry_probe_callout);
@@ -1787,13 +1782,14 @@ fw_rcv(struct firewire_comm* fc, caddr_t buf, u_int len, u_int sub, u_int off, u
ntohl(fp->mode.rreqq.dest_lo));
if(bind == NULL){
#if __FreeBSD_version >= 500000
- printf("Unknown service addr 0x%08x:0x%08x tcode=%x\n",
+ printf("Unknown service addr 0x%08x:0x%08x tcode=%x\n src=0x%x",
#else
- printf("Unknown service addr 0x%08x:0x%08lx tcode=%x\n",
+ printf("Unknown service addr 0x%08x:0x%08lx tcode=%x src=0x%x\n",
#endif
ntohs(fp->mode.rreqq.dest_hi),
ntohl(fp->mode.rreqq.dest_lo),
- fp->mode.common.tcode);
+ fp->mode.common.tcode,
+ fp->mode.hdr.src);
if (fc->status == FWBUSRESET) {
printf("fw_rcv: cannot respond(bus reset)!\n");
goto err;
OpenPOWER on IntegriCloud