On Wed, Aug 10, 2022 at 09:00:36AM -0700, Manish Mandlik wrote: > --- a/net/bluetooth/hci_core.c > +++ b/net/bluetooth/hci_core.c > @@ -2510,14 +2510,23 @@ struct hci_dev *hci_alloc_dev_priv(int sizeof_priv) > INIT_WORK(&hdev->tx_work, hci_tx_work); > INIT_WORK(&hdev->power_on, hci_power_on); > INIT_WORK(&hdev->error_reset, hci_error_reset); > +#ifdef CONFIG_DEV_COREDUMP > + INIT_WORK(&hdev->dump.dump_rx, hci_devcoredump_rx); > +#endif > > hci_cmd_sync_init(hdev); > > INIT_DELAYED_WORK(&hdev->power_off, hci_power_off); > +#ifdef CONFIG_DEV_COREDUMP > + INIT_DELAYED_WORK(&hdev->dump.dump_timeout, hci_devcoredump_timeout); > +#endif > > skb_queue_head_init(&hdev->rx_q); > skb_queue_head_init(&hdev->cmd_q); > skb_queue_head_init(&hdev->raw_q); > +#ifdef CONFIG_DEV_COREDUMP > + skb_queue_head_init(&hdev->dump.dump_q); > +#endif Putting #ifdef in .c files is messy, why not put all of this behind a function that you properly handle in a .h file instead? thanks, greg k-h