Re: [bug report] phy: apple: Add Apple Type-C PHY
From: Sven Peter <sven@kernel.org>
Date: 2026-02-06 21:48:55
Also in:
asahi, linux-phy, lkml
On 06.02.26 22:47, Janne Grunau wrote:
On Fri, Feb 06, 2026 at 04:40:47PM +0300, Dan Carpenter wrote:quoted
[ Smatch checking is paused while we raise funding. #SadFace https://lore.kernel.org/all/aTaiGSbWZ9DJaGo7@stanley.mountain/ (local) -dan ]This is unfortunate, there have been useful bug reports.quoted
Commit 8e98ca1e74db ("phy: apple: Add Apple Type-C PHY") from Dec 14, 2025 (linux-next), leads to the following Smatch static checker warning: drivers/phy/apple/atc.c:2209 atcphy_map_resources() warn: 'resources[i]->addr' isn't an ERR_PTR drivers/phy/apple/atc.c 2191 static int atcphy_map_resources(struct platform_device *pdev, struct apple_atcphy *atcphy) 2192 { 2193 struct { 2194 const char *name; 2195 void __iomem **addr; 2196 struct resource **res; 2197 } resources[] = { 2198 { "core", &atcphy->regs.core, &atcphy->res.core }, 2199 { "lpdptx", &atcphy->regs.lpdptx, NULL }, 2200 { "axi2af", &atcphy->regs.axi2af, &atcphy->res.axi2af }, 2201 { "usb2phy", &atcphy->regs.usb2phy, NULL }, 2202 { "pipehandler", &atcphy->regs.pipehandler, NULL }, 2203 }; 2204 struct resource *res; 2205 2206 for (int i = 0; i < ARRAY_SIZE(resources); i++) { 2207 res = platform_get_resource_byname(pdev, IORESOURCE_MEM, resources[i].name); 2208 *resources[i].addr = devm_ioremap_resource(&pdev->dev, res); --> 2209 if (IS_ERR(resources[i].addr)) This is checking the wrong variable. The * is missing. if (IS_ERR(*resources[i].addr)) {This issue was identified by testing and is fixed in next by commit 7d55b44e2be1 ("phy: apple: atc: Actually check return value of devm_apple_tunable_parse"). https://lore.kernel.org/all/20260104-atcphy-tunable-fix-v2-1-84e5c2a57aaa@kernel.org/ (local)
I think I actually messed this up *twice*! Once for the tunables and once again for the resources here :( Sven