Re: [PATCH v6 1/2] mctp pcc: Check before sending MCTP PCC response ACK

From: Adam Young
Date: Thu Oct 31 2024 - 20:17:16 EST



On 10/30/24 05:45, lihuisong (C) wrote:
+ check_and_ack(pchan, chan);
      pchan->chan_in_use = false;
        return IRQ_HANDLED;
@@ -352,6 +368,9 @@ pcc_mbox_request_channel(struct mbox_client *cl, int subspace_id)
      if (rc)
          return ERR_PTR(rc);
  +    pchan->shmem_base_addr = devm_ioremap(chan->mbox->dev,
+                          pchan->chan.shmem_base_addr,
+                          pchan->chan.shmem_size);
Currently, the PCC mbox client does ioremap after requesting PCC channel.
Thus all current clients will ioremap twice. This is not good to me.
How about add a new interface and give the type4 client the right to decide whether to reply in rx_callback?


I do agree that is a cleaner implementation, but I don't have a way of testing the other drivers, and did not want to break them. I think your driver is the only that makes use of it, so we can certainly come up with a common approach.

The mailbox interface does not allow a return code from mbox_chan_received_data, which is what I originally wanted.  If that could return multiple status codes, one of them could indicate the need  to send the interrupt back.  Otherwise, we need to query the driver to read the shared memory again.