Messages in this thread | | | From | Arnd Bergmann <> | Date | Mon, 20 Jan 2020 11:03:29 +0100 | Subject | Re: Question about dynamic minor number of misc device |
| |
On Mon, Jan 20, 2020 at 9:33 AM Zhenzhong Duan <zhenzhong.duan@gmail.com> wrote: > > Hi Maintainers, > > I see there are 64 free slots(0-63) used for misc devices with dynamic > minor number. But PSMOUSE_MINOR(1) overlaps with that dynamic range. > > So if the dynamic minor number exhaust, psaux driver will fail with > "could not register psaux device, error: -16", is this expected? > Should we preserve a slot for psaux and serio_raw which use static > minor number PSMOUSE_MINOR?
Is this a theoretical question, or are you actually running out of dynamic minor numbers? I would guess that if we change the limit to only allow dynamic minors 2 through 63, that would technically be a correct change, but the result would be that in the same situation another random driver fails, which is not much of an improvement, unless the dynamic minor numbers also continue into the range above 255.
On a related note, I checked for drivers that call misc_register() with a minor number that is not defined in include/linux/misc.h and found a bunch, including some that have conflicting numbers, conflicting names or numbers from the dynamic range:
drivers/staging/speakup/devsynth.c:#define SYNTH_MINOR 25 drivers/staging/speakup/speakup_soft.c:#define SOFTSYNTH_MINOR 26 /* might as well give it one more than /dev/synth */ drivers/staging/speakup/speakup_soft.c:#define SOFTSYNTHU_MINOR 27 /* might as well give it one more than /dev/synth */ drivers/macintosh/via-pmu.c:#define PMU_MINOR 154 drivers/macintosh/ans-lcd.h:#define ANSLCD_MINOR 156 drivers/auxdisplay/charlcd.c:#define LCD_MINOR 156 drivers/char/applicom.c:#define AC_MINOR 157 drivers/char/nwbutton.h:#define BUTTON_MINOR 158 arch/arm/include/asm/nwflash.h:#define FLASH_MINOR 160 drivers/sbus/char/envctrl.c:#define ENVCTRL_MINOR 162 drivers/sbus/char/flash.c:#define FLASH_MINOR 152 drivers/sbus/char/uctrl.c:#define UCTRL_MINOR 174 drivers/char/toshiba.c:#define TOSH_MINOR_DEV 181 arch/um/drivers/random.c:#define RNG_MISCDEV_MINOR 183 /* official */ drivers/auxdisplay/panel.c:#define KEYPAD_MINOR 185 drivers/video/fbdev/pxa3xx-gcu.c:#define MISCDEV_MINOR 197 kernel/power/user.c:#define SNAPSHOT_MINOR 231 drivers/parisc/eisa_eeprom.c:#define EISA_EEPROM_MINOR 241
If you would like to help clean that up, you are definitely welcome to send patches.
Arnd
| |