[PATCH 5/5] bluetooth: Set device_info_valid to -1 when the device's adapter disappears

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

 



On Sun, 2013-11-17 at 18:05 +0200, Luiz Augusto von Dentz wrote:
> Hi Tanu,
> 
> On Fri, Nov 15, 2013 at 4:29 PM, Tanu Kaskinen
> <tanu.kaskinen at linux.intel.com> wrote:
> > When parsing device properties, missing adapter will result in
> > device_info_valid being set to -1. It is then logical that if the
> > adapter goes missing at a later point, device_info_valid gets set to
> > -1 also in that situation.
> > ---
> >  src/modules/bluetooth/bluez5-util.c | 4 +++-
> >  1 file changed, 3 insertions(+), 1 deletion(-)
> >
> > diff --git a/src/modules/bluetooth/bluez5-util.c b/src/modules/bluetooth/bluez5-util.c
> > index 73e65d1..c8ff219 100644
> > --- a/src/modules/bluetooth/bluez5-util.c
> > +++ b/src/modules/bluetooth/bluez5-util.c
> > @@ -477,8 +477,10 @@ static void adapter_free(pa_bluetooth_adapter *a) {
> >      pa_assert(a->discovery);
> >
> >      PA_HASHMAP_FOREACH(d, a->discovery->devices, state)
> > -        if (d->adapter == a)
> > +        if (d->adapter == a) {
> > +            set_device_info_valid(d, -1);
> >              d->adapter = NULL;
> > +        }
> >
> >      pa_xfree(a->path);
> >      pa_xfree(a->address);
> > --
> > 1.8.3.1
> 
> Is this some bug in BlueZ Im not aware of? There is an Adapter
> property that should always be present, if the adapter goes away we
> should probably cleanup its devices as their are no use without the
> adapter. Note the adapter will only disappear if it is really
> unplugged, if the adapter is just powered down it will continue to be
> present, so Im not really sure what is benefit of having a invalid
> devices around.

No, this is not a fix for any particular real-world problem that I'm
having. I'm just making the code consistent with regard to missing
adapter handling.

I guess by "we should probably cleanup its devices" you mean that we
should remove devices that belong to the removed adapter. I disagree. We
should keep in sync with the state of BlueZ. If BlueZ removes the
devices when the adapter is removed, then PA will remove the device too
when it gets the InterfacesRemoved signal for the devices. If BlueZ
keeps the devices around, PA should keep them around too.

-- 
Tanu



[Index of Archives]     [Linux Audio Users]     [AMD Graphics]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux