1
0
mirror of https://git.FreeBSD.org/src.git synced 2024-12-16 10:20:30 +00:00

Protect xpt_run_dev_sendq in xpt_release_devq_device with splsoftcam. This

seems to handle the case of timeouts firing during probe but after a device
has gone away. It really does help.
Obtained from:gibbs@freebsd.org
This commit is contained in:
Matt Jacob 1999-10-16 23:31:34 +00:00
parent c98a6e4f7b
commit 0642b69a16
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=52324

View File

@ -4350,10 +4350,11 @@ static void
xpt_release_devq_device(struct cam_ed *dev, u_int count, int run_queue)
{
int rundevq;
int s;
int s0, s1;
rundevq = 0;
s = splcam();
s0 = splsoftcam();
s1 = splcam();
if (dev->qfrozen_cnt > 0) {
count = (count > dev->qfrozen_cnt) ? dev->qfrozen_cnt : count;
@ -4388,9 +4389,10 @@ xpt_release_devq_device(struct cam_ed *dev, u_int count, int run_queue)
}
}
}
splx(s);
splx(s1);
if (rundevq != 0)
xpt_run_dev_sendq(dev->target->bus);
splx(s0);
}
void