OSDN Git Service

bcma: fix incorrect update of BCMA_CORE_PCI_MDIO_DATA
authorColin Ian King <colin.king@canonical.com>
Tue, 27 Aug 2019 08:16:20 +0000 (09:16 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 29 Jan 2020 09:21:48 +0000 (10:21 +0100)
[ Upstream commit 420c20be08a4597404d272ae9793b642401146eb ]

An earlier commit re-worked the setting of the bitmask and is now
assigning v with some bit flags rather than bitwise or-ing them
into v, consequently the earlier bit-settings of v are being lost.
Fix this by replacing an assignment with the bitwise or instead.

Addresses-Coverity: ("Unused value")
Fixes: 2be25cac8402 ("bcma: add constants for PCI and use them")
Signed-off-by: Colin Ian King <colin.king@canonical.com>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/bcma/driver_pci.c

index f499a46..12b2cc9 100644 (file)
@@ -78,7 +78,7 @@ static u16 bcma_pcie_mdio_read(struct bcma_drv_pci *pc, u16 device, u8 address)
                v |= (address << BCMA_CORE_PCI_MDIODATA_REGADDR_SHF_OLD);
        }
 
-       v = BCMA_CORE_PCI_MDIODATA_START;
+       v |= BCMA_CORE_PCI_MDIODATA_START;
        v |= BCMA_CORE_PCI_MDIODATA_READ;
        v |= BCMA_CORE_PCI_MDIODATA_TA;
 
@@ -121,7 +121,7 @@ static void bcma_pcie_mdio_write(struct bcma_drv_pci *pc, u16 device,
                v |= (address << BCMA_CORE_PCI_MDIODATA_REGADDR_SHF_OLD);
        }
 
-       v = BCMA_CORE_PCI_MDIODATA_START;
+       v |= BCMA_CORE_PCI_MDIODATA_START;
        v |= BCMA_CORE_PCI_MDIODATA_WRITE;
        v |= BCMA_CORE_PCI_MDIODATA_TA;
        v |= data;