On Tue, Sep 2, 2025 at 3:06 PM Andy Shevchenko andriy.shevchenko@intel.com wrote:
On Tue, Sep 02, 2025 at 01:59:10PM +0200, Bartosz Golaszewski wrote:
From: Bartosz Golaszewski bartosz.golaszewski@linaro.org
While the API contract in docs doesn't specify it explicitly,
So, why not to amend the doc at the same time?
Because this series is already big as is. That would be another commit that can be separate.
the generic implementation of the get_function_name() callback from struct pinmux_ops - pinmux_generic_get_function_name() - can fail and return NULL. This is already checked in pinmux_check_ops() so add a similar check in pinmux_func_name_to_selector() instead of passing the returned pointer right down to strcmp() where the NULL can get dereferenced. This is normal operation when adding new pinfunctions.
Fixes?
This has always been like that.
Reported?
I mean, technically Mark Brown reported my previous patch failing but I don't think we do this if we're still within the same series just another iteration?
Closes?
Ditto.
...
while (selector < nfuncs) { const char *fname = ops->get_function_name(pctldev, selector);
if (!strcmp(function, fname))
if (fname && !strcmp(function, fname)) return selector;
I would slightly refactor this:
const char *fname; fname = ops->get_function_name(pctldev, selector); if (fname && !strcmp(function, fname)) return selector;
selector++;
You can do this in a subsequent patch, I prefer a smaller diff personally.
Bartosz