Re: [PATCH 0/6] HID: Add a stable method for retrieving the client MAC address of a HID device

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

 



On Sat, Feb 1, 2014 at 11:06 AM, Frank Praznik <frank.praznik@xxxxxxxxx> wrote:
> On 1/31/2014 15:45, Benjamin Tissoires wrote:
>>
>> On Fri, Jan 31, 2014 at 3:04 PM, Frank Praznik <frank.praznik@xxxxxxxxx>
>> wrote:
>>>
>>> On 1/31/2014 14:10, Benjamin Tissoires wrote:
>>>>
>>>> Hi Frank,
>>>>
>>>> just a quick review:
>>>>
>>>> On Fri, Jan 31, 2014 at 12:32 PM, Frank Praznik
>>>> <frank.praznik@xxxxxxxxx>
>>>> wrote:
>>>>>
>>>>> Currently there is no reliable way for a device module or hidraw
>>>>> application to
>>>>> retrieve the client MAC address of the associated wireless device.
>>>>> This
>>>>> series
>>>>> of patches adds a stable way of retrieving this information.
>>>>
>>>> Well, if I look at the uevent of a Bluetooth mouse I have:
>>>>
>>>> $ cat
>>>>
>>>> /sys/devices/pci0000\:00/0000\:00\:14.0/usb3/3-2/3-2\:1.0/bluetooth/hci0/hci0\:43/0005\:046D\:B00D.001F/uevent
>>>> DRIVER=hid-generic
>>>> HID_ID=0005:0000046D:0000B00D
>>>> HID_NAME=Ultrathin Touch Mouse
>>>> HID_PHYS=00:10:60:ea:df:ae
>>>> HID_UNIQ=00:1f:20:96:33:47
>>>> MODALIAS=hid:b0005g0001v0000046Dp0000B00D
>>>>
>>>> I would say that HID_UNIQ is the client MAC address set by hidp, no?
>>>> So you don't need to duplicate the info by adding a new field in
>>>> hid_device.
>>>>
>>> In a patch I recently submitted I was using the UNIQ field for retrieving
>>> a
>>> Bluetooth device MAC address and was warned against it because "UNIQ is a
>>> way to provide unique identifiers for devices, but it's not guaranteed to
>>> stay the same".  HIDP happens to store the MAC in the UNIQ data, but
>>> there
>>> is no guarantee that it will always be there.  With these patches you can
>>> be
>>> completely sure that the data in client_addr is the client device MAC
>>> address.
>>
>> ok. But still, adding a transport-specific information to hid_device
>> is IMO a bad idea. We fought to make HID agnostic of the transport
>> layer enough.
>>
>> David, could you elaborate why you think that UNIQ may change in the
>> future regarding BT?
>> If the BT MAC address is the same principle of an ethernet MAC
>> address, UNIQ seems to fit perfectly well.
>>
>> Otherwise, you may be able to retrieve the MAC address by using the
>> parent of the current device.
>>
>> Cheers,
>> Benjamin
>
> Are you referring to using the hid_device::dev.parent pointer?  I know that

Yes

> hidp sets it to point to the hci_conn struct from which src address for the
> Bluetooth connection can be obtained, but making assumptions about an opaque
> pointer like that seems dangerous.  Is the parent pointer guaranteed to
> point to the hci_conn struct as long as the bus type is Bluetooth?

And nope. If you use uhid, then the parent will not be a hci_conn.

With enough guards, you should be able to use it, but it's not ideal I agree.
I really want to have David's opinion regarding the UNIQ field. IMO,
this seems to be the most transport-agnostic way of doing it.

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




[Index of Archives]     [Linux Media Devel]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Linux Wireless Networking]     [Linux Omap]

  Powered by Linux