• Mike Isely's avatar
    V4L/DVB (7711): pvrusb2: Fix race on module unload · e5be15c6
    Mike Isely authored
    The pvrusb2 driver - for basically forever - was not enforcing a
    proper module tear-down.  Kernel threads are used inside the driver
    and all must be gone before the module can be safely removed.  This
    changeset reimplements a chunk of pvrusb2-context.c to enforce this
    correctly.  Unfortunately this is not a simple fix.  The new
    implementation also cuts back on kernel thread usage; instead of there
    being 1 control thread per instance now it's just 1 control thread
    shared by all instances.  (By dropping to a single thread then the
    module exit function can block on its shutdown and the thread itself
    can monitor and cleanly shut down all of the other instances first.)
    Signed-off-by: default avatarMike Isely <isely@pobox.com>
    Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@infradead.org>
    e5be15c6
pvrusb2-context.h 2.81 KB