Skip to content

Commit

Permalink
net: wwan: core: expand ports number limit
Browse files Browse the repository at this point in the history
Currently, we limit the total ports number to 256. It is quite common
for PBX or SMS gateway to be equipped with a lot of modems. In now days,
a modem could have 2-4 control ports or even more, what only accelerates
the ports exhausing rate.

To avoid facing the port number limitation issue reports, increase the
limit up the maximum number of minors (i.e. up to 1 << MINORBITS).

Signed-off-by: Sergey Ryazanov <ryazanov.s.a@gmail.com>
Reviewed-by: Loic Poulain <loic.poulain@linaro.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
  • Loading branch information
Sergey Ryazanov authored and David S. Miller committed Jun 8, 2021
1 parent f458709 commit 72eedfc
Showing 1 changed file with 5 additions and 3 deletions.
8 changes: 5 additions & 3 deletions drivers/net/wwan/wwan_core.c
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,8 @@
#include <linux/types.h>
#include <linux/wwan.h>

#define WWAN_MAX_MINORS 256 /* 256 minors allowed with register_chrdev() */
/* Maximum number of minors in use */
#define WWAN_MAX_MINORS (1 << MINORBITS)

static DEFINE_MUTEX(wwan_register_lock); /* WWAN device create|remove lock */
static DEFINE_IDA(minors); /* minors for WWAN port chardevs */
Expand Down Expand Up @@ -634,7 +635,8 @@ static int __init wwan_init(void)
return PTR_ERR(wwan_class);

/* chrdev used for wwan ports */
wwan_major = register_chrdev(0, "wwan_port", &wwan_port_fops);
wwan_major = __register_chrdev(0, 0, WWAN_MAX_MINORS, "wwan_port",
&wwan_port_fops);
if (wwan_major < 0) {
class_destroy(wwan_class);
return wwan_major;
Expand All @@ -645,7 +647,7 @@ static int __init wwan_init(void)

static void __exit wwan_exit(void)
{
unregister_chrdev(wwan_major, "wwan_port");
__unregister_chrdev(wwan_major, 0, WWAN_MAX_MINORS, "wwan_port");
class_destroy(wwan_class);
}

Expand Down

0 comments on commit 72eedfc

Please sign in to comment.