Skip to content

Commit

Permalink
Bluetooth: Remove no longer needed force_sc_support debugfs option
Browse files Browse the repository at this point in the history
The force_sc_support debugfs option was introduced to easily work with
pre-production Bluetooth 4.1 silicon. This option is no longer needed
since controllers supporting BR/EDR Secure Connections feature are now
available.

Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
  • Loading branch information
Marcel Holtmann committed Jan 2, 2015
1 parent 91389af commit 05b3c3e
Show file tree
Hide file tree
Showing 4 changed files with 5 additions and 59 deletions.
1 change: 0 additions & 1 deletion include/net/bluetooth/hci.h
Original file line number Diff line number Diff line change
Expand Up @@ -172,7 +172,6 @@ enum {
*/
enum {
HCI_DUT_MODE,
HCI_FORCE_SC,
HCI_FORCE_BREDR_SMP,
HCI_FORCE_STATIC_ADDR,
};
Expand Down
3 changes: 1 addition & 2 deletions include/net/bluetooth/hci_core.h
Original file line number Diff line number Diff line change
Expand Up @@ -1017,8 +1017,7 @@ void hci_conn_del_sysfs(struct hci_conn *conn);

#define hdev_is_powered(hdev) (test_bit(HCI_UP, &hdev->flags) && \
!test_bit(HCI_AUTO_OFF, &hdev->dev_flags))
#define bredr_sc_enabled(dev) ((lmp_sc_capable(dev) || \
test_bit(HCI_FORCE_SC, &(dev)->dbg_flags)) && \
#define bredr_sc_enabled(dev) (lmp_sc_capable(dev) && \
test_bit(HCI_SC_ENABLED, &(dev)->dev_flags))

/* ----- HCI protocols ----- */
Expand Down
49 changes: 0 additions & 49 deletions net/bluetooth/hci_debugfs.c
Original file line number Diff line number Diff line change
Expand Up @@ -375,52 +375,6 @@ static const struct file_operations sc_only_mode_fops = {
.llseek = default_llseek,
};

static ssize_t force_sc_support_read(struct file *file, char __user *user_buf,
size_t count, loff_t *ppos)
{
struct hci_dev *hdev = file->private_data;
char buf[3];

buf[0] = test_bit(HCI_FORCE_SC, &hdev->dbg_flags) ? 'Y': 'N';
buf[1] = '\n';
buf[2] = '\0';
return simple_read_from_buffer(user_buf, count, ppos, buf, 2);
}

static ssize_t force_sc_support_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;

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;

if (enable == test_bit(HCI_FORCE_SC, &hdev->dbg_flags))
return -EALREADY;

change_bit(HCI_FORCE_SC, &hdev->dbg_flags);

return count;
}

static const struct file_operations force_sc_support_fops = {
.open = simple_open,
.read = force_sc_support_read,
.write = force_sc_support_write,
.llseek = default_llseek,
};

static int idle_timeout_set(void *data, u64 val)
{
struct hci_dev *hdev = data;
Expand Down Expand Up @@ -521,9 +475,6 @@ void hci_debugfs_create_bredr(struct hci_dev *hdev)
hdev, &auto_accept_delay_fops);
debugfs_create_file("sc_only_mode", 0444, hdev->debugfs,
hdev, &sc_only_mode_fops);

debugfs_create_file("force_sc_support", 0644, hdev->debugfs,
hdev, &force_sc_support_fops);
}

if (lmp_sniff_capable(hdev)) {
Expand Down
11 changes: 4 additions & 7 deletions net/bluetooth/mgmt.c
Original file line number Diff line number Diff line change
Expand Up @@ -570,8 +570,7 @@ static u32 get_supported_settings(struct hci_dev *hdev)
settings |= MGMT_SETTING_HS;
}

if (lmp_sc_capable(hdev) ||
test_bit(HCI_FORCE_SC, &hdev->dbg_flags))
if (lmp_sc_capable(hdev))
settings |= MGMT_SETTING_SECURE_CONN;
}

Expand Down Expand Up @@ -4727,8 +4726,8 @@ static int set_secure_conn(struct sock *sk, struct hci_dev *hdev,

BT_DBG("request for %s", hdev->name);

if (!test_bit(HCI_LE_ENABLED, &hdev->dev_flags) &&
!lmp_sc_capable(hdev) && !test_bit(HCI_FORCE_SC, &hdev->dbg_flags))
if (!lmp_sc_capable(hdev) &&
!test_bit(HCI_LE_ENABLED, &hdev->dev_flags))
return cmd_status(sk, hdev->id, MGMT_OP_SET_SECURE_CONN,
MGMT_STATUS_NOT_SUPPORTED);

Expand All @@ -4738,9 +4737,7 @@ static int set_secure_conn(struct sock *sk, struct hci_dev *hdev,

hci_dev_lock(hdev);

if (!hdev_is_powered(hdev) ||
(!lmp_sc_capable(hdev) &&
!test_bit(HCI_FORCE_SC, &hdev->dbg_flags)) ||
if (!hdev_is_powered(hdev) || !lmp_sc_capable(hdev) ||
!test_bit(HCI_BREDR_ENABLED, &hdev->dev_flags)) {
bool changed;

Expand Down

0 comments on commit 05b3c3e

Please sign in to comment.