• Linus Walleij's avatar
    chrdev: emit a warning when we go below dynamic major range · 49db08c3
    Linus Walleij authored
    Currently a dynamically allocated character device major is taken
    from 254 and downward. This mechanism is used for RTC, IIO and a
    few other subsystems.
    
    The kernel currently has no check prevening these dynamic
    allocations from eating into the assigned numbers at 233 and
    downward.
    
    In a recent test it was reported that so many dynamic device
    majors were used on a test server, that the major number for
    infiniband (231) was stolen. This occurred when allocating a new
    major number for GPIO chips. The error messages from the kernel
    were not helpful. (See: https://lkml.org/lkml/2016/2/14/124)
    
    This patch adds a defined lower limit of the dynamic major
    allocation region will henceforth emit a warning if we start to
    eat into the assigned numbers. It does not do any semantic
    changes and will not change the kernels behaviour: numbers will
    still continue to be stolen, but we will know from dmesg what
    is going on.
    
    This also updates the Documentation/devices.txt to clearly
    reflect that we are using this range of major numbers for dynamic
    allocation.
    Reported-by: default avatarYing Huang <ying.huang@linux.intel.com>
    Cc: Linus Torvalds <torvalds@linux-foundation.org>
    Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Cc: Alan Cox <alan@linux.intel.com>
    Cc: Arnd Bergmann <arnd@arndb.de>
    Signed-off-by: default avatarLinus Walleij <linus.walleij@linaro.org>
    Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
    49db08c3
char_dev.c 13.4 KB