From bfaecf465a058b167abc7c0dfad985f167ff3af1 Mon Sep 17 00:00:00 2001 From: qinyu Date: Thu, 23 Feb 2023 16:10:47 +0800 Subject: [PATCH 1/3] power: supply: fix null pointer check order in __power_supply_register There is an null pointer check order issue here: if we have to check !desc and !desc->name anyway, check it before dereferencing it in pr_warn(). Signed-off-by: qinyu Signed-off-by: Sebastian Reichel --- drivers/power/supply/power_supply_core.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/power/supply/power_supply_core.c b/drivers/power/supply/power_supply_core.c index cc5b2e22b42a..f3d7c1da299f 100644 --- a/drivers/power/supply/power_supply_core.c +++ b/drivers/power/supply/power_supply_core.c @@ -1207,13 +1207,13 @@ __power_supply_register(struct device *parent, struct power_supply *psy; int rc; + if (!desc || !desc->name || !desc->properties || !desc->num_properties) + return ERR_PTR(-EINVAL); + if (!parent) pr_warn("%s: Expected proper parent device for '%s'\n", __func__, desc->name); - if (!desc || !desc->name || !desc->properties || !desc->num_properties) - return ERR_PTR(-EINVAL); - if (psy_has_property(desc, POWER_SUPPLY_PROP_USB_TYPE) && (!desc->usb_types || !desc->num_usb_types)) return ERR_PTR(-EINVAL); From f0cf05759497dbc90303adcbdf3d13a54bdaf97b Mon Sep 17 00:00:00 2001 From: Bastien Nocera Date: Mon, 20 Feb 2023 14:10:18 +0100 Subject: [PATCH 2/3] ABI: testing: sysfs-class-power: Document absence of "present" property Document how the absence of the "present" property in the sysfs power_supply class should be handled. Link: https://gitlab.freedesktop.org/upower/upower/-/merge_requests/173 Cc: Mario Limonciello Signed-off-by: Bastien Nocera Signed-off-by: Sebastian Reichel --- Documentation/ABI/testing/sysfs-class-power | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Documentation/ABI/testing/sysfs-class-power b/Documentation/ABI/testing/sysfs-class-power index e434fc523291..7c81f0a25a48 100644 --- a/Documentation/ABI/testing/sysfs-class-power +++ b/Documentation/ABI/testing/sysfs-class-power @@ -437,7 +437,8 @@ What: /sys/class/power_supply//present Date: May 2007 Contact: linux-pm@vger.kernel.org Description: - Reports whether a battery is present or not in the system. + Reports whether a battery is present or not in the system. If the + property does not exist, the battery is considered to be present. Access: Read From 13af134bdc6a9dacec4687e57b2ea8d3e08ff04f Mon Sep 17 00:00:00 2001 From: ChiaEn Wu Date: Fri, 17 Feb 2023 17:55:55 +0800 Subject: [PATCH 3/3] dt-bindings: power: supply: Revise Richtek RT9467 compatible name Revise RT9467 compatible name from "richtek,rt9467-charger" to "richtek,rt9467" because it has to match the "compatible name" in the source code. Fixes: e1b4620fb503 ("dt-bindings: power: supply: Add Richtek RT9467 battery charger") Reported-by: Rob Herring Signed-off-by: ChiaEn Wu Reviewed-by: Krzysztof Kozlowski Signed-off-by: Sebastian Reichel --- .../{richtek,rt9467-charger.yaml => richtek,rt9467.yaml} | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) rename Documentation/devicetree/bindings/power/supply/{richtek,rt9467-charger.yaml => richtek,rt9467.yaml} (92%) diff --git a/Documentation/devicetree/bindings/power/supply/richtek,rt9467-charger.yaml b/Documentation/devicetree/bindings/power/supply/richtek,rt9467.yaml similarity index 92% rename from Documentation/devicetree/bindings/power/supply/richtek,rt9467-charger.yaml rename to Documentation/devicetree/bindings/power/supply/richtek,rt9467.yaml index 92c570643d2c..3723717dc1f6 100644 --- a/Documentation/devicetree/bindings/power/supply/richtek,rt9467-charger.yaml +++ b/Documentation/devicetree/bindings/power/supply/richtek,rt9467.yaml @@ -1,7 +1,7 @@ # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) %YAML 1.2 --- -$id: http://devicetree.org/schemas/power/supply/richtek,rt9467-charger.yaml# +$id: http://devicetree.org/schemas/power/supply/richtek,rt9467.yaml# $schema: http://devicetree.org/meta-schemas/core.yaml# title: Richtek RT9467 Switching Battery Charger with Power Path Management @@ -25,7 +25,7 @@ description: | properties: compatible: - const: richtek,rt9467-charger + const: richtek,rt9467 reg: maxItems: 1 @@ -65,7 +65,7 @@ examples: #size-cells = <0>; charger@5b { - compatible = "richtek,rt9467-charger"; + compatible = "richtek,rt9467"; reg = <0x5b>; wakeup-source; interrupts-extended = <&gpio_intc 32 IRQ_TYPE_LEVEL_LOW>;