zoran drivers: absense of locking?

From: Alexey Dobriyan
Date: Fri Oct 28 2005 - 16:04:11 EST


I've tried to read random part of a tree and now scratching my head
with a question:

what protects the number and a list of registered codecs in
zoran drivers?

Example: drivers/media/video/zr36050.c:

/* amount of chips attached via this driver */
static int zr36050_codecs = 0;

Decremented in zr36050_unset().
Checked for maximum value, used and incremented in zr36050_setup().

[Assigment to 0 in zr36050_init_module is not needed. dprintk() in
zr36050_cleanup_module() should be converted to BUG_ON, so I'll ignore
them.]

zr36050_codecs
zr36050_unset() = struct videocodec::unset
zr36050_setup() = struct videocodec::setup

The only place where ->unset and ->setup methods are called is
drivers/media/video/videocodec.c:

zr36050_codecs
zr36050_unset()
videocodec_detach()
zr36050_setup()
videocodec_attach()

Both videocodec functions are exported.

No spinlocks or semaphores in sight.

Does anybody know what protects the list of registered codecs in zoran
drivers?

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/