From: Greg Kroah-Hartman Date: Tue, 21 Nov 2017 07:50:15 +0000 (+0100) Subject: drop queue-4.13/crypto-brcm-explicity-ack-mailbox-message.patch X-Git-Tag: v3.18.83~1 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=164ae44dc02a0b2aab7575311b55c96227538d3d;p=thirdparty%2Fkernel%2Fstable-queue.git drop queue-4.13/crypto-brcm-explicity-ack-mailbox-message.patch --- diff --git a/queue-4.13/crypto-brcm-explicity-ack-mailbox-message.patch b/queue-4.13/crypto-brcm-explicity-ack-mailbox-message.patch deleted file mode 100644 index 79c1c6d557d..00000000000 --- a/queue-4.13/crypto-brcm-explicity-ack-mailbox-message.patch +++ /dev/null @@ -1,189 +0,0 @@ -From f0e2ce58f853634d7ad1a418a49bd5fbd556227c Mon Sep 17 00:00:00 2001 -From: raveendra padasalagi -Date: Tue, 29 Aug 2017 15:08:10 +0530 -Subject: crypto: brcm - Explicity ACK mailbox message - -From: raveendra padasalagi - -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 -Reviewed-by: Anup Patel -Reviewed-by: Scott Branden -Signed-off-by: Herbert Xu -Signed-off-by: Greg Kroah-Hartman - ---- - 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; - diff --git a/queue-4.13/series b/queue-4.13/series index da65b16fc9d..834afc43620 100644 --- a/queue-4.13/series +++ b/queue-4.13/series @@ -4,7 +4,6 @@ bluetooth-btusb-fix-qca-rome-suspend-resume.patch crypto-dh-fix-double-free-of-ctx-p.patch crypto-dh-don-t-permit-p-to-be-0.patch crypto-dh-don-t-permit-key-or-g-size-longer-than-p.patch -crypto-brcm-explicity-ack-mailbox-message.patch usb-early-use-new-usb-product-id-and-strings-for-dbc-device.patch usb-usbfs-compute-urb-actual_length-for-isochronous.patch usb-add-delay-init-quirk-for-corsair-k70-lux-keyboards.patch