Re: [PATCH v1] Bluetooth: hci_qca: Enable the ldisc for ROME for x86 platforms.

Balakrishna Godavarthi
2019-03-08T05:13:14Z

Hi Matthias,

On 2019-03-08 02:12, Matthias Kaehlcke wrote:
> Hi Balakrishna,
>
> On Thu, Mar 07, 2019 at 03:47:22PM +0530, Balakrishna Godavarthi wrote:
>> When using btattach to setup Rome over ldisc we observed a crash
>> in qca_setup as it will try to access the serdev which is not
>> available in the ldisc proto. This patch will fix the crash by
>> support both the ldisc and serdev way in the qca hci_uart driver.
>>
>> Signed-off-by: Balakrishna Godavarthi <bgodavar@codeaurora.org>
>
> Oh, I wasn't aware of the instantiation through ldisc and was actually
> considering to *remove* some of the seemingly unnecessary serdev
> checks.
>
>> ---
>> drivers/bluetooth/hci_qca.c | 47
>> ++++++++++++++++++++++---------------
>> 1 file changed, 28 insertions(+), 19 deletions(-)
>>
>> diff --git a/drivers/bluetooth/hci_qca.c b/drivers/bluetooth/hci_qca.c
>> index 237aea34b69f..0a5c98d46864 100644
>> --- a/drivers/bluetooth/hci_qca.c
>> +++ b/drivers/bluetooth/hci_qca.c
>> @@ -963,7 +963,7 @@ static int qca_set_baudrate(struct hci_dev *hdev,
>> uint8_t baudrate)
>> {
>> struct hci_uart *hu = hci_get_drvdata(hdev);
>> struct qca_data *qca = hu->priv;
>> - struct qca_serdev *qcadev;
>> + struct qca_serdev *qcadev = NULL;
>
> In many cases the only field that is accessed is qcadev->btsoc_type. I
> think something like 'qca_get_soc_type(struct hci_dev *hdev / struct
> hci_uart *hu)' would make things more readable.
>
[Bala]: sure will update this in other patch once this change is landed
as this has to
go in priority as we have crash coming.

> IMO the whole 'qcadev' vs 'qca(_data)' is confusing anyway, in this
> sense even better if we can make most of the 'qcadev' references
> disappear.
>
[Bala]: will note this improvement point and do it with the above
change.

> Thanks
>
> Matthias

--
Regards
Balakrishna.