Message ID | 20201102205712.23332-1-james.quinlan@broadcom.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | [v1] PCI: brcmstb: variable is missing proper initialization | expand |
On 11/2/2020 12:57 PM, Jim Quinlan wrote: > The variable 'tmp' is used multiple times in the brcm_pcie_setup() > function. One such usage did not initialize 'tmp' to the current value of > the target register. By luck the mistake does not currently affect > behavior; regardless 'tmp' is now initialized properly. > > Fixes: c0452137034b ("PCI: brcmstb: Add Broadcom STB PCIe host controller driver") > Suggested-by: Rafał Miłecki <zajec5@gmail.com> > Signed-off-by: Jim Quinlan <james.quinlan@broadcom.com> Acked-by: Florian Fainelli <f.fainelli@gmail.com>
On Mon, 2020-11-02 at 13:07 -0800, Florian Fainelli wrote: > > On 11/2/2020 12:57 PM, Jim Quinlan wrote: > > The variable 'tmp' is used multiple times in the brcm_pcie_setup() > > function. One such usage did not initialize 'tmp' to the current value of > > the target register. By luck the mistake does not currently affect > > behavior; regardless 'tmp' is now initialized properly. > > > > Fixes: c0452137034b ("PCI: brcmstb: Add Broadcom STB PCIe host controller driver") > > Suggested-by: Rafał Miłecki <zajec5@gmail.com> > > Signed-off-by: Jim Quinlan <james.quinlan@broadcom.com> Acked-by: Nicolas Saenz Julienne <nsaenzjulienne@suse.de>
On Mon, Nov 02, 2020 at 03:57:12PM -0500, Jim Quinlan wrote: > The variable 'tmp' is used multiple times in the brcm_pcie_setup() > function. One such usage did not initialize 'tmp' to the current value of > the target register. By luck the mistake does not currently affect > behavior; regardless 'tmp' is now initialized properly. This is so trivial that there's probably no reason to post this again, but if you post a v2 for some reason, please update the subject to match the convention ("PCI: brcmstb: Verb ..."), e.g., PCI: brcmstb: Initialize "tmp" before use The commit log does not say what the patch does, leaving it to the reader to infer it. Lorenzo will likely fix this up when he applies it. Incidental curiosity: where should I look to see what u32p_replace_bits() does? "git grep u32p_replace_bits" shows several calls, but no definitions. > Fixes: c0452137034b ("PCI: brcmstb: Add Broadcom STB PCIe host controller driver") > Suggested-by: Rafał Miłecki <zajec5@gmail.com> > Signed-off-by: Jim Quinlan <james.quinlan@broadcom.com> > --- > drivers/pci/controller/pcie-brcmstb.c | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/drivers/pci/controller/pcie-brcmstb.c b/drivers/pci/controller/pcie-brcmstb.c > index bea86899bd5d..9c3d2982248d 100644 > --- a/drivers/pci/controller/pcie-brcmstb.c > +++ b/drivers/pci/controller/pcie-brcmstb.c > @@ -893,6 +893,7 @@ static int brcm_pcie_setup(struct brcm_pcie *pcie) > burst = 0x2; /* 512 bytes */ > > /* Set SCB_MAX_BURST_SIZE, CFG_READ_UR_MODE, SCB_ACCESS_EN */ > + tmp = readl(base + PCIE_MISC_MISC_CTRL); > u32p_replace_bits(&tmp, 1, PCIE_MISC_MISC_CTRL_SCB_ACCESS_EN_MASK); > u32p_replace_bits(&tmp, 1, PCIE_MISC_MISC_CTRL_CFG_READ_UR_MODE_MASK); > u32p_replace_bits(&tmp, burst, PCIE_MISC_MISC_CTRL_MAX_BURST_SIZE_MASK); > -- > 2.17.1 >
On Tue, 2020-11-03 at 13:38 -0600, Bjorn Helgaas wrote: > On Mon, Nov 02, 2020 at 03:57:12PM -0500, Jim Quinlan wrote: > > The variable 'tmp' is used multiple times in the brcm_pcie_setup() > > function. One such usage did not initialize 'tmp' to the current value of > > the target register. By luck the mistake does not currently affect > > behavior; regardless 'tmp' is now initialized properly. > > This is so trivial that there's probably no reason to post this again, > but if you post a v2 for some reason, please update the subject to > match the convention ("PCI: brcmstb: Verb ..."), e.g., > > PCI: brcmstb: Initialize "tmp" before use > > The commit log does not say what the patch does, leaving it to the > reader to infer it. > > Lorenzo will likely fix this up when he applies it. > > Incidental curiosity: where should I look to see what > u32p_replace_bits() does? "git grep u32p_replace_bits" shows several > calls, but no definitions. It's a bunch if defines in 'include/linux/bitfield.h' Regards, Nicolas
On Tue, Nov 3, 2020 at 2:38 PM Bjorn Helgaas <helgaas@kernel.org> wrote: > > On Mon, Nov 02, 2020 at 03:57:12PM -0500, Jim Quinlan wrote: > > The variable 'tmp' is used multiple times in the brcm_pcie_setup() > > function. One such usage did not initialize 'tmp' to the current value of > > the target register. By luck the mistake does not currently affect > > behavior; regardless 'tmp' is now initialized properly. > > This is so trivial that there's probably no reason to post this again, > but if you post a v2 for some reason, please update the subject to > match the convention ("PCI: brcmstb: Verb ..."), e.g., > > PCI: brcmstb: Initialize "tmp" before use > > The commit log does not say what the patch does, leaving it to the > reader to infer it. Got it. Thanks, Jim Quinlan Broadcom STB > > > > > Lorenzo will likely fix this up when he applies it. > > Incidental curiosity: where should I look to see what > u32p_replace_bits() does? "git grep u32p_replace_bits" shows several > calls, but no definitions. > > > Fixes: c0452137034b ("PCI: brcmstb: Add Broadcom STB PCIe host controller driver") > > Suggested-by: Rafał Miłecki <zajec5@gmail.com> > > Signed-off-by: Jim Quinlan <james.quinlan@broadcom.com> > > --- > > drivers/pci/controller/pcie-brcmstb.c | 1 + > > 1 file changed, 1 insertion(+) > > > > diff --git a/drivers/pci/controller/pcie-brcmstb.c b/drivers/pci/controller/pcie-brcmstb.c > > index bea86899bd5d..9c3d2982248d 100644 > > --- a/drivers/pci/controller/pcie-brcmstb.c > > +++ b/drivers/pci/controller/pcie-brcmstb.c > > @@ -893,6 +893,7 @@ static int brcm_pcie_setup(struct brcm_pcie *pcie) > > burst = 0x2; /* 512 bytes */ > > > > /* Set SCB_MAX_BURST_SIZE, CFG_READ_UR_MODE, SCB_ACCESS_EN */ > > + tmp = readl(base + PCIE_MISC_MISC_CTRL); > > u32p_replace_bits(&tmp, 1, PCIE_MISC_MISC_CTRL_SCB_ACCESS_EN_MASK); > > u32p_replace_bits(&tmp, 1, PCIE_MISC_MISC_CTRL_CFG_READ_UR_MODE_MASK); > > u32p_replace_bits(&tmp, burst, PCIE_MISC_MISC_CTRL_MAX_BURST_SIZE_MASK); > > -- > > 2.17.1 > > > >
On Mon, 2 Nov 2020 15:57:12 -0500, Jim Quinlan wrote: > The variable 'tmp' is used multiple times in the brcm_pcie_setup() > function. One such usage did not initialize 'tmp' to the current value of > the target register. By luck the mistake does not currently affect > behavior; regardless 'tmp' is now initialized properly. Applied to pci/brcmstb, thanks! [1/1] PCI: brcmstb: Initialize "tmp" before use https://git.kernel.org/lpieralisi/pci/c/ddaff0af65 Thanks, Lorenzo
diff --git a/drivers/pci/controller/pcie-brcmstb.c b/drivers/pci/controller/pcie-brcmstb.c index bea86899bd5d..9c3d2982248d 100644 --- a/drivers/pci/controller/pcie-brcmstb.c +++ b/drivers/pci/controller/pcie-brcmstb.c @@ -893,6 +893,7 @@ static int brcm_pcie_setup(struct brcm_pcie *pcie) burst = 0x2; /* 512 bytes */ /* Set SCB_MAX_BURST_SIZE, CFG_READ_UR_MODE, SCB_ACCESS_EN */ + tmp = readl(base + PCIE_MISC_MISC_CTRL); u32p_replace_bits(&tmp, 1, PCIE_MISC_MISC_CTRL_SCB_ACCESS_EN_MASK); u32p_replace_bits(&tmp, 1, PCIE_MISC_MISC_CTRL_CFG_READ_UR_MODE_MASK); u32p_replace_bits(&tmp, burst, PCIE_MISC_MISC_CTRL_MAX_BURST_SIZE_MASK);
The variable 'tmp' is used multiple times in the brcm_pcie_setup() function. One such usage did not initialize 'tmp' to the current value of the target register. By luck the mistake does not currently affect behavior; regardless 'tmp' is now initialized properly. Fixes: c0452137034b ("PCI: brcmstb: Add Broadcom STB PCIe host controller driver") Suggested-by: Rafał Miłecki <zajec5@gmail.com> Signed-off-by: Jim Quinlan <james.quinlan@broadcom.com> --- drivers/pci/controller/pcie-brcmstb.c | 1 + 1 file changed, 1 insertion(+)