From nobody Sat Apr 1 05:54:44 2023 X-Original-To: dev-commits-src-all@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 4PpRFJ2Pglz42t65; Sat, 1 Apr 2023 05:54:44 +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 4PpRFJ1dfJz3M8D; Sat, 1 Apr 2023 05:54:44 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1680328484; 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=zxjcFJQ0Ha+L3XoKfneHNt27vg3wrLOPWbnoEfijHUg=; b=X87AMN/fFPvP3hxhDVd9oBBCX/bE3Znca2J4rqOM40UjdXX3BQQXoUM23UCMQnsqCIa8yE yQhu3gCQ7BURmesd/6G7cMyLnm1hB7uzRKeb4s+VYf/edVPOccQkzgseYUYNTd51/63eXA uG0uBMV874sodzvKY676NRzLMuRR9rBs1nb7F8s0SKqUCn3h/Bjlq61hKUZFNG/tb92wow wh9ylh/brUeiWg4PiBCDWibP00mkt0AquHxZSWw93qKmpgEukvKWaovMBezFj4b7vuCIOY tXP28aiMgpUh0bzP6sYA/Pzshu3m9/TNOlcsgZUSpO70Ndfc1yM27QDP0VLiFg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1680328484; 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=zxjcFJQ0Ha+L3XoKfneHNt27vg3wrLOPWbnoEfijHUg=; b=e4tUQH5rUuw55OZ2mWrBKGF+Mz9kCxjZ/Lzdkys0/EDJt8hqAAXWnXw4hEIcL3T/7LG+9J lhb87bgi23AZQBFzER+5j9ifI000ZT+vwl5dprNwXmk7HyjB9PD+AzriO8Rwu+AOpU9Sun o2LHKpic7YAIZdEqwiSkWhTgxTGSd5mXykXtZFkR7GbNEGo37kMntgM36E4nlB3bUhaazt O+m+OV2DzV7rz+K27+oHYPAQoz0h3pgU2RyJw6p1HIU/msOZHC5Kz47FvR+qQSdVMBpQgl zidVlvNISoghK26wxjMYrH1Su10z0Ax/a+PSRaSaM0oqwEiYcGlBK469tXM6Tg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1680328484; a=rsa-sha256; cv=none; b=YYjcJUvbptEkptfly80lGQ9hjLcQuhxb9r5Kz6Gqn4Z5WjybgPVImX8IjZJP84vSzgU+Jm 1+qmIVOCj18rK/SzmzX06RDjOnO2V9fPsA1OERnRg6zopRppi2u90De8FFr6oIdkjEwC2t 9mJqJTX3/9I959JiEgcGpCjdfRp/kyeVggaOdR/3N6em96XMhlhRyNY7ZcaG4xm0S4XgQD DfVWONisP16jxpltHkuc3rV4jvKIZ/97GPE9wR5omOmn4z4Y9TlMJgkAY1+/7QyhDbBqY3 p5n0Zgh3Ch3yE3y7movUkhP1RXdzEEuNEBNVTW7XVJRh66F/DgfeSrEqIt6T3w== 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 4PpRFJ0jGHzPZB; Sat, 1 Apr 2023 05:54:44 +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 3315siDD065302; Sat, 1 Apr 2023 05:54:44 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 3315siww065301; Sat, 1 Apr 2023 05:54:44 GMT (envelope-from git) Date: Sat, 1 Apr 2023 05:54:44 GMT Message-Id: <202304010554.3315siww065301@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Xin LI Subject: git: 285d85f4f96b - main - arcmsr(4): Fix reading buffer empty length error. List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-all@freebsd.org X-BeenThere: dev-commits-src-all@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/main X-Git-Reftype: branch X-Git-Commit: 285d85f4f96bf3b5aecccad865a8855724241c32 Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch main has been updated by delphij: URL: https://cgit.FreeBSD.org/src/commit/?id=285d85f4f96bf3b5aecccad865a8855724241c32 commit 285d85f4f96bf3b5aecccad865a8855724241c32 Author: 黃清隆 AuthorDate: 2023-04-01 05:43:43 +0000 Commit: Xin LI CommitDate: 2023-04-01 05:43:43 +0000 arcmsr(4): Fix reading buffer empty length error. MFC after: 2 weeks --- 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 dcb940bf339c..ac56c072cd38 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 /* ************************************************************************** @@ -1555,8 +1556,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;