diff options
Diffstat (limited to 'net/bluetooth/hci_sync.c')
| -rw-r--r-- | net/bluetooth/hci_sync.c | 19 | 
1 files changed, 6 insertions, 13 deletions
| diff --git a/net/bluetooth/hci_sync.c b/net/bluetooth/hci_sync.c index 9e2d7e4b850c..117eedb6f709 100644 --- a/net/bluetooth/hci_sync.c +++ b/net/bluetooth/hci_sync.c @@ -3572,7 +3572,7 @@ static const struct hci_init_stage hci_init2[] = {  static int hci_le_read_buffer_size_sync(struct hci_dev *hdev)  {  	/* Use Read LE Buffer Size V2 if supported */ -	if (hdev->commands[41] & 0x20) +	if (iso_capable(hdev) && hdev->commands[41] & 0x20)  		return __hci_cmd_sync_status(hdev,  					     HCI_OP_LE_READ_BUFFER_SIZE_V2,  					     0, NULL, HCI_CMD_TIMEOUT); @@ -3597,10 +3597,10 @@ static int hci_le_read_supported_states_sync(struct hci_dev *hdev)  /* LE Controller init stage 2 command sequence */  static const struct hci_init_stage le_init2[] = { -	/* HCI_OP_LE_READ_BUFFER_SIZE */ -	HCI_INIT(hci_le_read_buffer_size_sync),  	/* HCI_OP_LE_READ_LOCAL_FEATURES */  	HCI_INIT(hci_le_read_local_features_sync), +	/* HCI_OP_LE_READ_BUFFER_SIZE */ +	HCI_INIT(hci_le_read_buffer_size_sync),  	/* HCI_OP_LE_READ_SUPPORTED_STATES */  	HCI_INIT(hci_le_read_supported_states_sync),  	{} @@ -6187,20 +6187,13 @@ int hci_get_random_address(struct hci_dev *hdev, bool require_privacy,  static int _update_adv_data_sync(struct hci_dev *hdev, void *data)  { -	u8 instance = *(u8 *)data; - -	kfree(data); +	u8 instance = PTR_ERR(data);  	return hci_update_adv_data_sync(hdev, instance);  }  int hci_update_adv_data(struct hci_dev *hdev, u8 instance)  { -	u8 *inst_ptr = kmalloc(1, GFP_KERNEL); - -	if (!inst_ptr) -		return -ENOMEM; - -	*inst_ptr = instance; -	return hci_cmd_sync_queue(hdev, _update_adv_data_sync, inst_ptr, NULL); +	return hci_cmd_sync_queue(hdev, _update_adv_data_sync, +				  ERR_PTR(instance), NULL);  } |