Message ID | 20230307194039.8825-1-jura@vukad.in (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | kconfig: Update config changed flag before calling callback | expand |
Hi-- On 3/7/23 11:40, Jurica Vukadin wrote: > Prior to commit 5ee546594025 ("kconfig: change sym_change_count to a > boolean flag"), the conf_updated flag was set to the new value *before* > calling the callback. xconfig's save action depends on this behaviour, > because xconfig calls conf_get_changed() directly from the callback and > now sees the old value, thus never enabling the save button or the > shortcut. > > Restore the previous behaviour. > > Fixes: 5ee546594025 ("kconfig: change sym_change_count to a boolean flag") > Signed-off-by: Jurica Vukadin <jura@vukad.in> Thanks! I was wondering what had happened to that, but I never got around to bisecting it. Now the Disk icon is live instead of being greyed out after a change is made. Acked-by: Randy Dunlap <rdunlap@infradead.org> Tested-by: Randy Dunlap <rdunlap@infradead.org> > --- > scripts/kconfig/confdata.c | 6 ++++-- > 1 file changed, 4 insertions(+), 2 deletions(-) > > diff --git a/scripts/kconfig/confdata.c b/scripts/kconfig/confdata.c > index b7c9f1dd5e42..992575f1e976 100644 > --- a/scripts/kconfig/confdata.c > +++ b/scripts/kconfig/confdata.c > @@ -1226,10 +1226,12 @@ static void (*conf_changed_callback)(void); > > void conf_set_changed(bool val) > { > - if (conf_changed_callback && conf_changed != val) > - conf_changed_callback(); > + bool changed = conf_changed != val; > > conf_changed = val; > + > + if (conf_changed_callback && changed) > + conf_changed_callback(); > } > > bool conf_get_changed(void)
On Wed, Mar 8, 2023 at 4:40 AM Jurica Vukadin <jura@vukad.in> wrote: > > Prior to commit 5ee546594025 ("kconfig: change sym_change_count to a > boolean flag"), the conf_updated flag was set to the new value *before* > calling the callback. xconfig's save action depends on this behaviour, > because xconfig calls conf_get_changed() directly from the callback and > now sees the old value, thus never enabling the save button or the > shortcut. > > Restore the previous behaviour. > > Fixes: 5ee546594025 ("kconfig: change sym_change_count to a boolean flag") > Signed-off-by: Jurica Vukadin <jura@vukad.in> Applied to linux-kbuild. Thanks. > --- > scripts/kconfig/confdata.c | 6 ++++-- > 1 file changed, 4 insertions(+), 2 deletions(-) > > diff --git a/scripts/kconfig/confdata.c b/scripts/kconfig/confdata.c > index b7c9f1dd5e42..992575f1e976 100644 > --- a/scripts/kconfig/confdata.c > +++ b/scripts/kconfig/confdata.c > @@ -1226,10 +1226,12 @@ static void (*conf_changed_callback)(void); > > void conf_set_changed(bool val) > { > - if (conf_changed_callback && conf_changed != val) > - conf_changed_callback(); > + bool changed = conf_changed != val; > > conf_changed = val; > + > + if (conf_changed_callback && changed) > + conf_changed_callback(); > } > > bool conf_get_changed(void) > -- > 2.39.2 >
diff --git a/scripts/kconfig/confdata.c b/scripts/kconfig/confdata.c index b7c9f1dd5e42..992575f1e976 100644 --- a/scripts/kconfig/confdata.c +++ b/scripts/kconfig/confdata.c @@ -1226,10 +1226,12 @@ static void (*conf_changed_callback)(void); void conf_set_changed(bool val) { - if (conf_changed_callback && conf_changed != val) - conf_changed_callback(); + bool changed = conf_changed != val; conf_changed = val; + + if (conf_changed_callback && changed) + conf_changed_callback(); } bool conf_get_changed(void)
Prior to commit 5ee546594025 ("kconfig: change sym_change_count to a boolean flag"), the conf_updated flag was set to the new value *before* calling the callback. xconfig's save action depends on this behaviour, because xconfig calls conf_get_changed() directly from the callback and now sees the old value, thus never enabling the save button or the shortcut. Restore the previous behaviour. Fixes: 5ee546594025 ("kconfig: change sym_change_count to a boolean flag") Signed-off-by: Jurica Vukadin <jura@vukad.in> --- scripts/kconfig/confdata.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-)