From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-ej1-f51.google.com (mail-ej1-f51.google.com [209.85.218.51]) (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 3BAFD41DE12 for ; Fri, 24 Jul 2026 09:44:29 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.218.51 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784886271; cv=none; b=sCK9hQnh03CUxPYR2T837hwc1r31SHk+4FeYm9F1fjFVwC4uwoFEUlv11YMtSUOTFyY/N+1QiH55ObOWuj91f77pMtqEUrBJBmBVPoK9sxQjl6YXwiFvH1D7vbO3VP3yxeeWI2qh3dgMPGugHmQy7KFJDHvRiTvgxFy4AgZe30w= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784886271; c=relaxed/simple; bh=Q6wwlMqR5T8MAIyiPqsMcBqx6CJQn+tCpRJgIXUMErU=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References; b=N7xeESOoscx0wE5NlaDmU7+NIrImQW7WodfK+4czu9m1bPNdEDYU31EzL+nqyreWWU/6tTqjOlW22AWSAG3e5HU5jpvgG0z/5wZb3LVrp9h4vEr3tIlW6gEB9fpxSh9A79LP3+L63Czany9SA9/FPGLCqXZQ2bzeG8hUPj5grSk= 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=iRIyPVIH; arc=none smtp.client-ip=209.85.218.51 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="iRIyPVIH" Received: by mail-ej1-f51.google.com with SMTP id a640c23a62f3a-c15c42a45adso194539566b.0 for ; Fri, 24 Jul 2026 02:44:28 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1784886267; x=1785491067; 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=yuc+kiQDgL6coKIxn3rsMJs58ojI9P6Kgpsrlk3FLvM=; b=iRIyPVIHp5RtaXUSSfJMxlwFdln6qj4Ma6kvt4C9AVrYeyTtkTm+LD4+4wNOvz38Tj rM7OzXnYU9wh1Sj3y7bBNFcFJeIsB6aiMZvuTF4o1xBLUNsofUwYyTi67blzxD9jZfCU xVfzQc9b4sxzRIkHp267RnqbPMji5pwf/tyCJCQMnx5ZqJt3O30RiIYl2ur70IYJEGT1 RWpoIcOnrAQP76nv5IvUtYnTGfv4OhX1QSUErMoNvVVwtTreQ+OPoNa3Ozl/EB1fMCHt C6KbvDWVOSqHX8+jJplGxytGHB2y8HFTbFRQTzs9Vdr+3QIOVU1ARXX5Do6MH3DhAOaM 7YvA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1784886267; x=1785491067; 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=yuc+kiQDgL6coKIxn3rsMJs58ojI9P6Kgpsrlk3FLvM=; b=UrwUB4rQ8Wq4Wpk4s/9vUrq686wAM89Z/ZA+qPrGwxvr3W8dUlEHIyBEDVD9ts/21a 5eWxmgc5ES68wJhGAnb4RY2SSy256JwFu7CF5iAt9Gb+WvnVkocOJjiszvSDbCiUq3bf /bUP4EbTql7CgumBrsx/8Ifj88ATGbS5JulbnW+fCOWu5uCM/f4xJUYUAuoPT2HgytyD k/qtgSR8tSjrvfQ7SotdfdgHojMVs6BtQKtCIsf5xS30MQ6SRme89LCpB+ixa+SfofxC PdVyVGJ4uwCvWW9QatVGoTed5o+PWeqOTOQPDwygtl4w2ijVs/Gqkxy+N7njPjeXj1WW sJpA== X-Forwarded-Encrypted: i=1; AHgh+RqPZ5JYRvnfSYQDK7R+bwOh5JrR77XKCqmBHvmmXhizSOWKLqgT76R/Pf+iA0Jj0cInIcWfsGdfTwpzn4I=@vger.kernel.org X-Gm-Message-State: AOJu0YxOdcTY1Xv+xnQtInvQicDgHL23d5CW1PwoVyx5svHCyoCJm8w3 xzBeRvsweokNj0QMNElY73JZVVTCsdUf1kCuHp01gu5eNKQlgkqhPVwUXVg6fDCv X-Gm-Gg: AR+sD12GY/hgYQpGO9qOGsFk0jeTPhz9A1RpRP081mHHxBWZMk8sBoFc/QSlNhIcBq9 Nt8wY+m7iTI10IybOp3qENVW+iB2NsEP4t8AXk+DE91wEKDgpxMzOSBT64LcX6Mozs135FGWoGJ whKOfpaKtfyf8yZHaepc6XlDC+PKJ0htSwP9wBSYeqkVDKRmmEh70sfty1/RGzece0/HTPybvms 5AMhzU6inE/osB4qgV9eUo2t+5Ot0APGcQtMv9oRMd4/PoSEjBeXBXdYCScSAYl+hxja0Foy755 LIXhigYg1CrTonh1yrPmxpP4mnA1T3S7JYf5kNY073GiVE3seI7/CWT8QYQkmD3HVe/e7q+3eMZ R5dLYwX8sARKyoZ6lRXdPBFdKFqeqcSmeZ8noMY3zvmD+VNOMN1tscR4kZTes0rGh6LYfjyo1jp RKjiZvOnhr0qkXcrutXh6mCvyy8mzXDQ== X-Received: by 2002:a17:906:f596:b0:c16:64e3:945a with SMTP id a640c23a62f3a-c1c537c48d5mr291002866b.25.1784886266825; Fri, 24 Jul 2026 02:44:26 -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-c1c32f1127fsm327406566b.55.2026.07.24.02.44.26 (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Fri, 24 Jul 2026 02:44:26 -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 v3 3/7] char: xillybus: Avoid possible bandwidth inefficiency Date: Fri, 24 Jul 2026 11:42:58 +0200 Message-Id: <20260724094302.50761-4-eli.billauer@gmail.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20260724094302.50761-1-eli.billauer@gmail.com> References: <20260724094302.50761-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: 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 ab5f9159aa17..7d2434c02fa7 100644 --- a/drivers/char/xillybus/xillyusb.c +++ b/drivers/char/xillybus/xillyusb.c @@ -1507,8 +1507,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