Re: [PATCH v2] android/bluetooth: Fix handling paring related events

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Łukasz,

On Tuesday 02 of September 2014 13:51:36 Lukasz Rymanowski wrote:
> As it turns out it is possible that kernel send to user space mgmt
> events related to pairing before device connected event.
> In such case BfA was dropping such event because he does not know
> device.
> 
> With this patch, if device is not in the cache, BfA will create it.
> 
> Issue triggered by test: "Bluetooth Accept Bond - Just Works - Success"
> ---
> v2: build error.
>  android/bluetooth.c | 10 +++++-----
>  1 file changed, 5 insertions(+), 5 deletions(-)
> 
> diff --git a/android/bluetooth.c b/android/bluetooth.c
> index 99e2aab..bd1e747 100644
> --- a/android/bluetooth.c
> +++ b/android/bluetooth.c
> @@ -1240,7 +1240,7 @@ static void new_link_key_callback(uint16_t index, uint16_t length,
>  		return;
>  	}
>  
> -	dev = find_device(&ev->key.addr.bdaddr);
> +	dev = get_device(&ev->key.addr.bdaddr, ev->key.addr.type);
>  	if (!dev)
>  		return;
>  
> @@ -1335,7 +1335,7 @@ static void user_confirm_request_callback(uint16_t index, uint16_t length,
>  	ba2str(&ev->addr.bdaddr, dst);
>  	DBG("%s confirm_hint %u", dst, ev->confirm_hint);
>  
> -	dev = find_device(&ev->addr.bdaddr);
> +	dev = get_device(&ev->addr.bdaddr, ev->addr.type);
>  	if (!dev)
>  		return;
>  
> @@ -1363,7 +1363,7 @@ static void user_passkey_request_callback(uint16_t index, uint16_t length,
>  	ba2str(&ev->addr.bdaddr, dst);
>  	DBG("%s", dst);
>  
> -	dev = find_device(&ev->addr.bdaddr);
> +	dev = get_device(&ev->addr.bdaddr, ev->addr.type);
>  	if (!dev)
>  		return;
>  
> @@ -2288,7 +2288,7 @@ static void new_csrk_callback(uint16_t index, uint16_t length,
>  	}
>  
>  	ba2str(&ev->key.addr.bdaddr, dst);
> -	dev = find_device(&ev->key.addr.bdaddr);
> +	dev = get_device(&ev->key.addr.bdaddr, ev->key.addr.type);
>  	if (!dev)
>  		return;
>  
> @@ -2363,7 +2363,7 @@ static void new_irk_callback(uint16_t index, uint16_t length,
>  	DBG("new IRK for %s, RPA %s", dst, rpa);
>  
>  	if (!bacmp(&ev->rpa, BDADDR_ANY)) {
> -		dev = find_device(&addr->bdaddr);
> +		dev = get_device(&addr->bdaddr, addr->type);
>  		if (!dev)
>  			return;
>  	} else {
> 

Applied, thanks.

-- 
Best regards, 
Szymon Janc
--
To unsubscribe from this list: send the line "unsubscribe linux-bluetooth" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Bluez Devel]     [Linux Wireless Networking]     [Linux Wireless Personal Area Networking]     [Linux ATH6KL]     [Linux USB Devel]     [Linux Media Drivers]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Big List of Linux Books]

  Powered by Linux