From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-ed1-f43.google.com (mail-ed1-f43.google.com [209.85.208.43]) (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 A688B3C199B for ; Wed, 5 Aug 2026 09:35:46 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.208.43 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1785922548; cv=none; b=N91UYEJWEBGTSyyiUAS8eGZfOnvlm7uWqTBuuq4TCuzEgQSWdA5fSm8k/0YEASWAXk9yhS+IvRM5PkRd+NaMCKqLCulDgs0NAFsn8Hfky5KZt0f4KmXoAdZY2SoUj5BiWRhR5GmjTwYfbfC8nb+tdt/t3+j8lNz/qZqTcS1JU/8= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1785922548; c=relaxed/simple; bh=nlAx5fsu2AHnSkBpEdoinWcuL6oav9jolzSmj/atocg=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References; b=plOTsXBZf2yLlje8Vr6s2XpVu3f9oD5iLUoOzpBT04d/TYqfpTsOyf/H9KjVzV/B1V/sljEm57x0Kkyzz6q2LdM+J3glxKsYFKSIyniOvhGFMvOS25qrFmcjYrU/IOD9aKYyXS3H9sYIE/h/j0SwpydfA8/SeuNdwKqJnuQ8xNE= 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=H1M3I00q; arc=none smtp.client-ip=209.85.208.43 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="H1M3I00q" Received: by mail-ed1-f43.google.com with SMTP id 4fb4d7f45d1cf-6a082b3671fso924081a12.3 for ; Wed, 05 Aug 2026 02:35:46 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1785922545; x=1786527345; 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=YpYDoGADK8xl8Xh4EpfREYz6Ppfbb5MMZKbEyqLs/H0=; b=H1M3I00qOkvl0wqfiihvG1jjqL3M9b5tnXL6lk6ZHnfh/VGcUdbo+PdpTuR7qqPjiq JQx5UdEfMzbQykkmQEGJIZ2uuXk8XUHbL55MOk/uh8Amq0vtcmLulIq517hPVWOY5BXw H02lktNNe4tz/TkWjKiZda+z0dsyxJzWpnTvgpZQN/BxrEB/SpWBz1xU+tJbTxMG0zYi tA5wVfRPi4wCN4/+tRRKnfcwR4DcpO907e9Psi2I1EZoZIz6su87bn4P4OV2ukk26SWM vRJas4+gxyOXbUaA2b7abyB91QKDE0ijxcc3swup7ccxRAdE6ftxlSiaD8/NRU05adLG RBOA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1785922545; x=1786527345; 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=YpYDoGADK8xl8Xh4EpfREYz6Ppfbb5MMZKbEyqLs/H0=; b=WE5+sk+5Exn0XIlB6Nna9R0wTEHnb886l7CaNxKbjHGVOgMBn6jPwz5VdCFGcDhxqV iiydt42ndCXyHlcFVoJqasb7VPFrlR4hin+DGYJfzPPV5SE845vYtETpSEJKhCFyO7qT DFPkCDmY1A/UvZ6oE5x5jumtBJv+imuCTLC8JGpzFu5ILp9wX/PrEAOjHYyq5787b5fc F6o0LD8ac2v3f+cN3+deBJ+ivxdPICTknPhm80q56KPdJ1a9sOSIg6HW5Evn2D/tB5JK JIlZHHT9NtVy8wN2811f+igOxXkim9EDzYvfqxeYCQGB9eei/0vlT6yifKYUP4+p9CKr 8ASg== X-Forwarded-Encrypted: i=1; AHgh+RojAuJprwoMGsa6IympgrjTbU7S4Zt3TUUZVA5zsimRRqJCBeJvuiziZ4/byah5Rn2gsb/WIyyDVxrJBdU=@vger.kernel.org X-Gm-Message-State: AOJu0YyBxZESerzpf4ihS1/ABNR5/Z+zHXUB2Zkvi1o3j61FqfrFWwxr a1TXxao74HvTxgDJTn5w6KgBnOoLbyVfot/qo9AYpwI4ycXG13D7fupN X-Gm-Gg: AR+sD137+0syjmGx4+WQxwZaq0mHShGlcxF9SZaz6bgq2GPyDhDECmBfyPGcr4J0Cov i09q+qANnD93lkSR7j01duTV7IeJo2piOLR3HVRg/7+CaYfaG23vn5PHaEWjL6BZkrbb0q2otMp JH/+zoBxCVQEj5NQFA9FasNM4WR3ujVyIcJop1ECtHyVX761T1xWmmBxT8Ebi7DcYgLxtiZZjbF itekzRkAarAeo0VX2hwZgtZLwwc7hkWoRH3YcQEY6OaSdHHXfanGNNSvxiVcoLMShrRvWj0+r58 lEsqRBJ4azHL0eGeZWMshZ4qwrN7eaui1U5WZtPr8/+C/nPavQNsqAanAsr3Y5d0gW8AF8K5vYF hvfcFThpVy4VM5vtvFLekcf3pUQoasH/g2T2NMZ/igD6dGDBH00AHmMsol//BZMYQDT+8Yb5nce JDgHanKKTZ72/NNjguvHKQO5bfQ3ZGNE/97vpVT/zNIyTzz+kpjVDAN/gclVb53Ns7OzWaw304V rNBsxjfupRtgg6Qb2uyXK1u9STN X-Received: by 2002:a05:6402:5045:b0:6a1:2863:ad75 with SMTP id 4fb4d7f45d1cf-6a14f12f0c3mr2568258a12.13.1785922544822; Wed, 05 Aug 2026 02:35:44 -0700 (PDT) Received: from localhost (c-85-228-45-68.bbcust.telenor.se. [85.228.45.68]) by smtp.gmail.com with ESMTPSA id 4fb4d7f45d1cf-6a145c27d7bsm1667402a12.4.2026.08.05.02.35.44 (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Wed, 05 Aug 2026 02:35:44 -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 v4 3/7] char: xillybus: Avoid possible bandwidth inefficiency Date: Wed, 5 Aug 2026 11:34:32 +0200 Message-Id: <20260805093436.59740-4-eli.billauer@gmail.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20260805093436.59740-1-eli.billauer@gmail.com> References: <20260805093436.59740-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 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