Thread (65 messages) 65 messages, 6 authors, 2025-07-25

Re: [PATCH v2 08/15] net: rnpgbe: Add irq support

From: Yibo Dong <dong100@mucse.com>
Date: 2025-07-23 03:22:39
Also in: linux-doc, lkml

On Tue, Jul 22, 2025 at 02:25:57PM +0100, Simon Horman wrote:
On Mon, Jul 21, 2025 at 07:32:31PM +0800, Dong Yibo wrote:
quoted
Initialize irq functions for driver use.

Signed-off-by: Dong Yibo <dong100@mucse.com>
...
quoted
diff --git a/drivers/net/ethernet/mucse/rnpgbe/rnpgbe_lib.c b/drivers/net/ethernet/mucse/rnpgbe/rnpgbe_lib.c
...
quoted
+/**
+ * rnpgbe_acquire_msix_vectors - Allocate msix vectors
+ * @mucse: pointer to private structure
+ * @vectors: number of msix vectors
Please also document the return value for functions
that have one and a kernel doc.

Flagged by ./scripts/kernel-doc --none -Wall
Got it, I will fix it.
quoted
+ **/
+static int rnpgbe_acquire_msix_vectors(struct mucse *mucse,
+				       int vectors)
...
quoted
diff --git a/drivers/net/ethernet/mucse/rnpgbe/rnpgbe_main.c b/drivers/net/ethernet/mucse/rnpgbe/rnpgbe_main.c
...
quoted
+/**
+ * rnpgbe_msix_other - Other irq handler
+ * @irq: irq num
+ * @data: private data
+ *
+ * @return: IRQ_HANDLED
+ **/
+static irqreturn_t rnpgbe_msix_other(int irq, void *data)
+{
+	struct mucse *mucse = (struct mucse *)data;
+
+	set_bit(__MUCSE_IN_IRQ, &mucse->state);
+	clear_bit(__MUCSE_IN_IRQ, &mucse->state);
+
+	return IRQ_HANDLED;
+}
+
+/**
+ * register_mbx_irq - Regist mbx Routine
Register
Got it, I will fix it.
quoted
+ * @mucse: pointer to private structure
+ *
+ * @return: 0 on success, negative on failure
+ **/
+static int register_mbx_irq(struct mucse *mucse)
+{
+	struct mucse_hw *hw = &mucse->hw;
+	struct net_device *netdev = mucse->netdev;
+	int err = 0;
Nit, unlike most of this patch(set) the above doesn't follow
reverse xmas tree order - longest line to shortest - for variable
declarations.

Edward Cree's tool can be useful here.
https://github.com/ecree-solarflare/xmastree/
Got it, I will fix it.
Great tool! Thanks.
quoted
+
+	/* for mbx:vector0 */
+	if (mucse->num_other_vectors == 0)
+		return err;
+	/* only do this in msix mode */
+	if (mucse->flags & M_FLAG_MSIX_ENABLED) {
+		err = request_irq(mucse->msix_entries[0].vector,
+				  rnpgbe_msix_other, 0, netdev->name,
+				  mucse);
+		if (err)
+			goto err_mbx;
+		hw->mbx.ops.configure(hw,
+				      mucse->msix_entries[0].entry,
+				      true);
+		hw->mbx.irq_enabled = true;
+	}
+err_mbx:
+	return err;
+}
...
Thanks for your feedback.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help