Skip to content

Commit

Permalink
mailbox: arm_mhuv2: clean up loop in get_irq_chan_comb()
Browse files Browse the repository at this point in the history
Both the inner and outer loops in this code use the "i" iterator.
The inner loop should really use a different iterator.

It doesn't affect things in practice because the data comes from the
device tree.  The "protocol" and "windows" variables are going to be
zero.  That means we're always going to hit the "return &chans[channel];"
statement and we're not going to want to iterate through the outer
loop again.

Still it's worth fixing this for future use cases.

Fixes: 5a6338c ("mailbox: arm_mhuv2: Add driver")
Signed-off-by: Dan Carpenter <dan.carpenter@linaro.org>
Acked-by: Viresh Kumar <viresh.kumar@linaro.org>
Signed-off-by: Jassi Brar <jassisinghbrar@gmail.com>
  • Loading branch information
Dan Carpenter authored and Jassi Brar committed Nov 24, 2024
1 parent 98fc87f commit 192a16a
Showing 1 changed file with 4 additions and 4 deletions.
8 changes: 4 additions & 4 deletions drivers/mailbox/arm_mhuv2.c
Original file line number Diff line number Diff line change
Expand Up @@ -500,7 +500,7 @@ static const struct mhuv2_protocol_ops mhuv2_data_transfer_ops = {
static struct mbox_chan *get_irq_chan_comb(struct mhuv2 *mhu, u32 __iomem *reg)
{
struct mbox_chan *chans = mhu->mbox.chans;
int channel = 0, i, offset = 0, windows, protocol, ch_wn;
int channel = 0, i, j, offset = 0, windows, protocol, ch_wn;
u32 stat;

for (i = 0; i < MHUV2_CMB_INT_ST_REG_CNT; i++) {
Expand All @@ -510,9 +510,9 @@ static struct mbox_chan *get_irq_chan_comb(struct mhuv2 *mhu, u32 __iomem *reg)

ch_wn = i * MHUV2_STAT_BITS + __builtin_ctz(stat);

for (i = 0; i < mhu->length; i += 2) {
protocol = mhu->protocols[i];
windows = mhu->protocols[i + 1];
for (j = 0; j < mhu->length; j += 2) {
protocol = mhu->protocols[j];
windows = mhu->protocols[j + 1];

if (ch_wn >= offset + windows) {
if (protocol == DOORBELL)
Expand Down

0 comments on commit 192a16a

Please sign in to comment.