From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
To: linux-kernel@vger.kernel.org
Cc: stable@vger.kernel.org,
Raveendra Padasalagi <raveendra.padasalagi@broadcom.com>,
Anup Patel <anup.patel@broadcom.com>,
Scott Branden <scott.branden@broadcom.com>,
Herbert Xu <herbert@gondor.apana.org.au>
Subject: Re: [PATCH 4.13 07/28] crypto: brcm - Explicity ACK mailbox message
Date: Tue, 21 Nov 2017 08:51:25 +0100 [thread overview]
Message-ID: <20171121075125.GA6539@kroah.com> (raw)
In-Reply-To: <20171119144311.806904195@linuxfoundation.org>
Nope, this patch breaks the build as it relies on a previous patch that
is not in 4.13-stable, so I'm dropping it. If anyone wants it there,
well, it really feels like it shouldn't be included in a stable tree
anyway...
thanks,
greg k-h
On Sun, Nov 19, 2017 at 03:43:54PM +0100, Greg Kroah-Hartman wrote:
> 4.13-stable review patch. If anyone has any objections, please let me know.
>
> ------------------
>
> From: raveendra padasalagi <raveendra.padasalagi@broadcom.com>
>
> commit f0e2ce58f853634d7ad1a418a49bd5fbd556227c upstream.
>
> Add support to explicity ACK mailbox message
> because after sending message we can know
> the send status via error attribute of brcm_message.
>
> This is needed to support "txdone_ack" supported in
> mailbox controller driver.
>
> Fixes: 9d12ba86f818 ("crypto: brcm - Add Broadcom SPU driver")
> Signed-off-by: Raveendra Padasalagi <raveendra.padasalagi@broadcom.com>
> Reviewed-by: Anup Patel <anup.patel@broadcom.com>
> Reviewed-by: Scott Branden <scott.branden@broadcom.com>
> Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
>
> ---
> drivers/crypto/bcm/cipher.c | 101 ++++++++++++++++++++------------------------
> 1 file changed, 46 insertions(+), 55 deletions(-)
>
> --- a/drivers/crypto/bcm/cipher.c
> +++ b/drivers/crypto/bcm/cipher.c
> @@ -258,6 +258,44 @@ spu_ablkcipher_tx_sg_create(struct brcm_
> return 0;
> }
>
> +static int mailbox_send_message(struct brcm_message *mssg, u32 flags,
> + u8 chan_idx)
> +{
> + int err;
> + int retry_cnt = 0;
> + struct device *dev = &(iproc_priv.pdev->dev);
> +
> + err = mbox_send_message(iproc_priv.mbox[chan_idx], mssg);
> + if (flags & CRYPTO_TFM_REQ_MAY_SLEEP) {
> + while ((err == -ENOBUFS) && (retry_cnt < SPU_MB_RETRY_MAX)) {
> + /*
> + * Mailbox queue is full. Since MAY_SLEEP is set, assume
> + * not in atomic context and we can wait and try again.
> + */
> + retry_cnt++;
> + usleep_range(MBOX_SLEEP_MIN, MBOX_SLEEP_MAX);
> + err = mbox_send_message(iproc_priv.mbox[chan_idx],
> + mssg);
> + atomic_inc(&iproc_priv.mb_no_spc);
> + }
> + }
> + if (err < 0) {
> + atomic_inc(&iproc_priv.mb_send_fail);
> + return err;
> + }
> +
> + /* Check error returned by mailbox controller */
> + err = mssg->error;
> + if (unlikely(err < 0)) {
> + dev_err(dev, "message error %d", err);
> + /* Signal txdone for mailbox channel */
> + }
> +
> + /* Signal txdone for mailbox channel */
> + mbox_client_txdone(iproc_priv.mbox[chan_idx], err);
> + return err;
> +}
> +
> /**
> * handle_ablkcipher_req() - Submit as much of a block cipher request as fits in
> * a single SPU request message, starting at the current position in the request
> @@ -295,7 +333,6 @@ static int handle_ablkcipher_req(struct
> u32 pad_len; /* total length of all padding */
> bool update_key = false;
> struct brcm_message *mssg; /* mailbox message */
> - int retry_cnt = 0;
>
> /* number of entries in src and dst sg in mailbox message. */
> u8 rx_frag_num = 2; /* response header and STATUS */
> @@ -464,24 +501,9 @@ static int handle_ablkcipher_req(struct
> if (err)
> return err;
>
> - err = mbox_send_message(iproc_priv.mbox[rctx->chan_idx], mssg);
> - if (req->base.flags & CRYPTO_TFM_REQ_MAY_SLEEP) {
> - while ((err == -ENOBUFS) && (retry_cnt < SPU_MB_RETRY_MAX)) {
> - /*
> - * Mailbox queue is full. Since MAY_SLEEP is set, assume
> - * not in atomic context and we can wait and try again.
> - */
> - retry_cnt++;
> - usleep_range(MBOX_SLEEP_MIN, MBOX_SLEEP_MAX);
> - err = mbox_send_message(iproc_priv.mbox[rctx->chan_idx],
> - mssg);
> - atomic_inc(&iproc_priv.mb_no_spc);
> - }
> - }
> - if (unlikely(err < 0)) {
> - atomic_inc(&iproc_priv.mb_send_fail);
> + err = mailbox_send_message(mssg, req->base.flags, rctx->chan_idx);
> + if (unlikely(err < 0))
> return err;
> - }
>
> return -EINPROGRESS;
> }
> @@ -712,7 +734,6 @@ static int handle_ahash_req(struct iproc
> u32 spu_hdr_len;
> unsigned int digestsize;
> u16 rem = 0;
> - int retry_cnt = 0;
>
> /*
> * number of entries in src and dst sg. Always includes SPU msg header.
> @@ -906,24 +927,10 @@ static int handle_ahash_req(struct iproc
> if (err)
> return err;
>
> - err = mbox_send_message(iproc_priv.mbox[rctx->chan_idx], mssg);
> - if (req->base.flags & CRYPTO_TFM_REQ_MAY_SLEEP) {
> - while ((err == -ENOBUFS) && (retry_cnt < SPU_MB_RETRY_MAX)) {
> - /*
> - * Mailbox queue is full. Since MAY_SLEEP is set, assume
> - * not in atomic context and we can wait and try again.
> - */
> - retry_cnt++;
> - usleep_range(MBOX_SLEEP_MIN, MBOX_SLEEP_MAX);
> - err = mbox_send_message(iproc_priv.mbox[rctx->chan_idx],
> - mssg);
> - atomic_inc(&iproc_priv.mb_no_spc);
> - }
> - }
> - if (err < 0) {
> - atomic_inc(&iproc_priv.mb_send_fail);
> + err = mailbox_send_message(mssg, req->base.flags, rctx->chan_idx);
> + if (unlikely(err < 0))
> return err;
> - }
> +
> return -EINPROGRESS;
> }
>
> @@ -1322,7 +1329,6 @@ static int handle_aead_req(struct iproc_
> int assoc_nents = 0;
> bool incl_icv = false;
> unsigned int digestsize = ctx->digestsize;
> - int retry_cnt = 0;
>
> /* number of entries in src and dst sg. Always includes SPU msg header.
> */
> @@ -1560,24 +1566,9 @@ static int handle_aead_req(struct iproc_
> if (err)
> return err;
>
> - err = mbox_send_message(iproc_priv.mbox[rctx->chan_idx], mssg);
> - if (req->base.flags & CRYPTO_TFM_REQ_MAY_SLEEP) {
> - while ((err == -ENOBUFS) && (retry_cnt < SPU_MB_RETRY_MAX)) {
> - /*
> - * Mailbox queue is full. Since MAY_SLEEP is set, assume
> - * not in atomic context and we can wait and try again.
> - */
> - retry_cnt++;
> - usleep_range(MBOX_SLEEP_MIN, MBOX_SLEEP_MAX);
> - err = mbox_send_message(iproc_priv.mbox[rctx->chan_idx],
> - mssg);
> - atomic_inc(&iproc_priv.mb_no_spc);
> - }
> - }
> - if (err < 0) {
> - atomic_inc(&iproc_priv.mb_send_fail);
> + err = mailbox_send_message(mssg, req->base.flags, rctx->chan_idx);
> + if (unlikely(err < 0))
> return err;
> - }
>
> return -EINPROGRESS;
> }
> @@ -4534,7 +4525,7 @@ static int spu_mb_init(struct device *de
> mcl->dev = dev;
> mcl->tx_block = false;
> mcl->tx_tout = 0;
> - mcl->knows_txdone = false;
> + mcl->knows_txdone = true;
> mcl->rx_callback = spu_rx_callback;
> mcl->tx_done = NULL;
>
>
next prev parent reply other threads:[~2017-11-21 7:51 UTC|newest]
Thread overview: 45+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-11-19 14:43 [PATCH 4.13 00/28] 4.13.15-stable review Greg Kroah-Hartman
2017-11-19 14:43 ` [PATCH 4.13 01/28] media: imon: Fix null-ptr-deref in imon_probe Greg Kroah-Hartman
2017-11-19 14:43 ` [PATCH 4.13 02/28] media: dib0700: fix invalid dvb_detach argument Greg Kroah-Hartman
2017-11-19 14:43 ` [PATCH 4.13 03/28] Bluetooth: btusb: fix QCA Rome suspend/resume Greg Kroah-Hartman
2017-12-16 3:05 ` Matthias Kaehlcke
2017-12-18 5:16 ` Kai Heng Feng
2017-12-18 11:43 ` Greg Kroah-Hartman
2017-12-18 18:13 ` Brian Norris
2017-12-19 4:28 ` Kai Heng Feng
2017-12-19 23:11 ` Brian Norris
2017-12-20 8:42 ` Kai Heng Feng
2017-11-19 14:43 ` [PATCH 4.13 04/28] crypto: dh - Fix double free of ctx->p Greg Kroah-Hartman
2017-11-19 14:43 ` [PATCH 4.13 05/28] crypto: dh - Dont permit p to be 0 Greg Kroah-Hartman
2017-11-19 14:43 ` [PATCH 4.13 06/28] crypto: dh - Dont permit key or g size longer than p Greg Kroah-Hartman
2017-11-19 14:43 ` [PATCH 4.13 07/28] crypto: brcm - Explicity ACK mailbox message Greg Kroah-Hartman
2017-11-21 7:51 ` Greg Kroah-Hartman [this message]
2017-11-21 10:05 ` Raveendra Padasalagi
2017-11-19 14:43 ` [PATCH 4.13 08/28] USB: early: Use new USB product ID and strings for DbC device Greg Kroah-Hartman
2017-11-19 14:43 ` [PATCH 4.13 09/28] USB: usbfs: compute urb->actual_length for isochronous Greg Kroah-Hartman
2017-11-19 14:43 ` [PATCH 4.13 10/28] USB: Add delay-init quirk for Corsair K70 LUX keyboards Greg Kroah-Hartman
2017-11-19 14:43 ` [PATCH 4.13 11/28] usb: gadget: f_fs: Fix use-after-free in ffs_free_inst Greg Kroah-Hartman
2017-11-19 14:43 ` [PATCH 4.13 12/28] USB: serial: metro-usb: stop I/O after failed open Greg Kroah-Hartman
2017-11-19 14:44 ` [PATCH 4.13 13/28] USB: serial: Change DbC debug device binding ID Greg Kroah-Hartman
2017-11-19 14:44 ` [PATCH 4.13 14/28] USB: serial: qcserial: add pid/vid for Sierra Wireless EM7355 fw update Greg Kroah-Hartman
2017-11-19 14:44 ` [PATCH 4.13 15/28] USB: serial: garmin_gps: fix I/O after failed probe and remove Greg Kroah-Hartman
2017-11-19 14:44 ` [PATCH 4.13 16/28] USB: serial: garmin_gps: fix memory leak on probe errors Greg Kroah-Hartman
2017-11-19 14:44 ` [PATCH 4.13 17/28] selftests/x86/protection_keys: Fix syscall NR redefinition warnings Greg Kroah-Hartman
2017-11-19 14:44 ` [PATCH 4.13 19/28] platform/x86: peaq-wmi: Add DMI check before binding to the WMI interface Greg Kroah-Hartman
2017-11-19 14:44 ` [PATCH 4.13 20/28] platform/x86: peaq_wmi: Fix missing terminating entry for peaq_dmi_table Greg Kroah-Hartman
2017-11-19 14:44 ` [PATCH 4.13 22/28] HID: wacom: generic: Recognize WACOM_HID_WD_PEN as a type of pen collection Greg Kroah-Hartman
2017-11-19 14:44 ` [PATCH 4.13 23/28] staging: wilc1000: Fix bssid buffer offset in Txq Greg Kroah-Hartman
2017-11-19 14:44 ` [PATCH 4.13 24/28] staging: sm750fb: Fix parameter mistake in poke32 Greg Kroah-Hartman
2017-11-19 14:44 ` [PATCH 4.13 25/28] staging: ccree: fix 64 bit scatter/gather DMA ops Greg Kroah-Hartman
2017-11-19 14:44 ` [PATCH 4.13 26/28] staging: greybus: spilib: fix use-after-free after deregistration Greg Kroah-Hartman
2017-11-19 14:44 ` [PATCH 4.13 27/28] staging: vboxvideo: Fix reporting invalid suggested-offset-properties Greg Kroah-Hartman
2017-11-19 14:44 ` [PATCH 4.13 28/28] staging: rtl8188eu: Revert 4 commits breaking ARP Greg Kroah-Hartman
2017-11-19 20:13 ` [PATCH 4.13 00/28] 4.13.15-stable review Guenter Roeck
2017-11-20 14:13 ` Guenter Roeck
2017-11-21 7:23 ` Greg Kroah-Hartman
2017-11-21 7:51 ` Greg Kroah-Hartman
2017-11-21 10:06 ` Guenter Roeck
2017-11-21 14:15 ` Greg Kroah-Hartman
2017-11-20 21:18 ` Shuah Khan
-- strict thread matches above, loose matches on Subject: below --
2017-11-19 14:44 [4.13,18/28] x86/MCE/AMD: Always give panic severity for UC errors in kernel context Greg Kroah-Hartman
2017-11-19 14:44 ` [PATCH 4.13 18/28] " Greg Kroah-Hartman
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20171121075125.GA6539@kroah.com \
--to=gregkh@linuxfoundation.org \
--cc=anup.patel@broadcom.com \
--cc=herbert@gondor.apana.org.au \
--cc=linux-kernel@vger.kernel.org \
--cc=raveendra.padasalagi@broadcom.com \
--cc=scott.branden@broadcom.com \
--cc=stable@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.