This is similar to what is done around other calls that lead to
own_command_wait() that can sleep.
Details
Details
- Reviewers
imp - Commits
- rS354067: ow_temp: drop the lock around a call that can sleep
Diff Detail
Diff Detail
- Repository
- rS FreeBSD src repository - subversion
- Lint
Lint Not Applicable - Unit
Tests Not Applicable
Event Timeline
Comment Actions
I'd move the lock to after the if that might do a printf.
Otherwise, this is the right thing to do. We use temp_lock to protect sc->flags only, so this drop doesn't affect that.
In fact, we can go much further than this as noted.
The locking wasn't really attended to when I wrote this driver and I used old-school patterns.
sys/dev/ow/ow_temp.c | ||
---|---|---|
148 ↗ | (On Diff #63538) | I'd move this down 2 lines. |
151 ↗ | (On Diff #63538) | I'd put the lock just before this while() statement. |
159 ↗ | (On Diff #63538) | We can move this lock up to before the for loop. |
161 ↗ | (On Diff #63538) | and then delete this line. |
185 ↗ | (On Diff #63538) | And pick up the lock just before calling msleep. |