Messages in this thread | | | Date | Tue, 11 Jul 2006 09:20:30 -0600 | From | Jim Cromie <> | Subject | [ patch -mm1 00/02 ] scx200_gpio: use 1 cdev for N minors, not N for N |
| |
this pair of patches switches the driver to share 1 cdev across N pins, thus decreasing memory usage, and simplifying code ( no kzalloc, or its undo ).
Q: For some reason I havent figured, the cdev_put below breaks:
static void __exit scx200_gpio_cleanup(void) { cdev_del(&scx200_gpio_cdev); cdev_put(&scx200_gpio_cdev); <<<<<<<< HERE unregister_chrdev_region(MKDEV(major, 0), MAX_PINS); platform_device_unregister(pdev); }
CC [M] drivers/char/scx200_gpio.o Kernel: arch/i386/boot/bzImage is ready (#6) Building modules, stage 2. MODPOST WARNING: "cdev_put" [drivers/char/scx200_gpio.ko] undefined! LD [M] drivers/char/scx200_gpio.ko
It seems odd that it isnt available, esp since cdev_init() is also used wo errors ( in -mm1 currently ), and its defined in same source-file: fs/char_dev.c
At any rate, I commented out the call in the 2nd patch and it works. I left it to mark the question.
thanks Jim Cromie - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |