net: cdc_ncm: use sane defaults for rx/tx buffers
Lots of devices request much larger buffers than reasonable. This cause real problems for users of hosts with limited resources. Reducing the default buffer size to 16kB for such devices is a reasonable trade-off between allowing them to aggregate traffic and avoiding memory exhaustion on resource restrained hosts. Signed-off-by: Bjørn Mork <bjorn@mork.no> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:

committed by
David S. Miller

parent
beeecd42c3
commit
50f1cb1cc8
@@ -492,10 +492,18 @@ static void cdc_ncm_fix_modulus(struct usbnet *dev)
|
||||
static int cdc_ncm_setup(struct usbnet *dev)
|
||||
{
|
||||
struct cdc_ncm_ctx *ctx = (struct cdc_ncm_ctx *)dev->data[0];
|
||||
u32 def_rx, def_tx;
|
||||
|
||||
/* be conservative when selecting intial buffer size to
|
||||
* increase the number of hosts this will work for
|
||||
*/
|
||||
def_rx = min_t(u32, CDC_NCM_NTB_DEF_SIZE_RX,
|
||||
le32_to_cpu(ctx->ncm_parm.dwNtbInMaxSize));
|
||||
def_tx = min_t(u32, CDC_NCM_NTB_DEF_SIZE_TX,
|
||||
le32_to_cpu(ctx->ncm_parm.dwNtbOutMaxSize));
|
||||
|
||||
/* clamp rx_max and tx_max and inform device */
|
||||
cdc_ncm_update_rxtx_max(dev, le32_to_cpu(ctx->ncm_parm.dwNtbInMaxSize),
|
||||
le32_to_cpu(ctx->ncm_parm.dwNtbOutMaxSize));
|
||||
cdc_ncm_update_rxtx_max(dev, def_rx, def_tx);
|
||||
|
||||
/* sanitize the modulus and remainder values */
|
||||
cdc_ncm_fix_modulus(dev);
|
||||
|
Reference in New Issue
Block a user