Hi David, > We currently initialize locks, lists, works, etc. in hci_register_dev() > (hci_alloc_dev() was added later) which is bogus because an hdev is in an > invalid state if it is not registered. > This patch moves all memory initialization to hci_alloc_dev(). Device > registering and registration of sub-modules is still left in > hci_register_dev() as it belongs there. > > The benefit is (despite cleaning up the code-base) we can now always be > sure that an hdev is a valid object and can be locked and worked on even > though it may not be registered. > > This patch also reorders the initialization to be easier to understand. > First the memory is initialized, then all generic structures and as last > step the sub-init functions are called. This guarantees that all > dependencies are initialized in the right order and makes it also easier > to find a specific line. We previously initialized it in the same order as > the "struct hci_dev" is declared which seems pretty random. > > Signed-off-by: David Herrmann <dh.herrmann@xxxxxxxxxxxxxx> > --- > Sorry for reordering the calls, it makes reviewing very hard. However, I think > it improves readability a _lot_. I can resend without reordering if you want. I am fine with this. And I could not spot any issue here. So I went ahead and applied all 3 patches to bluetooth-next tree. Regards Marcel -- To unsubscribe from this list: send the line "unsubscribe linux-bluetooth" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html