From nobody Sat Apr 15 06:48:12 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4Pz3mY23vFz44k5V; Sat, 15 Apr 2023 06:48:13 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Pz3mY0GwTz3t2T; Sat, 15 Apr 2023 06:48:13 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1681541293; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=PH03PhPwPMM+9n5vjKIlCeZd+UkX2TmaOfecHsnit48=; b=tEBkajFMDBLZb0A7qlCYw1jJJgei/ZAhm6jCnrgl32+7d3Mqm/0gdX2p9UK78cNv9zmEee 5u6i48bEechJuXyywYrkzBj7b8UeOxeXF5nFcrYe5qIvrDG4+fPJ6cPHxDCwNVbK2g7WrU mR9TQbuXPg1gE1Ag6rlrzkDIzgRixG4N5tLp6H+OGGFif3TOpot4TI1KfTJsUauaREOvxt BCBgfzE1DXk2XwF/Ix6Vw3jL4Y0fQk3IwzLMCaN23YeCY8P9h82FiK5vEhqV/1AsOmCT+o z53Wd2UWPGohCYaoGf0OJEriH+dfUAPOtJfbh+6A93x5Ry9XLz4AmbFydbVyMg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1681541293; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=PH03PhPwPMM+9n5vjKIlCeZd+UkX2TmaOfecHsnit48=; b=WFgDI7qNTATm4DM6JpFXmr4stPdFalG//DPpSsXjq2Jw36LlwkfWxonUSTwpA068nIAqp/ MhW7cuSF/VmtFXv3erLkDRrIscj0A71e8OjQzowHAdIfwyWY7SzcpsqyfvppALDYOKniyu rQd0WfW5AClW5Eq33lGBogwUOM4AacwwnnS+JJij+z3Od4BNMQCVwOF6oO0QlTzbT6mAWt iqcaSp932dF8ej/63OZW5Iq1SUlI2mfLk8EPx/L9VTyz/XNnkuQ3O5GzD2+bjzfvrMyQzm 3ubqWoCH4KoF5ANRKfMQg4xQlCol0G/fKJPjsEi6kN3R9eAxckX0n9w5vDAR1Q== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1681541293; a=rsa-sha256; cv=none; b=xAUMfo4cG/1ZIxX0KKAbuZ8XMtrt8mwORoKIPSCwsBKi/aMmLrMK6tFiu2eU7Jw/trs9jD KOf71hVdDA82uGEHCbrJD8rHtZp7wbhCAsz0Pz0H69j57/Ra32/c1Vs+Tr9uc4UBg4iMyL MqgvetC9OhMz74MSgFWzJ+6j+/+/cF+0PaVjjwpcrqW7Vvm3arLAh5t2ZnkSeikZb/JfME 8BOgkCuBIPQQDOG1at5od+7gbT75FfOcHf58T5X6NgV3UAGuO0KpJczfelbEt8pB54al0l OXxHLxznGaa0ysW+0cKBL114lWpxxAlpOv7zifneeKAUjS5DyLtIGFTufRb6+Q== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Pz3mX6SR1zwrT; Sat, 15 Apr 2023 06:48:12 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 33F6mC9F038638; Sat, 15 Apr 2023 06:48:12 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 33F6mCn1038637; Sat, 15 Apr 2023 06:48:12 GMT (envelope-from git) Date: Sat, 15 Apr 2023 06:48:12 GMT Message-Id: <202304150648.33F6mCn1038637@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Xin LI Subject: git: 134e7beec0e2 - stable/13 - arcmsr(4): Fix reading buffer empty length error. List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: delphij X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: 134e7beec0e29a6f571d81edfe9a315a93e70c0f Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch stable/13 has been updated by delphij: URL: https://cgit.FreeBSD.org/src/commit/?id=134e7beec0e29a6f571d81edfe9a315a93e70c0f commit 134e7beec0e29a6f571d81edfe9a315a93e70c0f Author: 黃清隆 AuthorDate: 2023-04-01 05:43:43 +0000 Commit: Xin LI CommitDate: 2023-04-15 06:47:33 +0000 arcmsr(4): Fix reading buffer empty length error. (cherry picked from commit 285d85f4f96bf3b5aecccad865a8855724241c32) --- sys/dev/arcmsr/arcmsr.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/sys/dev/arcmsr/arcmsr.c b/sys/dev/arcmsr/arcmsr.c index 6a21a91fda58..987e9ecd9047 100644 --- a/sys/dev/arcmsr/arcmsr.c +++ b/sys/dev/arcmsr/arcmsr.c @@ -87,6 +87,7 @@ ** scatter-gather count large than some number ** 1.50.00.03 05/04/2021 Ching Huang Fixed doorbell status arrived late on ARC-1886 ** 1.50.00.04 12/08/2021 Ching Huang Fixed boot up hung under ARC-1886 with no volume created +** 1.50.00.05 03/23/2023 Ching Huang Fixed reading buffer empty length error ****************************************************************************************** */ @@ -144,7 +145,7 @@ __FBSDID("$FreeBSD$"); #define arcmsr_callout_init(a) callout_init(a, /*mpsafe*/1); -#define ARCMSR_DRIVER_VERSION "arcmsr version 1.50.00.04 2021-12-08" +#define ARCMSR_DRIVER_VERSION "arcmsr version 1.50.00.05 2023-03-23" #include /* ************************************************************************** @@ -1561,8 +1562,10 @@ static void arcmsr_iop2drv_data_wrote_handle(struct AdapterControlBlock *acb) /*check this iop data if overflow my rqbuffer*/ ARCMSR_LOCK_ACQUIRE(&acb->qbuffer_lock); prbuffer = arcmsr_get_iop_rqbuffer(acb); - my_empty_len = (acb->rqbuf_lastindex - acb->rqbuf_firstindex - 1) & - (ARCMSR_MAX_QBUFFER-1); + if (acb->rqbuf_lastindex >= acb->rqbuf_firstindex) + my_empty_len = (ARCMSR_MAX_QBUFFER - 1) - (acb->rqbuf_lastindex - acb->rqbuf_firstindex); + else + my_empty_len = acb->rqbuf_firstindex - acb->rqbuf_lastindex - 1; if(my_empty_len >= prbuffer->data_len) { if(arcmsr_Read_iop_rqbuffer_data(acb, prbuffer) == 0) acb->acb_flags |= ACB_F_IOPDATA_OVERFLOW;