lkml.org 
[lkml]   [2020]   [Aug]   [20]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 4.9 101/212] iwlegacy: Check the return value of pcie_capability_read_*()
    Date
    From: Bolarinwa Olayemi Saheed <refactormyself@gmail.com>

    [ Upstream commit 9018fd7f2a73e9b290f48a56b421558fa31e8b75 ]

    On failure pcie_capability_read_dword() sets it's last parameter, val
    to 0. However, with Patch 14/14, it is possible that val is set to ~0 on
    failure. This would introduce a bug because (x & x) == (~0 & x).

    This bug can be avoided without changing the function's behaviour if the
    return value of pcie_capability_read_dword is checked to confirm success.

    Check the return value of pcie_capability_read_dword() to ensure success.

    Suggested-by: Bjorn Helgaas <bjorn@helgaas.com>
    Signed-off-by: Bolarinwa Olayemi Saheed <refactormyself@gmail.com>
    Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
    Link: https://lore.kernel.org/r/20200713175529.29715-3-refactormyself@gmail.com
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    drivers/net/wireless/intel/iwlegacy/common.c | 4 ++--
    1 file changed, 2 insertions(+), 2 deletions(-)

    diff --git a/drivers/net/wireless/intel/iwlegacy/common.c b/drivers/net/wireless/intel/iwlegacy/common.c
    index db2373fe8ac32..55573d090503b 100644
    --- a/drivers/net/wireless/intel/iwlegacy/common.c
    +++ b/drivers/net/wireless/intel/iwlegacy/common.c
    @@ -4302,8 +4302,8 @@ il_apm_init(struct il_priv *il)
    * power savings, even without L1.
    */
    if (il->cfg->set_l0s) {
    - pcie_capability_read_word(il->pci_dev, PCI_EXP_LNKCTL, &lctl);
    - if (lctl & PCI_EXP_LNKCTL_ASPM_L1) {
    + ret = pcie_capability_read_word(il->pci_dev, PCI_EXP_LNKCTL, &lctl);
    + if (!ret && (lctl & PCI_EXP_LNKCTL_ASPM_L1)) {
    /* L1-ASPM enabled; disable(!) L0S */
    il_set_bit(il, CSR_GIO_REG,
    CSR_GIO_REG_VAL_L0S_ENABLED);
    --
    2.25.1


    \
     
     \ /
      Last update: 2020-08-20 12:04    [W:4.127 / U:0.064 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site