usb: gadget: rndis: remove the limit of available rndis connections
authorAndrzej Pietrasiewicz <andrzej.p@samsung.com>
Fri, 6 Feb 2015 12:43:30 +0000 (13:43 +0100)
committerFelipe Balbi <balbi@ti.com>
Thu, 7 May 2015 18:47:17 +0000 (13:47 -0500)
commitd6d22922d9070b660e3dce0a87a94f0b581e803e
tree74765c687bf8f1c5a963e117d350cbc2c6bdb85b
parent6122b151c7799673794927031a884df0f2355922
usb: gadget: rndis: remove the limit of available rndis connections

RNDIS function has a limitation on the number of allowed instances.
So far it has been RNDIS_MAX_CONFIGS, which happens to be one.
In order to eliminate this kind of arbitrary limitation we should not
preallocate a predefined (RNDIS_MAX_CONFIGS) array of struct rndis_params
instances but instead allow allocating them on demand.

This patch allocates struct rndis_params on demand in rndis_register().
Coversly, the structure is free()'d in rndis_deregister().
If CONFIG_USB_GADGET_DEBUG_FILES is set, the proc files are created which
is the same behaviour as before, but the moment of creation is delayed
until struct rndis_params is actually allocated.

rnids_init() and rndis_exit() have nothing to do, so they are eliminated.

Signed-off-by: Andrzej Pietrasiewicz <andrzej.p@samsung.com>
Signed-off-by: Felipe Balbi <balbi@ti.com>
Documentation/usb/gadget-testing.txt
drivers/usb/gadget/function/f_rndis.c
drivers/usb/gadget/function/rndis.c
drivers/usb/gadget/function/u_rndis.h