Re: [PATCH]bluetooth: hci_sysfs connection bus_id add support for diffrent hci device

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

 



On 11/1/07, Dave Young <[email protected]> wrote:
> On 10/31/07, Marcel Holtmann <[email protected]> wrote:
> > Hi Dave,
> >
> > > > > > diff -upr linux/net/bluetooth/hci_sysfs.c linux.new/net/bluetooth/hci_sysfs.c
> > > > > > --- linux/net/bluetooth/hci_sysfs.c 2007-10-31 10:21:00.000000000 +0800
> > > > > > +++ linux.new/net/bluetooth/hci_sysfs.c     2007-10-31 10:21:55.000000000 +0800
> > > > > > @@ -302,7 +302,8 @@ void hci_conn_add_sysfs(struct hci_conn
> > > > > >     conn->dev.release = bt_release;
> > > > > >
> > > > > >     snprintf(conn->dev.bus_id, BUS_ID_SIZE,
> > > > > > -                   "%s%2.2X%2.2X%2.2X%2.2X%2.2X%2.2X",
> > > > > > +                   "%s%s%2.2X%2.2X%2.2X%2.2X%2.2X%2.2X",
> > > > > > +                   hdev->name,
> > > > > >                     conn->type == ACL_LINK ? "acl" : "sco",
> > > > > >                     ba->b[5], ba->b[4], ba->b[3],
> > > > > >                     ba->b[2], ba->b[1], ba->b[0]);
> > > > >
> > > > > This might not work.
> > > > >
> > > > > Your device's name is already 15 characters long,
> > > > > BUS_ID_SIZE is 20, and it seems hdev->name could
> > > > > easily overflow the 4 or 5 characters of space
> > > > > remaining.
> > > >
> > > > and should also be not needed since their parents are different. However
> > > > we had to add the connections to a bus. Otherwise the userspace will
> > > > never see them. I have to think about the right solution for this
> > > > problem.
> > >
> > > Maybe we can use this instead:
> > >       snprintf(conn->dev.bus_id, BUS_ID_SIZE,
> > > -                     "%s%2.2X%2.2X%2.2X%2.2X%2.2X%2.2X",
> > > +                     "%s%s%2.2X%2.2X%2.2X%2.2X%2.2X%2.2X",
> > > +                     hdev->name + 3,
> > >                       conn->type == ACL_LINK ? "acl" : "sco",
> > >                       ba->b[5], ba->b[4], ba->b[3],
> > >                       ba->b[2], ba->b[1], ba->b[0]);
> >
> > I had a look on how other subsystems handle this case and yes, they
> > duplicate the id number from its parent device. So I applied the
> > attached patch to my tree.
Hi,
Sorry for my noise.
Theoretically, for the "%d-%s" version, overwrite is also possible.

hdev->id is u16, imagine the id is 65535, then total length is 21.

IMHO,  temporarily, the ""%s" , hdev->name +3 "version is better,
because the hdev->name len is 8, except for the end nul character,
remain 4 to print, so 4+15 is just KOBJ_NAME_LEN - 1.

Regards
dave
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[Index of Archives]     [Kernel Newbies]     [Netfilter]     [Bugtraq]     [Photo]     [Stuff]     [Gimp]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Video 4 Linux]     [Linux for the blind]     [Linux Resources]
  Powered by Linux