From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-ej1-f44.google.com (mail-ej1-f44.google.com [209.85.218.44]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 64F7F430CD1 for ; Wed, 5 Aug 2026 11:14:00 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.218.44 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1785928442; cv=none; b=j8Kxsu+ornvuhI9GDwM/eIyX9ZTuF/6/DMLvSpgDMLBiqYCCogHVHB/P/LsICW5caroIn4HV22b/8BaMkeaYW6TcCFKxR4bbAUSEdj/W4cAWy4HwpjzGRUZFpd8n9OAqZwf9TFLHm6pOHGbEJc9XCK66dog+su6yGjVBPnBy0+k= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1785928442; c=relaxed/simple; bh=lVu9kgAFB2Y2C6V7zsmHfe89qsnswfGmZQPAiT59maQ=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References; b=Fnhjpy6mGkRSu6Bp1tXlOPJIfn9B+xXjmpcHv93tyg6VkYYmWjAJA0tcuaB3vva9aJYCfUZfc39smNe+BnULKoX+nZG+Fvr4WJyYGNAXoXx5BhXOi3lWoX5Cme21CvAC0JirKQHmtzkIAQylelF/e0sKDdfoUoUzttueaL14ZPo= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=d8Ra7mqn; arc=none smtp.client-ip=209.85.218.44 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="d8Ra7mqn" Received: by mail-ej1-f44.google.com with SMTP id a640c23a62f3a-c15f020a223so143122866b.1 for ; Wed, 05 Aug 2026 04:14:00 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1785928439; x=1786533239; darn=vger.kernel.org; h=references:in-reply-to:message-id:date:subject:cc:to:from:from:to :cc:subject:date:message-id:reply-to:content-type; bh=s31BvaLz48EiFfE9PVMVRR7SqApnlFTXJUtfp+soN18=; b=d8Ra7mqnno+Su489SBMKfbeleSRfwG7+UqNVUDi2liH7poCOZxV8dotrswcaco+U+n 1Nq62RCFNaKRNTrgapU/GfdhoXEHzUQuseM4REcLPk5KP1s1YErDD1LBDhls85gb8zHu 5L22QVEq9pwf+ZiePRgTyLVZHjmB6YJQohsO7Nc7rhdiPHqtMEW8C1pAsJyYPj8Mujgs t6mZZHwYoDYfE36Bw3PMuSRpItEGTBzpEIFV3mTEgw+aGstSw+0oE4ZJWiJcannHeMa+ 9oy3sFmuKcz/lV9fQfpkhLzvDPPgOCDh3Q9H+8Wag5ZMCMUAsxzFd9E9CSbKlu8EgJzb Rrdg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1785928439; x=1786533239; h=references:in-reply-to:message-id:date:subject:cc:to:from:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to :content-type; bh=s31BvaLz48EiFfE9PVMVRR7SqApnlFTXJUtfp+soN18=; b=X9pDJzfUP4J37YETx2T5l2ZTyzotfiNWSjfiueMRNa2z0WnfNBXdXpwYRcUcBpaW20 aJlNDf7Af3N/a9p3r81N16CyC8C4kk61MDXAGTJ5jZ/P8qgOgfKtx/Uxs7H1eSS4llg/ w/k0ec2NOc1kUltzvOKFtyBLXHP4Wg8O8vrFtml8fQ5MrQzqdrPjl9zNT4fJDL1moWKD 4tqQvx7AmKMPNIi1FsL1kYBpj6O2QN7RmejEk0MdIsFBijj0BqPqj8zwKC0tK17lDdAb MO8OCIlDAf+xxBHze1VAeiaL68E0r8DEXvi9jocbXdf9AjtOdYkxhAt81/STxP/voEs3 nuow== X-Forwarded-Encrypted: i=1; AHgh+RpBwuGxMrN1TPCJDdFEQzwQOb0ELNWHIyVd6aJkes2socwD5LeLrYgS5pWsQnqI+mrpJHL1686d7Ue/SH8=@vger.kernel.org X-Gm-Message-State: AOJu0Yyrtu5QTjtVy2Oha4XNyFSL3TVZaZLK7ZP/EY/ENWz2I5Hdk7f1 m1i2uhLb8Ur4eqOytJOu/twqq/f3BW8cajQy4LeGDpXWJNSjQfbIPqGYhAP7l4Zl X-Gm-Gg: AR+sD11dhUKzqu8UDFDy6adb6uQJ3gqRMjZ/tgfdBzlFLVZpZCu59ulTeE9ZHTIqEc9 k/mhk98xWlbzWUi5maEhpEZ98GIxZfhQ/amyspfstvR1lLtkFVKLbEFw9/XJaUvJAkfFAwrP1Q3 00VtdkGtgPWHpivADhnEZ/ZDVvL0lun3cdFByyQAW+zsGeAoih9ppMp/kOUYFZCgpTPjjH2Leif qx9BNgTIEQFLBVLBqOTgpdETWw6l9U7bTDkFfR47eodl3nwFPkrFd4Y/J6cR7pADLAzOhco7xtn 02gqLjPfPxoD88cdOJyDCt+PDtY+IfizDlps6T5TMEoD2KMl+NIXLRhnrqVY1VD1o0L5G5x4ZQR 7V7w0fbhSdPPYyiGvjxLLfvFMb1b9xjvjs4WHpYmKfjhHjViitQfsE/6ortI7oS8u0xW5rAo7Rf Fy61S+SUxbgFLv81WD+tgkulJvDambPvhIO74K9p/H2ytkA7xac+I+aPwaB0umC8b3lWPqymODW WgbtaQOYD6PFnSY X-Received: by 2002:a17:907:db15:b0:c16:71:d9ce with SMTP id a640c23a62f3a-c2039b6ecb3mr267497366b.8.1785928438272; Wed, 05 Aug 2026 04:13:58 -0700 (PDT) Received: from localhost (c-85-228-45-68.bbcust.telenor.se. [85.228.45.68]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-c2036131747sm100419166b.13.2026.08.05.04.13.57 (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Wed, 05 Aug 2026 04:13:57 -0700 (PDT) From: Eli Billauer To: gregkh@linuxfoundation.org Cc: arnd@arndb.de, linux-kernel@vger.kernel.org, corbet@lwn.net, Eli Billauer Subject: [PATCH v5 3/7] char: xillybus: Avoid possible bandwidth inefficiency Date: Wed, 5 Aug 2026 13:13:33 +0200 Message-Id: <20260805111337.69178-4-eli.billauer@gmail.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20260805111337.69178-1-eli.billauer@gmail.com> References: <20260805111337.69178-1-eli.billauer@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: The host flow controls the payload data flow from the FPGA by sending OPCODE_SET_CHECKPOINT messages. Fix the condition for sending such a message, to correctly handle the case where leap < 0. The previous expression leap > (fifo->size >> 3) was not intended to evaluate true when leap is negative. However, due to C's integer promotion rules, leap (of s32 type) is promoted to unsigned int when compared with the unsigned fifo->size >> 3 expression. As a result, negative leap values are interpreted as large positive numbers, causing the condition to evaluate true unintentionally. Consequently, the device receives correctly formed checkpoint messages that encourage it to send data, but too frequently. This may cause the device to send short data chunks, wasting USB bandwidth. Assisted-by: Deepseek:v4-pro Kimi:K2.6 ChatGPT:GPT-5.5 Claude:Sonnet-4.6 Signed-off-by: Eli Billauer --- Notes: Changelog: ========= No change on v4->v5. No change on v3->v4. Changes v2->v3: -- Add Assisted-by tag to description No change on v1->v2. drivers/char/xillybus/xillyusb.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/char/xillybus/xillyusb.c b/drivers/char/xillybus/xillyusb.c index ee819e2e3f82..ef5b1816b277 100644 --- a/drivers/char/xillybus/xillyusb.c +++ b/drivers/char/xillybus/xillyusb.c @@ -1512,8 +1512,8 @@ static ssize_t xillyusb_read(struct file *filp, char __user *userbuf, */ if (chan->read_data_ok && - (leap > (fifo->size >> 3) || - (checkpoint_for_complete && leap > 0))) { + (leap > 0 && (leap > (fifo->size >> 3) || + checkpoint_for_complete))) { chan->in_current_checkpoint = checkpoint; rc = xillyusb_send_opcode(xdev, chan_num, OPCODE_SET_CHECKPOINT, -- 2.34.1