From mboxrd@z Thu Jan 1 00:00:00 1970 From: Dan Carpenter Date: Sun, 13 May 2012 17:12:14 +0000 Subject: Re: [patch] iommu: off by one in dmar_get_fault_reason() Message-Id: <20120513171214.GD16984@mwanda> List-Id: References: <20120512105935.GA19472@elgon.mountain> <4FAE595A.6010605@bfs.de> In-Reply-To: <4FAE595A.6010605@bfs.de> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: walter harms Cc: Suresh Siddha , Ingo Molnar , Joerg Roedel , Thomas Gleixner , Youquan Song , linux-kernel@vger.kernel.org, kernel-janitors@vger.kernel.org On Sat, May 12, 2012 at 02:36:42PM +0200, walter harms wrote: > > > Am 12.05.2012 12:59, schrieb Dan Carpenter: > > fault_reason = ARRAY_SIZE(irq_remap_fault_reasons) + 0x20 - 0x20 is one > > past the end of the array. > > > > Signed-off-by: Dan Carpenter > > > > diff --git a/drivers/iommu/dmar.c b/drivers/iommu/dmar.c > > index 5ef65cf..9390f3f 100644 > > --- a/drivers/iommu/dmar.c > > +++ b/drivers/iommu/dmar.c > > @@ -1057,7 +1057,7 @@ static const char *irq_remap_fault_reasons[] > > > > const char *dmar_get_fault_reason(u8 fault_reason, int *fault_type) > > { > > - if (fault_reason >= 0x20 && (fault_reason <= 0x20 + > > + if (fault_reason >= 0x20 && (fault_reason < 0x20 + > > ARRAY_SIZE(irq_remap_fault_reasons))) { > > *fault_type = INTR_REMAP; > > return irq_remap_fault_reasons[fault_reason - 0x20]; > > perhaps this is more readable: > if (fault_reason >= 0x20 && (fault_reason - 0x20 < ARRAY_SIZE(irq_remap_fault_reasons))) > Yeah. Probably you're way is nicer. regards, dan carpenter