Re: [patch] PCI: dwc: uninitialized variable in dw_handle_msi_irq()

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tue, Mar 07, 2017 at 01:09:55PM -0600, Bjorn Helgaas wrote:
> On Wed, Feb 22, 2017 at 03:08:07PM -0800, Joao Pinto wrote:
> > Hi Dan,
> > 
> > Às 3:26 PM de 2/17/2017, Dan Carpenter escreveu:
> > > The bug is that "val" is unsigned long but we only initialize 32 bits
> > > of it.  Then we test "if (val)" and that might be true not because we
> > > set the bits but because some were never initialized.
> > > 
> > > Fixes: f342d940ee0e ("PCI: exynos: Add support for MSI")
> > > Signed-off-by: Dan Carpenter <dan.carpenter@xxxxxxxxxx>
> > > ---
> > > Static analysis.  Not tested.
> > 
> > What you are statiting makes perfect sense, since the register is indeed 32 bits
> > and can have undesirable behavior in 64-bit systems for example.
> > We have more examples like this for MSI related operations in pcie-designware.
> > Could you please change them as well just?
> > 
> > For example, the irq variable declaration is also not consistent as you can see
> > in these examples:
> > 
> >  static void dw_msi_setup_msg(struct pcie_port *pp, unsigned int irq, u32 pos)
> > 
> >  static int dw_pcie_msi_map(struct irq_domain *domain, unsigned int irq,
> >                            irq_hw_number_t hwirq)
> > 
> >  static void dw_pcie_msi_clear_irq(struct pcie_port *pp, int irq)
> > 
> >  static void dw_pcie_msi_set_irq(struct pcie_port *pp, int irq)
> 
> Where are we with this?  It sounds like there's a real problem here,
> and Dan's original patch fixes one case of it.  But if there are other
> similar cases, we should fix them all at once.
> 
> Since this doesn't sound like an urgent bug fix (I don't see user
> problem reports), I guess I'll wait for an updated patch?

Oh...  Hm.  I misread.  I thought that Joao was going to send a patch.

Looking at it more closely now, I think my patch is sufficient.  Perhaps
I have misunderstood something but I don't see any other bugs here
beyond the one I fixed.

regards,
dan carpenter





[Index of Archives]     [DMA Engine]     [Linux Coverity]     [Linux USB]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Greybus]

  Powered by Linux