* [frank-w-bpi-r2-4.14:7.2-main 214/214] drivers/net/pcs/pcs-mtk-lynxi.c:454:1-6: WARNING: invalid free of devm_ allocated data
@ 2026-09-26 0:06 kernel test robot
0 siblings, 0 replies; only message in thread
From: kernel test robot @ 2026-09-26 0:06 UTC (permalink / raw)
To: Frank Wunderlich; +Cc: oe-kbuild-all
tree: https://github.com/frank-w/BPI-R2-4.14 7.2-main
head: 27e8d41a42f73cb2b271df0e897e25224889f6d0
commit: 775a0c2a4a90ff1247809111cb88bb66c4ff8856 [214/214] net: pcs: pcs-mtk-lynxi: add platform driver for MT7988
config: sparc64-randconfig-r2104-20260925 (https://download.01.org/0day-ci/archive/20260926/202609260119.CE0oMb9X-lkp@intel.com/config)
compiler: sparc64-linux-gcc (GCC) 15.2.0
If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202609260119.CE0oMb9X-lkp@intel.com/
cocci warnings: (new ones prefixed by >>)
>> drivers/net/pcs/pcs-mtk-lynxi.c:454:1-6: WARNING: invalid free of devm_ allocated data
--
>> drivers/net/pcs/pcs-mtk-lynxi.c:421:2-3: Unneeded semicolon
vim +454 drivers/net/pcs/pcs-mtk-lynxi.c
4765a9722e0976 Daniel Golle 2023-03-19 383
775a0c2a4a90ff Daniel Golle 2023-12-12 384 static struct phylink_pcs *mtk_pcs_lynxi_init(struct device *dev,
bde1ae2d52ab35 Vladimir Oltean 2026-01-19 385 struct fwnode_handle *fwnode,
775a0c2a4a90ff Daniel Golle 2023-12-12 386 struct regmap *regmap, u32 ana_rgc3,
775a0c2a4a90ff Daniel Golle 2023-12-12 387 struct mtk_pcs_lynxi *prealloc)
4765a9722e0976 Daniel Golle 2023-03-19 388 {
4765a9722e0976 Daniel Golle 2023-03-19 389 struct mtk_pcs_lynxi *mpcs;
4765a9722e0976 Daniel Golle 2023-03-19 390 u32 id, ver;
4765a9722e0976 Daniel Golle 2023-03-19 391 int ret;
4765a9722e0976 Daniel Golle 2023-03-19 392
4765a9722e0976 Daniel Golle 2023-03-19 393 ret = regmap_read(regmap, SGMSYS_PCS_DEVICE_ID, &id);
4765a9722e0976 Daniel Golle 2023-03-19 394 if (ret < 0)
775a0c2a4a90ff Daniel Golle 2023-12-12 395 return ERR_PTR(ret);
4765a9722e0976 Daniel Golle 2023-03-19 396
4765a9722e0976 Daniel Golle 2023-03-19 397 if (id != SGMII_LYNXI_DEV_ID) {
4765a9722e0976 Daniel Golle 2023-03-19 398 dev_err(dev, "unknown PCS device id %08x\n", id);
775a0c2a4a90ff Daniel Golle 2023-12-12 399 return ERR_PTR(-ENODEV);
4765a9722e0976 Daniel Golle 2023-03-19 400 }
4765a9722e0976 Daniel Golle 2023-03-19 401
4765a9722e0976 Daniel Golle 2023-03-19 402 ret = regmap_read(regmap, SGMSYS_PCS_SCRATCH, &ver);
4765a9722e0976 Daniel Golle 2023-03-19 403 if (ret < 0)
775a0c2a4a90ff Daniel Golle 2023-12-12 404 return ERR_PTR(ret);
4765a9722e0976 Daniel Golle 2023-03-19 405
4765a9722e0976 Daniel Golle 2023-03-19 406 ver = FIELD_GET(SGMII_DEV_VERSION, ver);
4765a9722e0976 Daniel Golle 2023-03-19 407 if (ver != 0x1) {
4765a9722e0976 Daniel Golle 2023-03-19 408 dev_err(dev, "unknown PCS device version %04x\n", ver);
775a0c2a4a90ff Daniel Golle 2023-12-12 409 return ERR_PTR(-ENODEV);
4765a9722e0976 Daniel Golle 2023-03-19 410 }
4765a9722e0976 Daniel Golle 2023-03-19 411
4765a9722e0976 Daniel Golle 2023-03-19 412 dev_dbg(dev, "MediaTek LynxI SGMII PCS (id 0x%08x, ver 0x%04x)\n", id,
4765a9722e0976 Daniel Golle 2023-03-19 413 ver);
4765a9722e0976 Daniel Golle 2023-03-19 414
775a0c2a4a90ff Daniel Golle 2023-12-12 415 if (prealloc) {
775a0c2a4a90ff Daniel Golle 2023-12-12 416 mpcs = prealloc;
775a0c2a4a90ff Daniel Golle 2023-12-12 417 } else {
775a0c2a4a90ff Daniel Golle 2023-12-12 418 mpcs = kzalloc(sizeof(*mpcs), GFP_KERNEL);
4765a9722e0976 Daniel Golle 2023-03-19 419 if (!mpcs)
775a0c2a4a90ff Daniel Golle 2023-12-12 420 return ERR_PTR(-ENOMEM);
775a0c2a4a90ff Daniel Golle 2023-12-12 @421 };
4765a9722e0976 Daniel Golle 2023-03-19 422
4765a9722e0976 Daniel Golle 2023-03-19 423 mpcs->ana_rgc3 = ana_rgc3;
4765a9722e0976 Daniel Golle 2023-03-19 424 mpcs->regmap = regmap;
4765a9722e0976 Daniel Golle 2023-03-19 425 mpcs->pcs.ops = &mtk_pcs_lynxi_ops;
4765a9722e0976 Daniel Golle 2023-03-19 426 mpcs->pcs.poll = true;
4765a9722e0976 Daniel Golle 2023-03-19 427 mpcs->interface = PHY_INTERFACE_MODE_NA;
bde1ae2d52ab35 Vladimir Oltean 2026-01-19 428 mpcs->fwnode = fwnode_handle_get(fwnode);
4765a9722e0976 Daniel Golle 2023-03-19 429
b87d4ee16bb4f6 Russell King (Oracle 2025-01-03 430) __set_bit(PHY_INTERFACE_MODE_SGMII, mpcs->pcs.supported_interfaces);
b87d4ee16bb4f6 Russell King (Oracle 2025-01-03 431) __set_bit(PHY_INTERFACE_MODE_1000BASEX, mpcs->pcs.supported_interfaces);
b87d4ee16bb4f6 Russell King (Oracle 2025-01-03 432) __set_bit(PHY_INTERFACE_MODE_2500BASEX, mpcs->pcs.supported_interfaces);
b87d4ee16bb4f6 Russell King (Oracle 2025-01-03 433)
4765a9722e0976 Daniel Golle 2023-03-19 434 return &mpcs->pcs;
775a0c2a4a90ff Daniel Golle 2023-12-12 435 };
775a0c2a4a90ff Daniel Golle 2023-12-12 436
775a0c2a4a90ff Daniel Golle 2023-12-12 437 struct phylink_pcs *mtk_pcs_lynxi_create(struct device *dev,
775a0c2a4a90ff Daniel Golle 2023-12-12 438 struct fwnode_handle *fwnode,
775a0c2a4a90ff Daniel Golle 2023-12-12 439 struct regmap *regmap, u32 ana_rgc3)
775a0c2a4a90ff Daniel Golle 2023-12-12 440 {
775a0c2a4a90ff Daniel Golle 2023-12-12 441 return mtk_pcs_lynxi_init(dev, fwnode, regmap, ana_rgc3, NULL);
4765a9722e0976 Daniel Golle 2023-03-19 442 }
4765a9722e0976 Daniel Golle 2023-03-19 443 EXPORT_SYMBOL(mtk_pcs_lynxi_create);
4765a9722e0976 Daniel Golle 2023-03-19 444
4765a9722e0976 Daniel Golle 2023-03-19 445 void mtk_pcs_lynxi_destroy(struct phylink_pcs *pcs)
4765a9722e0976 Daniel Golle 2023-03-19 446 {
bde1ae2d52ab35 Vladimir Oltean 2026-01-19 447 struct mtk_pcs_lynxi *mpcs;
bde1ae2d52ab35 Vladimir Oltean 2026-01-19 448
4765a9722e0976 Daniel Golle 2023-03-19 449 if (!pcs)
4765a9722e0976 Daniel Golle 2023-03-19 450 return;
4765a9722e0976 Daniel Golle 2023-03-19 451
bde1ae2d52ab35 Vladimir Oltean 2026-01-19 452 mpcs = pcs_to_mtk_pcs_lynxi(pcs);
bde1ae2d52ab35 Vladimir Oltean 2026-01-19 453 fwnode_handle_put(mpcs->fwnode);
bde1ae2d52ab35 Vladimir Oltean 2026-01-19 @454 kfree(mpcs);
4765a9722e0976 Daniel Golle 2023-03-19 455 }
4765a9722e0976 Daniel Golle 2023-03-19 456 EXPORT_SYMBOL(mtk_pcs_lynxi_destroy);
4765a9722e0976 Daniel Golle 2023-03-19 457
:::::: The code at line 454 was first introduced by commit
:::::: bde1ae2d52ab3599e1c7ca68a90af8407d20f91d net: pcs: pcs-mtk-lynxi: pass SGMIISYS OF node to PCS
:::::: TO: Vladimir Oltean <vladimir.oltean@nxp.com>
:::::: CC: Jakub Kicinski <kuba@kernel.org>
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2026-09-26 0:07 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-09-26 0:06 [frank-w-bpi-r2-4.14:7.2-main 214/214] drivers/net/pcs/pcs-mtk-lynxi.c:454:1-6: WARNING: invalid free of devm_ allocated data kernel test robot
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.