Le 22/11/2022 à 23:02, Martin Blumenstingl a écrit :
On Tue, Nov 22, 2022 at 10:57 PM Christophe JAILLET
<christophe.jaillet@xxxxxxxxxx> wrote:
There is no real point in allocating dedicated memory for the irqs array.
MAXFLOW is only 2, so it is easier to allocated the needed space
directly within the 'meson_dev' structure.
This saves some memory allocation and avoids an indirection when using the
irqs array.
..and it even fixes a missing devm_kcalloc error check
Personally I prefer this approach over a patch that was sent earlier today: [0]
Corentin, Christophe, what do you think?
Best regards,
Martin
[0] https://lore.kernel.org/linux-crypto/0df30bbf-3b7e-ed20-e316-41192bf3cc2b@xxxxxxxxxx/T/#m6a45b44206c282f106d379b01d19027823c5d79b
Unrelated, but I think that meson_irq_handler() needs a small ajustement
to avoid printing a spurious message if readl() returns 0.
Maybe something like that?:
@@ -33,9 +33,10 @@ static irqreturn_t meson_irq_handler(int irq, void *data)
writel_relaxed(0xF, mc->base + ((0x4 + flow) << 2));
mc->chanlist[flow].status = 1;
complete(&mc->chanlist[flow].complete);
- return IRQ_HANDLED;
+ } else {
+ dev_err(mc->dev, "%s %d Got irq for flow %d but ctrl is empty\n",
__func__, irq, flow);
}
- dev_err(mc->dev, "%s %d Got irq for flow %d but ctrl is empty\n",
__func__, irq, flow);
+ return IRQ_HANDLED;
}
}
CJ