scrq 2675 drivers/net/ethernet/ibm/ibmvnic.c struct ibmvnic_sub_crq_queue *scrq) scrq 2679 drivers/net/ethernet/ibm/ibmvnic.c if (scrq->irq) { scrq 2680 drivers/net/ethernet/ibm/ibmvnic.c free_irq(scrq->irq, scrq); scrq 2681 drivers/net/ethernet/ibm/ibmvnic.c irq_dispose_mapping(scrq->irq); scrq 2682 drivers/net/ethernet/ibm/ibmvnic.c scrq->irq = 0; scrq 2685 drivers/net/ethernet/ibm/ibmvnic.c memset(scrq->msgs, 0, 4 * PAGE_SIZE); scrq 2686 drivers/net/ethernet/ibm/ibmvnic.c atomic_set(&scrq->used, 0); scrq 2687 drivers/net/ethernet/ibm/ibmvnic.c scrq->cur = 0; scrq 2689 drivers/net/ethernet/ibm/ibmvnic.c rc = h_reg_sub_crq(adapter->vdev->unit_address, scrq->msg_token, scrq 2690 drivers/net/ethernet/ibm/ibmvnic.c 4 * PAGE_SIZE, &scrq->crq_num, &scrq->hw_irq); scrq 2716 drivers/net/ethernet/ibm/ibmvnic.c struct ibmvnic_sub_crq_queue *scrq, scrq 2729 drivers/net/ethernet/ibm/ibmvnic.c scrq->crq_num); scrq 2735 drivers/net/ethernet/ibm/ibmvnic.c scrq->crq_num, rc); scrq 2739 drivers/net/ethernet/ibm/ibmvnic.c dma_unmap_single(dev, scrq->msg_token, 4 * PAGE_SIZE, scrq 2741 drivers/net/ethernet/ibm/ibmvnic.c free_pages((unsigned long)scrq->msgs, 2); scrq 2742 drivers/net/ethernet/ibm/ibmvnic.c kfree(scrq); scrq 2749 drivers/net/ethernet/ibm/ibmvnic.c struct ibmvnic_sub_crq_queue *scrq; scrq 2752 drivers/net/ethernet/ibm/ibmvnic.c scrq = kzalloc(sizeof(*scrq), GFP_KERNEL); scrq 2753 drivers/net/ethernet/ibm/ibmvnic.c if (!scrq) scrq 2756 drivers/net/ethernet/ibm/ibmvnic.c scrq->msgs = scrq 2758 drivers/net/ethernet/ibm/ibmvnic.c if (!scrq->msgs) { scrq 2763 drivers/net/ethernet/ibm/ibmvnic.c scrq->msg_token = dma_map_single(dev, scrq->msgs, 4 * PAGE_SIZE, scrq 2765 drivers/net/ethernet/ibm/ibmvnic.c if (dma_mapping_error(dev, scrq->msg_token)) { scrq 2770 drivers/net/ethernet/ibm/ibmvnic.c rc = h_reg_sub_crq(adapter->vdev->unit_address, scrq->msg_token, scrq 2771 drivers/net/ethernet/ibm/ibmvnic.c 4 * PAGE_SIZE, &scrq->crq_num, &scrq->hw_irq); scrq 2783 drivers/net/ethernet/ibm/ibmvnic.c scrq->adapter = adapter; scrq 2784 drivers/net/ethernet/ibm/ibmvnic.c scrq->size = 4 * PAGE_SIZE / sizeof(*scrq->msgs); scrq 2785 drivers/net/ethernet/ibm/ibmvnic.c spin_lock_init(&scrq->lock); scrq 2789 drivers/net/ethernet/ibm/ibmvnic.c scrq->crq_num, scrq->hw_irq, scrq->irq); scrq 2791 drivers/net/ethernet/ibm/ibmvnic.c return scrq; scrq 2794 drivers/net/ethernet/ibm/ibmvnic.c dma_unmap_single(dev, scrq->msg_token, 4 * PAGE_SIZE, scrq 2797 drivers/net/ethernet/ibm/ibmvnic.c free_pages((unsigned long)scrq->msgs, 2); scrq 2799 drivers/net/ethernet/ibm/ibmvnic.c kfree(scrq); scrq 2856 drivers/net/ethernet/ibm/ibmvnic.c struct ibmvnic_sub_crq_queue *scrq) scrq 2862 drivers/net/ethernet/ibm/ibmvnic.c H_DISABLE_VIO_INTERRUPT, scrq->hw_irq, 0, 0); scrq 2865 drivers/net/ethernet/ibm/ibmvnic.c scrq->hw_irq, rc); scrq 2870 drivers/net/ethernet/ibm/ibmvnic.c struct ibmvnic_sub_crq_queue *scrq) scrq 2875 drivers/net/ethernet/ibm/ibmvnic.c if (scrq->hw_irq > 0x100000000ULL) { scrq 2876 drivers/net/ethernet/ibm/ibmvnic.c dev_err(dev, "bad hw_irq = %lx\n", scrq->hw_irq); scrq 2882 drivers/net/ethernet/ibm/ibmvnic.c u64 val = (0xff000000) | scrq->hw_irq; scrq 2894 drivers/net/ethernet/ibm/ibmvnic.c H_ENABLE_VIO_INTERRUPT, scrq->hw_irq, 0, 0); scrq 2897 drivers/net/ethernet/ibm/ibmvnic.c scrq->hw_irq, rc); scrq 2902 drivers/net/ethernet/ibm/ibmvnic.c struct ibmvnic_sub_crq_queue *scrq) scrq 2912 drivers/net/ethernet/ibm/ibmvnic.c while (pending_scrq(adapter, scrq)) { scrq 2913 drivers/net/ethernet/ibm/ibmvnic.c unsigned int pool = scrq->pool_index; scrq 2916 drivers/net/ethernet/ibm/ibmvnic.c next = ibmvnic_next_scrq(adapter, scrq); scrq 2955 drivers/net/ethernet/ibm/ibmvnic.c if (atomic_sub_return(num_entries, &scrq->used) <= scrq 2958 drivers/net/ethernet/ibm/ibmvnic.c scrq->pool_index)) { scrq 2959 drivers/net/ethernet/ibm/ibmvnic.c netif_wake_subqueue(adapter->netdev, scrq->pool_index); scrq 2961 drivers/net/ethernet/ibm/ibmvnic.c scrq->pool_index); scrq 2965 drivers/net/ethernet/ibm/ibmvnic.c enable_scrq_irq(adapter, scrq); scrq 2967 drivers/net/ethernet/ibm/ibmvnic.c if (pending_scrq(adapter, scrq)) { scrq 2968 drivers/net/ethernet/ibm/ibmvnic.c disable_scrq_irq(adapter, scrq); scrq 2977 drivers/net/ethernet/ibm/ibmvnic.c struct ibmvnic_sub_crq_queue *scrq = instance; scrq 2978 drivers/net/ethernet/ibm/ibmvnic.c struct ibmvnic_adapter *adapter = scrq->adapter; scrq 2980 drivers/net/ethernet/ibm/ibmvnic.c disable_scrq_irq(adapter, scrq); scrq 2981 drivers/net/ethernet/ibm/ibmvnic.c ibmvnic_complete_tx(adapter, scrq); scrq 2988 drivers/net/ethernet/ibm/ibmvnic.c struct ibmvnic_sub_crq_queue *scrq = instance; scrq 2989 drivers/net/ethernet/ibm/ibmvnic.c struct ibmvnic_adapter *adapter = scrq->adapter; scrq 2997 drivers/net/ethernet/ibm/ibmvnic.c adapter->rx_stats_buffers[scrq->scrq_num].interrupts++; scrq 2999 drivers/net/ethernet/ibm/ibmvnic.c if (napi_schedule_prep(&adapter->napi[scrq->scrq_num])) { scrq 3000 drivers/net/ethernet/ibm/ibmvnic.c disable_scrq_irq(adapter, scrq); scrq 3001 drivers/net/ethernet/ibm/ibmvnic.c __napi_schedule(&adapter->napi[scrq->scrq_num]); scrq 3010 drivers/net/ethernet/ibm/ibmvnic.c struct ibmvnic_sub_crq_queue *scrq; scrq 3017 drivers/net/ethernet/ibm/ibmvnic.c scrq = adapter->tx_scrq[i]; scrq 3018 drivers/net/ethernet/ibm/ibmvnic.c scrq->irq = irq_create_mapping(NULL, scrq->hw_irq); scrq 3020 drivers/net/ethernet/ibm/ibmvnic.c if (!scrq->irq) { scrq 3026 drivers/net/ethernet/ibm/ibmvnic.c snprintf(scrq->name, sizeof(scrq->name), "ibmvnic-%x-tx%d", scrq 3028 drivers/net/ethernet/ibm/ibmvnic.c rc = request_irq(scrq->irq, ibmvnic_interrupt_tx, scrq 3029 drivers/net/ethernet/ibm/ibmvnic.c 0, scrq->name, scrq); scrq 3033 drivers/net/ethernet/ibm/ibmvnic.c scrq->irq, rc); scrq 3034 drivers/net/ethernet/ibm/ibmvnic.c irq_dispose_mapping(scrq->irq); scrq 3042 drivers/net/ethernet/ibm/ibmvnic.c scrq = adapter->rx_scrq[i]; scrq 3043 drivers/net/ethernet/ibm/ibmvnic.c scrq->irq = irq_create_mapping(NULL, scrq->hw_irq); scrq 3044 drivers/net/ethernet/ibm/ibmvnic.c if (!scrq->irq) { scrq 3049 drivers/net/ethernet/ibm/ibmvnic.c snprintf(scrq->name, sizeof(scrq->name), "ibmvnic-%x-rx%d", scrq 3051 drivers/net/ethernet/ibm/ibmvnic.c rc = request_irq(scrq->irq, ibmvnic_interrupt_rx, scrq 3052 drivers/net/ethernet/ibm/ibmvnic.c 0, scrq->name, scrq); scrq 3055 drivers/net/ethernet/ibm/ibmvnic.c scrq->irq, rc); scrq 3056 drivers/net/ethernet/ibm/ibmvnic.c irq_dispose_mapping(scrq->irq); scrq 3290 drivers/net/ethernet/ibm/ibmvnic.c struct ibmvnic_sub_crq_queue *scrq) scrq 3292 drivers/net/ethernet/ibm/ibmvnic.c union sub_crq *entry = &scrq->msgs[scrq->cur]; scrq 3301 drivers/net/ethernet/ibm/ibmvnic.c struct ibmvnic_sub_crq_queue *scrq) scrq 3306 drivers/net/ethernet/ibm/ibmvnic.c spin_lock_irqsave(&scrq->lock, flags); scrq 3307 drivers/net/ethernet/ibm/ibmvnic.c entry = &scrq->msgs[scrq->cur]; scrq 3309 drivers/net/ethernet/ibm/ibmvnic.c if (++scrq->cur == scrq->size) scrq 3310 drivers/net/ethernet/ibm/ibmvnic.c scrq->cur = 0; scrq 3314 drivers/net/ethernet/ibm/ibmvnic.c spin_unlock_irqrestore(&scrq->lock, flags);