static void release_hdlc_queues(struct port *port) { qmgr_release_queue(queue_ids[port->id].rxfree); qmgr_release_queue(queue_ids[port->id].rx); qmgr_release_queue(queue_ids[port->id].txdone); qmgr_release_queue(queue_ids[port->id].tx); qmgr_release_queue(port->plat->txreadyq); }
static void release_queues(struct port *port) { qmgr_release_queue(RXFREE_QUEUE(port->id)); qmgr_release_queue(port->plat->rxq); qmgr_release_queue(TX_QUEUE(port->id)); qmgr_release_queue(port->plat->txreadyq); if (!ports_open) qmgr_release_queue(TXDONE_QUEUE); }
static int request_queues(struct port *port) { int err; err = qmgr_request_queue(RXFREE_QUEUE(port->id), RX_DESCS, 0, 0, "%s:RX-free", port->netdev->name); if (err) return err; err = qmgr_request_queue(port->plat->rxq, RX_DESCS, 0, 0, "%s:RX", port->netdev->name); if (err) goto rel_rxfree; err = qmgr_request_queue(TX_QUEUE(port->id), TX_DESCS, 0, 0, "%s:TX", port->netdev->name); if (err) goto rel_rx; err = qmgr_request_queue(port->plat->txreadyq, TX_DESCS, 0, 0, "%s:TX-ready", port->netdev->name); if (err) goto rel_tx; /* TX-done queue handles skbs sent out by the NPEs */ if (!ports_open) { err = qmgr_request_queue(TXDONE_QUEUE, TXDONE_QUEUE_LEN, 0, 0, "%s:TX-done", DRV_NAME); if (err) goto rel_txready; } return 0; rel_txready: qmgr_release_queue(port->plat->txreadyq); rel_tx: qmgr_release_queue(TX_QUEUE(port->id)); rel_rx: qmgr_release_queue(port->plat->rxq); rel_rxfree: qmgr_release_queue(RXFREE_QUEUE(port->id)); printk(KERN_DEBUG "%s: unable to request hardware queues\n", port->netdev->name); return err; }
static int request_hdlc_queues(struct port *port) { int err; err = qmgr_request_queue(queue_ids[port->id].rxfree, RX_DESCS, 0, 0, "%s:RX-free", port->netdev->name); if (err) return err; err = qmgr_request_queue(queue_ids[port->id].rx, RX_DESCS, 0, 0, "%s:RX", port->netdev->name); if (err) goto rel_rxfree; err = qmgr_request_queue(queue_ids[port->id].tx, TX_DESCS, 0, 0, "%s:TX", port->netdev->name); if (err) goto rel_rx; err = qmgr_request_queue(port->plat->txreadyq, TX_DESCS, 0, 0, "%s:TX-ready", port->netdev->name); if (err) goto rel_tx; err = qmgr_request_queue(queue_ids[port->id].txdone, TX_DESCS, 0, 0, "%s:TX-done", port->netdev->name); if (err) goto rel_txready; return 0; rel_txready: qmgr_release_queue(port->plat->txreadyq); rel_tx: qmgr_release_queue(queue_ids[port->id].tx); rel_rx: qmgr_release_queue(queue_ids[port->id].rx); rel_rxfree: qmgr_release_queue(queue_ids[port->id].rxfree); printk(KERN_DEBUG "%s: unable to request hardware queues\n", port->netdev->name); return err; }