diff options
-rw-r--r-- | drivers/rapidio/rio_cm.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/drivers/rapidio/rio_cm.c b/drivers/rapidio/rio_cm.c index cf45829585cb..b29fc258eeba 100644 --- a/drivers/rapidio/rio_cm.c +++ b/drivers/rapidio/rio_cm.c | |||
@@ -2147,6 +2147,14 @@ static int riocm_add_mport(struct device *dev, | |||
2147 | mutex_init(&cm->rx_lock); | 2147 | mutex_init(&cm->rx_lock); |
2148 | riocm_rx_fill(cm, RIOCM_RX_RING_SIZE); | 2148 | riocm_rx_fill(cm, RIOCM_RX_RING_SIZE); |
2149 | cm->rx_wq = create_workqueue(DRV_NAME "/rxq"); | 2149 | cm->rx_wq = create_workqueue(DRV_NAME "/rxq"); |
2150 | if (!cm->rx_wq) { | ||
2151 | riocm_error("failed to allocate IBMBOX_%d on %s", | ||
2152 | cmbox, mport->name); | ||
2153 | rio_release_outb_mbox(mport, cmbox); | ||
2154 | kfree(cm); | ||
2155 | return -ENOMEM; | ||
2156 | } | ||
2157 | |||
2150 | INIT_WORK(&cm->rx_work, rio_ibmsg_handler); | 2158 | INIT_WORK(&cm->rx_work, rio_ibmsg_handler); |
2151 | 2159 | ||
2152 | cm->tx_slot = 0; | 2160 | cm->tx_slot = 0; |