Message ID | 20220725080549.4163484-1-michal.lowas-rzechonek@silvair.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | [BlueZ,v2] mesh: Set global bus earlier | expand |
Context | Check | Description |
---|---|---|
tedd_an/pre-ci_am | success | Success |
tedd_an/checkpatch | success | Checkpatch PASS |
tedd_an/gitlint | success | Gitlint PASS |
tedd_an/setupell | success | Setup ELL PASS |
tedd_an/buildprep | success | Build Prep PASS |
tedd_an/build | success | Build Configuration PASS |
tedd_an/makecheck | success | Make Check PASS |
tedd_an/makecheckvalgrind | success | Make Check PASS |
tedd_an/makedistcheck | success | Make Distcheck PASS |
tedd_an/build_extell | success | Build External ELL PASS |
tedd_an/build_extell_make | success | Build Make with External ELL PASS |
tedd_an/scan_build | success | Pass |
This is automated email and please do not reply to this email! Dear submitter, Thank you for submitting the patches to the linux bluetooth mailing list. This is a CI test results with your patch series: PW Link:https://patchwork.kernel.org/project/bluetooth/list/?series=662693 ---Test result--- Test Summary: CheckPatch PASS 1.01 seconds GitLint PASS 0.54 seconds Prep - Setup ELL PASS 32.04 seconds Build - Prep PASS 0.68 seconds Build - Configure PASS 9.73 seconds Build - Make PASS 736.69 seconds Make Check PASS 11.17 seconds Make Check w/Valgrind PASS 294.36 seconds Make Distcheck PASS 246.27 seconds Build w/ext ELL - Configure PASS 9.89 seconds Build w/ext ELL - Make PASS 90.77 seconds Incremental Build w/ patches PASS 0.00 seconds Scan Build PASS 495.61 seconds --- Regards, Linux Bluetooth
Hi Michał, On Mon, 2022-07-25 at 10:05 +0200, Michał Lowas-Rzechonek wrote: > Some io implementations might want to either make calls to other D- > Bus > services, or provide additional objects/interfaces that allow > applications to fine-tune their operation, so allow them to use the > bus > even before initializing mesh D-Bus interfaces. > --- > mesh/dbus.c | 8 ++++++++ > mesh/dbus.h | 1 + > mesh/main.c | 2 ++ > 3 files changed, 11 insertions(+) > > diff --git a/mesh/dbus.c b/mesh/dbus.c > index a7abdc428..6e62abd27 100644 > --- a/mesh/dbus.c > +++ b/mesh/dbus.c > @@ -75,6 +75,11 @@ struct l_dbus_message *dbus_error(struct > l_dbus_message *msg, int err, > "%s", error_table[err].default_desc); > } > > +void dbus_set_bus(struct l_dbus *bus) > +{ > + dbus = bus; > +} > + > struct l_dbus *dbus_get_bus(void) > { > return dbus; > @@ -82,6 +87,9 @@ struct l_dbus *dbus_get_bus(void) > > bool dbus_init(struct l_dbus *bus) > { > + if (dbus != bus) > + return false; > + Since dbus_set_bus() is called prior to dbus_init(), wouldn't it make sense to eliminate an input parameter for dbus_init() and to perform a check (dbus != NULL) and also eliminate "dbus = bus" statement at the end of dbus_init()? > /* Network interface */ > if (!mesh_dbus_init(bus)) > return false; > diff --git a/mesh/dbus.h b/mesh/dbus.h > index 8f00434d6..ab8b0a2cc 100644 > --- a/mesh/dbus.h > +++ b/mesh/dbus.h > @@ -14,6 +14,7 @@ > #define DEFAULT_DBUS_TIMEOUT 30 > > bool dbus_init(struct l_dbus *dbus); > +void dbus_set_bus(struct l_dbus *bus); > struct l_dbus *dbus_get_bus(void); > void dbus_append_byte_array(struct l_dbus_message_builder *builder, > const uint8_t *data, > int len); > diff --git a/mesh/main.c b/mesh/main.c > index dd99c3085..0180c3768 100644 > --- a/mesh/main.c > +++ b/mesh/main.c > @@ -278,6 +278,8 @@ int main(int argc, char *argv[]) > goto done; > } > > + dbus_set_bus(dbus); > + It is better to call dbus_set_bus from within ready_callback() > if (dbus_debug) > l_dbus_set_debug(dbus, do_debug, "[DBUS] ", NULL); > l_dbus_set_ready_handler(dbus, ready_callback, dbus, NULL); Best regards, Inga
diff --git a/mesh/dbus.c b/mesh/dbus.c index a7abdc428..6e62abd27 100644 --- a/mesh/dbus.c +++ b/mesh/dbus.c @@ -75,6 +75,11 @@ struct l_dbus_message *dbus_error(struct l_dbus_message *msg, int err, "%s", error_table[err].default_desc); } +void dbus_set_bus(struct l_dbus *bus) +{ + dbus = bus; +} + struct l_dbus *dbus_get_bus(void) { return dbus; @@ -82,6 +87,9 @@ struct l_dbus *dbus_get_bus(void) bool dbus_init(struct l_dbus *bus) { + if (dbus != bus) + return false; + /* Network interface */ if (!mesh_dbus_init(bus)) return false; diff --git a/mesh/dbus.h b/mesh/dbus.h index 8f00434d6..ab8b0a2cc 100644 --- a/mesh/dbus.h +++ b/mesh/dbus.h @@ -14,6 +14,7 @@ #define DEFAULT_DBUS_TIMEOUT 30 bool dbus_init(struct l_dbus *dbus); +void dbus_set_bus(struct l_dbus *bus); struct l_dbus *dbus_get_bus(void); void dbus_append_byte_array(struct l_dbus_message_builder *builder, const uint8_t *data, int len); diff --git a/mesh/main.c b/mesh/main.c index dd99c3085..0180c3768 100644 --- a/mesh/main.c +++ b/mesh/main.c @@ -278,6 +278,8 @@ int main(int argc, char *argv[]) goto done; } + dbus_set_bus(dbus); + if (dbus_debug) l_dbus_set_debug(dbus, do_debug, "[DBUS] ", NULL); l_dbus_set_ready_handler(dbus, ready_callback, dbus, NULL);