> On Mar 10, 2019, at 1:57 AM, Kangjie Lu <kjlu@xxxxxxx> wrote: > > In case alloc_workqueue fails to allocate the work queue and > returns NULL, the fix releases the resources and returns > -ENOMEM. > > Signed-off-by: Kangjie Lu <kjlu@xxxxxxx> > --- > drivers/net/can/spi/mcp251x.c | 8 ++++++++ > 1 file changed, 8 insertions(+) > > diff --git a/drivers/net/can/spi/mcp251x.c b/drivers/net/can/spi/mcp251x.c > index e90817608645..2737b9a20dfe 100644 > --- a/drivers/net/can/spi/mcp251x.c > +++ b/drivers/net/can/spi/mcp251x.c > @@ -962,6 +962,14 @@ static int mcp251x_open(struct net_device *net) > > priv->wq = alloc_workqueue("mcp251x_wq", WQ_FREEZABLE | WQ_MEM_RECLAIM, > 0); > + if (unlikely(!priv->wq)) { > + dev_err(&spi->dev, "failed to allocate work queue\n"); > + mcp251x_power_enable(priv->transceiver, 0); > + close_candev(net); > + ret = -ENOMEM; > + goto open_unlock; > + } > + Can someone review this patch? > INIT_WORK(&priv->tx_work, mcp251x_tx_work_handler); > INIT_WORK(&priv->restart_work, mcp251x_restart_work_handler); > > -- > 2.17.1 >