still confused about the sparse __acquires() and __releases()
checking so i tried to break the kernel code ever so slightly just
enough to generate that kind of error.

  randomly grabbed fs/fuse/dev.c and this routine:

...
static void wait_answer_interruptible(struct fuse_conn *fc,
                                      struct fuse_req *req)
        __releases(fc->lock) __acquires(fc->lock)
{
        if (signal_pending(current))
                return;

        spin_unlock(&fc->lock);
        wait_event_interruptible(req->waitq, req->state == FUSE_REQ_FINISHED);
        // spin_lock(&fc->lock);      <-- commented this out
}
...

then ran "make C=1".  i got a number of errors referring to a
non-existent attribute "__cold__", but nothing warning me about a
synchronization mismatch.  so why not?  isn't that the whole point of
that warning?

rday
--

========================================================================
Robert P. J. Day
Linux Consulting, Training and Annoying Kernel Pedantry:
    Have classroom, will lecture.

http://crashcourse.ca                          Waterloo, Ontario, CANADA
========================================================================

--
To unsubscribe from this list: send an email with
"unsubscribe kernelnewbies" to [EMAIL PROTECTED]
Please read the FAQ at http://kernelnewbies.org/FAQ

Reply via email to