On Thu, Jan 16, 2025 at 10:49:44PM +0000, David Laight wrote: > On Thu, 16 Jan 2025 17:20:19 +0000 > Colin Ian King <colin.i.king@xxxxxxxxx> wrote: > > > The left hand size of the ? operator is always true because of the addition > > of PCIE_STD_NUM_TLP_HEADERLOG and so dev->eetlp_prefix_max is always being > > returned and the 0 is never returned (dead code). Fix this by adding the > > required parentheses around the ternary operator. > > > > Fixes: 00048c2d5f11 ("PCI: Add TLP Prefix reading to pcie_read_tlp_log()") > > Signed-off-by: Colin Ian King <colin.i.king@xxxxxxxxx> > > --- > > drivers/pci/pcie/tlp.c | 4 ++-- > > 1 file changed, 2 insertions(+), 2 deletions(-) > > > > diff --git a/drivers/pci/pcie/tlp.c b/drivers/pci/pcie/tlp.c > > index 9b9e348fb1a0..0860b5da837f 100644 > > --- a/drivers/pci/pcie/tlp.c > > +++ b/drivers/pci/pcie/tlp.c > > @@ -22,8 +22,8 @@ > > unsigned int aer_tlp_log_len(struct pci_dev *dev, u32 aercc) > > { > > return PCIE_STD_NUM_TLP_HEADERLOG + > > - (aercc & PCI_ERR_CAP_PREFIX_LOG_PRESENT) ? > > - dev->eetlp_prefix_max : 0; > > + ((aercc & PCI_ERR_CAP_PREFIX_LOG_PRESENT) ? > > You can remove the extra set around the condition itself as well. > They are a good hint the writer doesn't know their operator > precedences :-) Please leave them as-is... I obsolutely do not remember the operator precedences between & and ? and I have to look it up every time I see it. regards, dan carpenter