Skip to content
Commit 218da167 authored by Jean-Michel Trivi's avatar Jean-Michel Trivi
Browse files

AudioService: fix audio mode lock

Fix lock "sharing" for audio mode, with locking order as
1/ AudioDeviceBroker.mSetModeLock
2/ AudioDeviceBroker.mDeviceStateLock
3/ BtHelper class

The following code paths have been automatically generated
  as accessing BtHelper.requestScoState(int, int), which
  requires the lock to mSetModeLock. They have been checked
  for consistency of locks, and have been fixed and/or annotated:

ScoClient in BtHelper.decCount()  (com.android.server.audio)
    BtHelper.stopBluetoothScoForClient(IBinder, String)  (com.android.server.audio)
        AudioDeviceBroker.stopBluetoothScoForClient_Sync(IBinder, String)  (com.android.server.audio)
            AudioService.stopBluetoothSco(IBinder)  (com.android.server.audio)
ScoClient in BtHelper.incCount(int)  (com.android.server.audio)
    BtHelper.startBluetoothScoForClient(IBinder, int, String)  (com.android.server.audio)
        AudioDeviceBroker.startBluetoothScoForClient_Sync(IBinder, int, String)  (com.android.server.audio)
            AudioService.startBluetoothScoInt(IBinder, int, String)  (com.android.server.audio)
ScoClient in BtHelper.clearCount(boolean)  (com.android.server.audio)
    BtHelper.clearAllScoClients(int, boolean)  (com.android.server.audio)
        BtHelper.disconnectBluetoothSco(int)  (com.android.server.audio)
            BrokerHandler in AudioDeviceBroker.handleMessage(Message)  (com.android.server.audio)
        BtHelper.resetBluetoothSco()  (com.android.server.audio)
            BrokerHandler in AudioDeviceBroker.handleMessage(Message)  (com.android.server.audio)
            BtHelper.setBtScoActiveDevice(BluetoothDevice)  (com.android.server.audio)
                BtHelper.disconnectHeadset()  (com.android.server.audio)
                    BrokerHandler in AudioDeviceBroker.handleMessage(Message)  (com.android.server.audio)
                BtHelper.receiveBtEvent(Intent)  (com.android.server.audio)
                    AudioDeviceBroker.receiveBtEvent(Intent)  (com.android.server.audio)
                BtHelper.onHeadsetProfileConnected(BluetoothHeadset)  (com.android.server.audio)
                    BrokerHandler in AudioDeviceBroker.handleMessage(Message)  (com.android.server.audio)
            BtHelper.onSystemReady()  (com.android.server.audio)
                AudioDeviceBroker.onSystemReady()  (com.android.server.audio)
        BtHelper.receiveBtEvent(Intent)  (com.android.server.audio)
    BtHelper.scoClientDied(Object)  (com.android.server.audio)
        BrokerHandler in AudioDeviceBroker.handleMessage(Message)  (com.android.server.audio)

Bug: 123769055
Test: see bug
Change-Id: I5fbb5e8c56d69b8ccfc6b2f44b00169c6b75b632
parent 7e46f59a
Loading
Loading
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment