lkml.org 
[lkml]   [2022]   [Jun]   [7]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 5.18 572/879] hwrng: cn10k - Make check_rng_health() return an error code
    Date
    From: Vladis Dronov <vdronov@redhat.com>

    [ Upstream commit 32547a6aedda132907fcd15cdc8271429609f216 ]

    Currently check_rng_health() returns zero unconditionally.
    Make it to output an error code and return it.

    Fixes: 38e9791a0209 ("hwrng: cn10k - Add random number generator support")
    Signed-off-by: Vladis Dronov <vdronov@redhat.com>
    Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    drivers/char/hw_random/cn10k-rng.c | 15 +++++++--------
    1 file changed, 7 insertions(+), 8 deletions(-)

    diff --git a/drivers/char/hw_random/cn10k-rng.c b/drivers/char/hw_random/cn10k-rng.c
    index dd226630b67d..a01e9307737c 100644
    --- a/drivers/char/hw_random/cn10k-rng.c
    +++ b/drivers/char/hw_random/cn10k-rng.c
    @@ -31,26 +31,23 @@ struct cn10k_rng {

    #define PLAT_OCTEONTX_RESET_RNG_EBG_HEALTH_STATE 0xc2000b0f

    -static int reset_rng_health_state(struct cn10k_rng *rng)
    +static unsigned long reset_rng_health_state(struct cn10k_rng *rng)
    {
    struct arm_smccc_res res;

    /* Send SMC service call to reset EBG health state */
    arm_smccc_smc(PLAT_OCTEONTX_RESET_RNG_EBG_HEALTH_STATE, 0, 0, 0, 0, 0, 0, 0, &res);
    - if (res.a0 != 0UL)
    - return -EIO;
    -
    - return 0;
    + return res.a0;
    }

    static int check_rng_health(struct cn10k_rng *rng)
    {
    u64 status;
    - int err;
    + unsigned long err;

    /* Skip checking health */
    if (!rng->reg_base)
    - return 0;
    + return -ENODEV;

    status = readq(rng->reg_base + RNM_PF_EBG_HEALTH);
    if (status & BIT_ULL(20)) {
    @@ -58,7 +55,9 @@ static int check_rng_health(struct cn10k_rng *rng)
    if (err) {
    dev_err(&rng->pdev->dev, "HWRNG: Health test failed (status=%llx)\n",
    status);
    - dev_err(&rng->pdev->dev, "HWRNG: error during reset\n");
    + dev_err(&rng->pdev->dev, "HWRNG: error during reset (error=%lx)\n",
    + err);
    + return -EIO;
    }
    }
    return 0;
    --
    2.35.1


    \
     
     \ /
      Last update: 2022-06-08 03:39    [W:2.832 / U:0.264 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site