]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/commit
Fix an issue that caused the kernel to panic inside CTL when trying
authorKenneth D. Merry <ken@FreeBSD.org>
Tue, 26 Jun 2012 14:51:35 +0000 (14:51 +0000)
committerKenneth D. Merry <ken@FreeBSD.org>
Tue, 26 Jun 2012 14:51:35 +0000 (14:51 +0000)
commitb79dc8a8da264fafa98697a39a967e56ed8647d1
tree7b016bc8afd686b682aaffe21bfcace67afaf0e7
parent8405fe86627bd23303e30797ec2e5ec37f493491
Fix an issue that caused the kernel to panic inside CTL when trying
to attach to target capable HBAs that implement the old immediate
notify (XPT_IMMED_NOTIFY) and notify acknowledge (XPT_NOTIFY_ACK)
CCBs.  The new API has been in place since SVN change 196008 in
2009.

The solution is two-fold:  fix CTL to handle the responses from the
HBAs, and convert the HBA drivers in question to use the new API.

These drivers have not been tested with CTL, so how well they will
interoperate with CTL is unknown.

scsi_target.c: Update the userland target example code to use the
new immediate notify API.

scsi_ctl.c: Detect when an immediate notify CCB is returned
with CAM_REQ_INVALID or CAM_PROVIDE_FAIL status,
and just free it.

Fix a duplicate assignment.

aic79xx.c,
aic79xx_osm.c: Update the aic79xx driver to use the new API.
Target mode is not enabled on for this driver, so
the changes will have no practical effect.

aic7xxx.c,
aic7xxx_osm.c: Update the aic7xxx driver to use the new API.

sbp_targ.c: Update the firewire target code to work with the
new API.

mpt_cam.c: Update the mpt(4) driver to work with the new API.
Target mode is only enabled for Fibre Channel
mpt(4) devices.

MFC after: 3 days
share/examples/scsi_target/scsi_target.c
sys/cam/ctl/scsi_ctl.c
sys/dev/aic7xxx/aic79xx.c
sys/dev/aic7xxx/aic79xx_osm.c
sys/dev/aic7xxx/aic7xxx.c
sys/dev/aic7xxx/aic7xxx_osm.c
sys/dev/firewire/sbp_targ.c
sys/dev/mpt/mpt_cam.c