soc: qcom: socinfo: fix revision check in qcom_socinfo_probe()
authorManikanta Mylavarapu <quic_mmanikan@quicinc.com>
Wed, 16 Oct 2024 14:48:52 +0000 (20:18 +0530)
committerBjorn Andersson <andersson@kernel.org>
Thu, 24 Oct 2024 14:46:20 +0000 (09:46 -0500)
In success case, the revision holds a non-null pointer. The current
logic incorrectly returns an error for a non-null pointer, whereas
it should return an error for a null pointer.

The socinfo driver for IPQ9574 and IPQ5332 is currently broken,
resulting in the following error message
qcom-socinfo qcom-socinfo: probe with driver qcom-socinfo failed with
error -12

Add a null check for the revision to ensure it returns an error only in
failure case (null pointer).

Fixes: e694d2b5c58b ("soc: qcom: Add check devm_kasprintf() returned value")
Signed-off-by: Manikanta Mylavarapu <quic_mmanikan@quicinc.com>
Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Link: https://lore.kernel.org/r/20241016144852.2888679-1-quic_mmanikan@quicinc.com
Signed-off-by: Bjorn Andersson <andersson@kernel.org>
drivers/soc/qcom/socinfo.c

index e42d86d5f6f91867c941c0689d2f5a144ac0e8a1..c3b877832521bcc0845f63b35e44cee84aa8a893 100644 (file)
@@ -786,7 +786,7 @@ static int qcom_socinfo_probe(struct platform_device *pdev)
        qs->attr.revision = devm_kasprintf(&pdev->dev, GFP_KERNEL, "%u.%u",
                                           SOCINFO_MAJOR(le32_to_cpu(info->ver)),
                                           SOCINFO_MINOR(le32_to_cpu(info->ver)));
-       if (!qs->attr.soc_id || qs->attr.revision)
+       if (!qs->attr.soc_id || !qs->attr.revision)
                return -ENOMEM;
 
        if (offsetof(struct socinfo, serial_num) <= item_size) {