Skip to content

Commit

Permalink
of: dynamic: Refactor changeset action printing to common helpers
Browse files Browse the repository at this point in the history
Several places print the changeset action with node and property
details. Refactor these into a common printing helper. The complicating
factor is some prints are debug and some are errors. Solve this with a
bit of preprocessor magic.

Some cases printed the 'cset' which was the changeset entry pointer
rather than the whole changeset itself. The changeset entry is not all that
interesting and gets obfuscated by default anyways. So just drop it.

Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be>
Link: https://lore.kernel.org/r/20230801-dt-changeset-fixes-v3-3-5f0410e007dd@kernel.org
Signed-off-by: Rob Herring <robh@kernel.org>
  • Loading branch information
Rob Herring committed Aug 21, 2023
1 parent dfb9758 commit 27a02f2
Showing 1 changed file with 11 additions and 42 deletions.
53 changes: 11 additions & 42 deletions drivers/of/dynamic.c
Original file line number Diff line number Diff line change
Expand Up @@ -72,27 +72,21 @@ static const char *action_names[] = {
[OF_RECONFIG_UPDATE_PROPERTY] = "UPDATE_PROPERTY",
};

#define _do_print(func, prefix, action, node, prop, ...) ({ \
func("changeset: " prefix "%-15s %pOF%s%s\n", \
##__VA_ARGS__, action_names[action], node, \
prop ? ":" : "", prop ? prop->name : ""); \
})
#define of_changeset_action_err(...) _do_print(pr_err, __VA_ARGS__)
#define of_changeset_action_debug(...) _do_print(pr_debug, __VA_ARGS__)

int of_reconfig_notify(unsigned long action, struct of_reconfig_data *p)
{
int rc;
#ifdef DEBUG
struct of_reconfig_data *pr = p;

switch (action) {
case OF_RECONFIG_ATTACH_NODE:
case OF_RECONFIG_DETACH_NODE:
pr_debug("notify %-15s %pOF\n", action_names[action],
pr->dn);
break;
case OF_RECONFIG_ADD_PROPERTY:
case OF_RECONFIG_REMOVE_PROPERTY:
case OF_RECONFIG_UPDATE_PROPERTY:
pr_debug("notify %-15s %pOF:%s\n", action_names[action],
pr->dn, pr->prop->name);
break;
of_changeset_action_debug("notify: ", action, pr->dn, pr->prop);

}
#endif
rc = blocking_notifier_call_chain(&of_reconfig_chain, action, p);
return notifier_to_errno(rc);
}
Expand Down Expand Up @@ -503,30 +497,6 @@ static void __of_changeset_entry_destroy(struct of_changeset_entry *ce)
kfree(ce);
}

#ifdef DEBUG
static void __of_changeset_entry_dump(struct of_changeset_entry *ce)
{
switch (ce->action) {
case OF_RECONFIG_ADD_PROPERTY:
case OF_RECONFIG_REMOVE_PROPERTY:
case OF_RECONFIG_UPDATE_PROPERTY:
pr_debug("cset<%p> %-15s %pOF/%s\n", ce, action_names[ce->action],
ce->np, ce->prop->name);
break;
case OF_RECONFIG_ATTACH_NODE:
case OF_RECONFIG_DETACH_NODE:
pr_debug("cset<%p> %-15s %pOF\n", ce, action_names[ce->action],
ce->np);
break;
}
}
#else
static inline void __of_changeset_entry_dump(struct of_changeset_entry *ce)
{
/* empty */
}
#endif

static void __of_changeset_entry_invert(struct of_changeset_entry *ce,
struct of_changeset_entry *rce)
{
Expand Down Expand Up @@ -598,7 +568,7 @@ static int __of_changeset_entry_apply(struct of_changeset_entry *ce)
unsigned long flags;
int ret = 0;

__of_changeset_entry_dump(ce);
of_changeset_action_debug("apply: ", ce->action, ce->np, ce->prop);

raw_spin_lock_irqsave(&devtree_lock, flags);
switch (ce->action) {
Expand Down Expand Up @@ -642,8 +612,7 @@ static int __of_changeset_entry_apply(struct of_changeset_entry *ce)
raw_spin_unlock_irqrestore(&devtree_lock, flags);

if (ret) {
pr_err("changeset: apply failed: %-15s %pOF:%s\n",
action_names[ce->action], ce->np, ce->prop->name);
of_changeset_action_err("apply failed: ", ce->action, ce->np, ce->prop);
return ret;
}

Expand Down

0 comments on commit 27a02f2

Please sign in to comment.