Skip to content

Commit

Permalink
Bluetooth: Re-use kstrtobool_from_user()
Browse files Browse the repository at this point in the history
Re-use kstrtobool_from_user() instead of open coded variant.

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
  • Loading branch information
andy-shev authored and holtmann committed May 30, 2018
1 parent 9960521 commit 3bf5e97
Show file tree
Hide file tree
Showing 3 changed files with 19 additions and 40 deletions.
23 changes: 7 additions & 16 deletions net/bluetooth/hci_core.c
Original file line number Diff line number Diff line change
Expand Up @@ -76,19 +76,15 @@ static ssize_t dut_mode_write(struct file *file, const char __user *user_buf,
{
struct hci_dev *hdev = file->private_data;
struct sk_buff *skb;
char buf[32];
size_t buf_size = min(count, (sizeof(buf)-1));
bool enable;
int err;

if (!test_bit(HCI_UP, &hdev->flags))
return -ENETDOWN;

if (copy_from_user(buf, user_buf, buf_size))
return -EFAULT;

buf[buf_size] = '\0';
if (strtobool(buf, &enable))
return -EINVAL;
err = kstrtobool_from_user(user_buf, count, &enable);
if (err)
return err;

if (enable == hci_dev_test_flag(hdev, HCI_DUT_MODE))
return -EALREADY;
Expand Down Expand Up @@ -135,17 +131,12 @@ static ssize_t vendor_diag_write(struct file *file, const char __user *user_buf,
size_t count, loff_t *ppos)
{
struct hci_dev *hdev = file->private_data;
char buf[32];
size_t buf_size = min(count, (sizeof(buf)-1));
bool enable;
int err;

if (copy_from_user(buf, user_buf, buf_size))
return -EFAULT;

buf[buf_size] = '\0';
if (strtobool(buf, &enable))
return -EINVAL;
err = kstrtobool_from_user(user_buf, count, &enable);
if (err)
return err;

/* When the diagnostic flags are not persistent and the transport
* is not active or in user channel operation, then there is no need
Expand Down
24 changes: 8 additions & 16 deletions net/bluetooth/hci_debugfs.c
Original file line number Diff line number Diff line change
Expand Up @@ -47,19 +47,15 @@ static ssize_t __name ## _write(struct file *file, \
size_t count, loff_t *ppos) \
{ \
struct hci_dev *hdev = file->private_data; \
char buf[32]; \
size_t buf_size = min(count, (sizeof(buf) - 1)); \
bool enable; \
int err; \
\
if (test_bit(HCI_UP, &hdev->flags)) \
return -EBUSY; \
\
if (copy_from_user(buf, user_buf, buf_size)) \
return -EFAULT; \
\
buf[buf_size] = '\0'; \
if (strtobool(buf, &enable)) \
return -EINVAL; \
err = kstrtobool_from_user(user_buf, count, &enable); \
if (err) \
return err; \
\
if (enable == test_bit(__quirk, &hdev->quirks)) \
return -EALREADY; \
Expand Down Expand Up @@ -658,19 +654,15 @@ static ssize_t force_static_address_write(struct file *file,
size_t count, loff_t *ppos)
{
struct hci_dev *hdev = file->private_data;
char buf[32];
size_t buf_size = min(count, (sizeof(buf)-1));
bool enable;
int err;

if (test_bit(HCI_UP, &hdev->flags))
return -EBUSY;

if (copy_from_user(buf, user_buf, buf_size))
return -EFAULT;

buf[buf_size] = '\0';
if (strtobool(buf, &enable))
return -EINVAL;
err = kstrtobool_from_user(user_buf, count, &enable);
if (err)
return err;

if (enable == hci_dev_test_flag(hdev, HCI_FORCE_STATIC_ADDR))
return -EALREADY;
Expand Down
12 changes: 4 additions & 8 deletions net/bluetooth/smp.c
Original file line number Diff line number Diff line change
Expand Up @@ -3315,16 +3315,12 @@ static ssize_t force_bredr_smp_write(struct file *file,
size_t count, loff_t *ppos)
{
struct hci_dev *hdev = file->private_data;
char buf[32];
size_t buf_size = min(count, (sizeof(buf)-1));
bool enable;
int err;

if (copy_from_user(buf, user_buf, buf_size))
return -EFAULT;

buf[buf_size] = '\0';
if (strtobool(buf, &enable))
return -EINVAL;
err = kstrtobool_from_user(user_buf, count, &enable);
if (err)
return err;

if (enable == hci_dev_test_flag(hdev, HCI_FORCE_BREDR_SMP))
return -EALREADY;
Expand Down

0 comments on commit 3bf5e97

Please sign in to comment.