Hi Manish, On Thu, Jul 7, 2022 at 3:15 PM Manish Mandlik <mmandlik@xxxxxxxxxx> wrote: > > Since device/firmware dump is a debugging feature, we may not need it > all the time. Add a sysfs attribute to enable/disable bluetooth > devcoredump capturing. The default state of this feature would be > disabled and it can be enabled by echoing 1 to enable_coredump sysfs > entry as follow: > > $ echo 1 > /sys/class/bluetooth/<device>/enable_coredump > > Signed-off-by: Manish Mandlik <mmandlik@xxxxxxxxxx> > --- > > Changes in v3: > - New patch in the series to enable/disable feature via sysfs entry > > net/bluetooth/hci_sysfs.c | 36 ++++++++++++++++++++++++++++++++++++ > 1 file changed, 36 insertions(+) > > diff --git a/net/bluetooth/hci_sysfs.c b/net/bluetooth/hci_sysfs.c > index 4e3e0451b08c..df0d54a5ae3f 100644 > --- a/net/bluetooth/hci_sysfs.c > +++ b/net/bluetooth/hci_sysfs.c > @@ -91,9 +91,45 @@ static void bt_host_release(struct device *dev) > module_put(THIS_MODULE); > } > > +#ifdef CONFIG_DEV_COREDUMP > +static ssize_t enable_coredump_show(struct device *dev, > + struct device_attribute *attr, > + char *buf) > +{ > + struct hci_dev *hdev = to_hci_dev(dev); > + > + return scnprintf(buf, 3, "%d\n", hdev->dump.enabled); > +} > + > +static ssize_t enable_coredump_store(struct device *dev, > + struct device_attribute *attr, > + const char *buf, size_t count) > +{ > + struct hci_dev *hdev = to_hci_dev(dev); > + > + /* Consider any non-zero value as true */ > + if (simple_strtol(buf, NULL, 10)) > + hdev->dump.enabled = true; > + else > + hdev->dump.enabled = false; > + > + return count; > +} > +DEVICE_ATTR_RW(enable_coredump); > +#endif > + > +static struct attribute *bt_host_attrs[] = { > +#ifdef CONFIG_DEV_COREDUMP > + &dev_attr_enable_coredump.attr, > +#endif > + NULL, > +}; > +ATTRIBUTE_GROUPS(bt_host); > + > static const struct device_type bt_host = { > .name = "host", > .release = bt_host_release, > + .groups = bt_host_groups, > }; > > void hci_init_sysfs(struct hci_dev *hdev) > -- > 2.37.0.rc0.161.g10f37bed90-goog It seems devcoredump.c creates its own sysfs entries so perhaps this should be included there and documented in sysfs-devices-coredump. -- Luiz Augusto von Dentz