| 891 | } |
| 892 | |
| 893 | static int |
| 894 | ionic_notify_qcq_alloc(struct ionic_lif *lif) |
| 895 | { |
| 896 | struct ionic_notify_qcq *nqcq; |
| 897 | struct ionic_dev *idev = &lif->adapter->idev; |
| 898 | uint16_t flags = 0; |
| 899 | int err; |
| 900 | |
| 901 | err = ionic_qcq_alloc(lif, |
| 902 | IONIC_QTYPE_NOTIFYQ, |
| 903 | sizeof(struct ionic_notify_qcq), |
| 904 | rte_socket_id(), |
| 905 | 0, |
| 906 | "notify", |
| 907 | flags, |
| 908 | IONIC_NOTIFYQ_LENGTH, |
| 909 | 1, |
| 910 | sizeof(struct ionic_notifyq_cmd), |
| 911 | sizeof(union ionic_notifyq_comp), |
| 912 | 0, |
| 913 | (struct ionic_qcq **)&nqcq); |
| 914 | if (err) |
| 915 | return err; |
| 916 | |
| 917 | err = ionic_intr_alloc(lif, &nqcq->intr); |
| 918 | if (err) { |
| 919 | ionic_qcq_free(&nqcq->qcq); |
| 920 | return err; |
| 921 | } |
| 922 | |
| 923 | ionic_intr_mask_assert(idev->intr_ctrl, nqcq->intr.index, |
| 924 | IONIC_INTR_MASK_SET); |
| 925 | |
| 926 | lif->notifyqcq = nqcq; |
| 927 | |
| 928 | return 0; |
| 929 | } |
| 930 | |
| 931 | static void |
| 932 | ionic_lif_queue_identify(struct ionic_lif *lif) |
no test coverage detected