Loading arch/sparc/include/asm/ldc.h +1 −0 Original line number Diff line number Diff line Loading @@ -61,6 +61,7 @@ void ldc_free(struct ldc_channel *lp); /* Register TX and RX queues of the link with the hypervisor. */ int ldc_bind(struct ldc_channel *lp); void ldc_unbind(struct ldc_channel *lp); /* For non-RAW protocols we need to complete a handshake before * communication can proceed. ldc_connect() does that, if the Loading arch/sparc/kernel/ldc.c +9 −3 Original line number Diff line number Diff line Loading @@ -1222,11 +1222,12 @@ struct ldc_channel *ldc_alloc(unsigned long id, } EXPORT_SYMBOL(ldc_alloc); void ldc_free(struct ldc_channel *lp) void ldc_unbind(struct ldc_channel *lp) { if (lp->flags & LDC_FLAG_REGISTERED_IRQS) { free_irq(lp->cfg.rx_irq, lp); free_irq(lp->cfg.tx_irq, lp); lp->flags &= ~LDC_FLAG_REGISTERED_IRQS; } if (lp->flags & LDC_FLAG_REGISTERED_QUEUES) { Loading @@ -1240,10 +1241,15 @@ void ldc_free(struct ldc_channel *lp) lp->flags &= ~LDC_FLAG_ALLOCED_QUEUES; } hlist_del(&lp->list); ldc_set_state(lp, LDC_STATE_INIT); } EXPORT_SYMBOL(ldc_unbind); void ldc_free(struct ldc_channel *lp) { ldc_unbind(lp); hlist_del(&lp->list); kfree(lp->mssbuf); ldc_iommu_release(lp); kfree(lp); Loading Loading
arch/sparc/include/asm/ldc.h +1 −0 Original line number Diff line number Diff line Loading @@ -61,6 +61,7 @@ void ldc_free(struct ldc_channel *lp); /* Register TX and RX queues of the link with the hypervisor. */ int ldc_bind(struct ldc_channel *lp); void ldc_unbind(struct ldc_channel *lp); /* For non-RAW protocols we need to complete a handshake before * communication can proceed. ldc_connect() does that, if the Loading
arch/sparc/kernel/ldc.c +9 −3 Original line number Diff line number Diff line Loading @@ -1222,11 +1222,12 @@ struct ldc_channel *ldc_alloc(unsigned long id, } EXPORT_SYMBOL(ldc_alloc); void ldc_free(struct ldc_channel *lp) void ldc_unbind(struct ldc_channel *lp) { if (lp->flags & LDC_FLAG_REGISTERED_IRQS) { free_irq(lp->cfg.rx_irq, lp); free_irq(lp->cfg.tx_irq, lp); lp->flags &= ~LDC_FLAG_REGISTERED_IRQS; } if (lp->flags & LDC_FLAG_REGISTERED_QUEUES) { Loading @@ -1240,10 +1241,15 @@ void ldc_free(struct ldc_channel *lp) lp->flags &= ~LDC_FLAG_ALLOCED_QUEUES; } hlist_del(&lp->list); ldc_set_state(lp, LDC_STATE_INIT); } EXPORT_SYMBOL(ldc_unbind); void ldc_free(struct ldc_channel *lp) { ldc_unbind(lp); hlist_del(&lp->list); kfree(lp->mssbuf); ldc_iommu_release(lp); kfree(lp); Loading