On Dec 12, 2007 12:00 PM, Dave Jones <davej@xxxxxxxxxx> wrote: > Today I came across a bug in the kernel cpufreq code where > we were missing a bunch of up_write() calls in error paths > of a function. > > I've been trying to get sparse's context checking to pick up > on the errors and failing. The kernel patch below is what I have > so far, but it seems to report no output whatsoever. > What am I missing ? Can you share the example buggy cpufreq code that miss the up_write() calls? > --- a/lib/rwsem-spinlock.c > +++ b/lib/rwsem-spinlock.c > @@ -162,6 +162,7 @@ void fastcall __sched __down_read(struct rw_semaphore *sem) > > tsk->state = TASK_RUNNING; > out: > + __acquire(sem); > ; > } That is not needed. Because the __down_read is not an inline function. The extern void FASTCALL(__down_read(struct rw_semaphore *sem)) __acquires(sem); declare should be good enough. Chris - To unsubscribe from this list: send the line "unsubscribe linux-sparse" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html