Date: Fri, 4 Oct 2013 10:05:18 -0600 From: Scott Long <scott4long@yahoo.com> To: sbruno@freebsd.org Cc: "FreeBSD-scsi@freebsd.org" <FreeBSD-scsi@freebsd.org> Subject: Re: pci_alloc_msi is always called, is this bad? Message-ID: <94C7BB39-A287-44D4-9992-E8DAE83CE6D4@yahoo.com> In-Reply-To: <1380902209.2621.11.camel@localhost> References: <CAFMmRNzWwxe=YVJcC7Lkjqru5eugciwzEQHjgE-Bh-ctOykVNQ@mail.gmail.com> <20131003194704.GG41229@kib.kiev.ua> <1380902209.2621.11.camel@localhost>
next in thread | previous in thread | raw e-mail | index | archive | help
It used to be that gcc would generate code that would conditionally = execute the second clause only if the first clause were true. If that's = not longer the case (with gcc and/or clang), then I bet that UDF will = break due to this: /* * Check to see if the fid is fragmented. The first test * ensures that we don't wander off the end of the buffer * looking for the l_iu and l_fi fields. */ if (ds->off + UDF_FID_SIZE > ds->size || ds->off + le16toh(fid->l_iu) + fid->l_fi + UDF_FID_SIZE > = ds->size){ =20 Scott On Oct 4, 2013, at 9:56 AM, Sean Bruno <sean_bruno@yahoo.com> wrote: > I was looking at the recent thread on -stable about mfi(4) and I noted > that it appears, if I'm not mistaken, mfi_pci.c::pci_alloc_msi() is > *always* invoked regardless of the mfi_msi tuneable. We just ignore = the > allocated MSI by not setting sc->mfi_irq_rid. Is that harmful? >=20 > = ------------------------------------------------------------------------ > 240 /* Allocate IRQ resource. */ > 241 sc->mfi_irq_rid =3D 0; > 242 count =3D 1; > 243 if (mfi_msi && pci_alloc_msi(sc->mfi_dev, &count) =3D=3D = 0) { > 244 device_printf(sc->mfi_dev, "Using MSI\n"); > 245 sc->mfi_irq_rid =3D 1; > 246 } >=20 >=20 > = ------------------------------------------------------------------------ > I would have thought that this would be more correct, avoid calling > pci_alloc_msi() if mfi_msi isn't set in the first place. > = ------------------------------------------------------------------------ > sc->mfi_irq_ird =3D 0; > count =3D 1; > ret =3D 0 > if(mfi_msi) > ret =3D pci_alloc_msi(sc->mfi_dev, &count); >=20 > if (!ret) { > device_printf(sc->mfi_dev, "Using MSI\n"); > sc->mfi_irq_rid =3D 1; > } > = ------------------------------------------------------------------------ >=20 > Sean
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?94C7BB39-A287-44D4-9992-E8DAE83CE6D4>