diff --cc drivers/net/can/spi/hi311x.c index 96f23311b4ee,963ea8510dd9..6d4b643e135f --- a/drivers/net/can/spi/hi311x.c +++ b/drivers/net/can/spi/hi311x.c @@@ -909,6 -896,15 +896,16 @@@ static int hi3110_can_probe(struct spi_ if (ret) goto out_clk; - priv->wq = alloc_workqueue("hi3110_wq", WQ_FREEZABLE | WQ_MEM_RECLAIM, ++ priv->wq = alloc_workqueue("hi3110_wq", ++ WQ_FREEZABLE | WQ_MEM_RECLAIM | WQ_PERCPU, + 0); + if (!priv->wq) { + ret = -ENOMEM; + goto out_clk; + } + INIT_WORK(&priv->tx_work, hi3110_tx_work_handler); + INIT_WORK(&priv->restart_work, hi3110_restart_work_handler); + priv->spi = spi; mutex_init(&priv->hi3110_lock);