]> CyberLeo.Net >> Repos - FreeBSD/stable/9.git/commit
MFC r242175:
authormav <mav@ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f>
Wed, 6 Feb 2013 18:40:07 +0000 (18:40 +0000)
committermav <mav@ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f>
Wed, 6 Feb 2013 18:40:07 +0000 (18:40 +0000)
commitd5a9a3a75a69b14856138404d708045158ca352f
treee481a8764d1d544cd1cbd0457452ede9e378b16a
parentb72a19042da96330200e3d02993a90b75802f620
MFC r242175:
Remove priority enforcement from xpt_ation().  It is not good and even not
safe in some cases to reduce CCB priority after it was scheduled with high
priority.  This fixes reproducible deadlock when command sent through the
pass interface while ATA XPT recovers from command timeout.

Instead of that enforce priority at passioctl().  libcam provides no obvious
interface to specify CCB priority and so much (all?) code specifies zero
(highest) priority.  This change limits pass CCBs priority to NORMAL run
level, allowing XPT to complete bus and device recovery after reset before
running any payload.

git-svn-id: svn://svn.freebsd.org/base/stable/9@246431 ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f
sys/cam/cam.h
sys/cam/cam_xpt.c
sys/cam/scsi/scsi_pass.c