lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20181214131619.GD20658@localhost>
Date:   Fri, 14 Dec 2018 14:16:19 +0100
From:   Johan Hovold <johan@...nel.org>
To:     Balakrishna Godavarthi <bgodavar@...eaurora.org>
Cc:     Johan Hovold <johan@...nel.org>, marcel@...tmann.org,
        johan.hedberg@...il.com, mka@...omium.org,
        linux-kernel@...r.kernel.org, linux-bluetooth@...r.kernel.org,
        hemantg@...eaurora.org, linux-arm-msm@...r.kernel.org,
        Johan Hovold <jhovold@...il.com>
Subject: Re: [PATCH v3 1/4] Bluetooth: hci_qca: use wait_until_sent() for
 power pulses

On Fri, Dec 14, 2018 at 06:02:40PM +0530, Balakrishna Godavarthi wrote:
> Hi Johan,
> 
> On 2018-12-12 22:12, Johan Hovold wrote:
> > On Thu, Dec 06, 2018 at 04:10:07PM +0530, Balakrishna Godavarthi wrote:

> >> uart_write_wakeup()->ttyport_write_wakeup()->serdev_controller_write_wakeup()->hci_uart_write_wakeup()->hci_uart_tx_wakeup()
> >> 
> >>          the above is flow when serdev_device_write() is called, it is
> >> indirectly calling serdev_write_wakeup().
> > 
> > No, serdev_device_write_wakeup() is currently not called in this path,
> > which means you cannot use serdev_device_write().
> > 
> >>          Why actual we need to call an serdev_write_wakeup() is this
> >> wakeup related to the UART port or for the BT chip.
> > 
> > serdev_device_write_wakeup() is where a writer blocked on a full write
> > buffer in serdev_device_write() is woken up.
> > 
> > Johan
> 
> Is it preferred to use and serdev_device_write_buf() followed by 
> serdev_device_wait_until_sent()

That's up to the driver author and depends on what you want to achieve.

If you want to do something synchronously, you always have to call
serdev_device_wait_until_sent() after, as both serdev_device_write_buf()
and serdev_device_write() only buffer the data.

If you use serdev_device_write_buf() you also have to make sure that you
can handle incomplete buffering yourself (e.g. when the underlying tty
driver buffer is getting full).

serdev_device_write() was added as a convenience helper for this, but
depends on serdev_device_write_wakeup() being called in the write_wakeup
path to make forward progress.

> or do we required an write_wakeup() called before writing into 
> serdev_device_write_buf()

No, that doesn't make any sense. serdev_device_write_wakeup() needs to
be called in the write-wakeup path, but only if you use
serdev_device_write().

Please see the documentation of these function that I added to
linux-next (and that I linked to earlier).

Johan

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ