Re: [PATCH v4 6/7] Bluetooth: mediatek: Add protocol support for MediaTek serial devices

From: Johan Hovold
Date: Thu Jun 28 2018 - 01:19:55 EST


On Thu, Jun 28, 2018 at 11:06:13AM +0800, Sean Wang wrote:
> On Wed, 2018-06-27 at 20:04 +0300, Andy Shevchenko wrote:
> > On Wed, Jun 27, 2018 at 7:59 PM, Andy Shevchenko
> > <andy.shevchenko@xxxxxxxxx> wrote:
> > > On Wed, Jun 27, 2018 at 8:43 AM, <sean.wang@xxxxxxxxxxxx> wrote:
> > >> From: Sean Wang <sean.wang@xxxxxxxxxxxx>

> > >> +#include <net/bluetooth/bluetooth.h>
> > >> +#include <net/bluetooth/hci_core.h>
> >
> > >> + /* Enable the power domain and clock the device requires. */
> > >> + pm_runtime_enable(dev);
> > >> + err = pm_runtime_get_sync(dev);
> > >> + if (err < 0)
> > >> + goto err_pm2;

> > >> +err_pm1:
> > >> + pm_runtime_put_sync(dev);
> > >> +err_pm2:
> > >> + pm_runtime_disable(dev);

Please name error labels after what they do, not using numbers (see
CodingStyle). Here you could use err_disable_rpm instead of err_pm2, for
example.

Also, if you really want to undo pm_runtime_get_sync() failing above,
you still need a pm_runtime_put_noidle() to balance the usage count.

> > >> +struct mtk_stp_hdr {
> > >> + __u8 prefix;
> > >> + __u8 dlen1:4;
> > >> + __u8 type:4;
> >
> > >> + __u8 dlen2:8;
> > >> + __u8 cs;
> > >> +} __packed;

Perhaps too much context have been lost here, but unless you're sharing
this struct with user space, you should be using u8 (without __) above
(and elsewhere).

Johan