| Date | Mon, 2 Jan 2023 11:43:30 +0530 | From | Srivatsa Vaddagiri <> | Subject | Re: [PATCH v8 09/28] mailbox: Add Gunyah message queue mailbox |
| |
* Elliot Berman <quic_eberman@quicinc.com> [2022-12-19 14:58:30]:
> +static inline bool gh_msgq_has_tx(struct gh_msgq *msgq) > +{
Consider possibility that msgq->tx_ghrc can be NULL?
> + return msgq->tx_ghrsc->type == GUNYAH_RESOURCE_TYPE_MSGQ_TX; > +} > + > +static inline bool gh_msgq_has_rx(struct gh_msgq *msgq) > +{
Consider possibility that msgq->rx_ghrc can be NULL?
> + return msgq->rx_ghrsc->type == GUNYAH_RESOURCE_TYPE_MSGQ_RX; > +} > + > +static irqreturn_t gh_msgq_rx_irq_handler(int irq, void *data) > +{ > + struct gh_msgq *msgq = data; > + struct gh_msgq_rx_data rx_data; > + unsigned long gh_err; > + ssize_t ret; > + bool ready = false; > + > + do { > + gh_err = gh_hypercall_msgq_recv(msgq->rx_ghrsc->capid, > + (uintptr_t)&rx_data.data, sizeof(rx_data.data), > + &rx_data.length, &ready); > + if (gh_err == GH_ERROR_OK) { > + mbox_chan_received_data(gh_msgq_chan(msgq), &rx_data); > + } else if (GH_ERROR_MSGQUEUE_EMPTY) {
gh_err == GH_ERROR_MSGQUEUE_EMPTY
> + break; > + } else { > + pr_warn("Failed to receive data from msgq for %s: %ld\n", > + msgq->mbox.dev ? dev_name(msgq->mbox.dev) : "", ret); > + break; > + } > + } while (ready); > + > + return IRQ_HANDLED; > +}
|