Received: by 2002:a05:7412:8d10:b0:f3:1519:9f41 with SMTP id bj16csp4759990rdb; Tue, 12 Dec 2023 08:34:19 -0800 (PST) X-Google-Smtp-Source: AGHT+IGENdjF5CAq+1kfVb59zbJBV6bVcBeuxho+BqSJ89/Bs9CIXc0vu7c+yOBiKciLKejU14fc X-Received: by 2002:a05:6a20:2583:b0:18c:3a58:fcd3 with SMTP id k3-20020a056a20258300b0018c3a58fcd3mr8393145pzd.23.1702398858882; Tue, 12 Dec 2023 08:34:18 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1702398858; cv=none; d=google.com; s=arc-20160816; b=ye0aXdfGLF1mSmtdOeiDuGD3ycFViEXONqO1c+KfoO+a3rZ7WBkDnD0f573I8KqVKA xVTKHH0XkBK5UOomExlYLZg8n5Or/s6+yY59aF0tW8505DetwOfepiYJLtELhrP1cluA juJQls3RaJNWSQA476bQ0yRvH3pFguLKs/YwJ1/BzZ6Yr+suYEUlPO6rurQ1OLMTcSQQ TbohMelk8u2QrGoEcHxnSAZbqW12atfqvGP4vxesG5TgVcTDISX1EsxzxHKQkB4PN2Iu Jlfumuz0tY8k+iFU6dCWKDftkk2nqk3FzL7rAKAaGYGZLeO906pp9dxIcNXoY0lbCDQm XaMg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:in-reply-to:content-disposition:mime-version :references:message-id:subject:cc:to:from:date:dkim-signature; bh=tQQid16GHvnaAbZDXuQkDV5jUsLgdBWxDY6lNDo1oPs=; fh=OwXcg9ISoljfTHJtrwv7JxKeLbalhIuc1zYTTXfXwMo=; b=xw1w0l3zvkrsisyIOnwZ/Xo9QzbUTrPedU7hvOI1lMY9HAvWxYoNdAErfbZGtIIiZu nOboo4JkLW0SzaVCK+JhRNVkJOJXEim04TQwu4NOfm72+xDhtjACZLHC89BXKpt9gT9F MFJvbPfTBskl0mKDX06myS4lB0ssBTlUaZO8CR3VbbZrjt/B8RwwRthrXEm++GJcB7BB lC/Pk8jBVL+dZoT/wCHx5u8qER/JuNWAdK59/tWCxGk689xIQVw2caEGD9vv5IoFM/13 iseG55/3siTRmXj/nEZsw8uYhKQ++MUblNQX4gEnjDjs9Vnze70qTjLO3BXKFiSevD/I TMmQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20230601 header.b=H9sQ8j1f; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:1 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from morse.vger.email (morse.vger.email. [2620:137:e000::3:1]) by mx.google.com with ESMTPS id e6-20020a654786000000b005c663eae379si7738015pgs.269.2023.12.12.08.34.18 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 12 Dec 2023 08:34:18 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:1 as permitted sender) client-ip=2620:137:e000::3:1; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20230601 header.b=H9sQ8j1f; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:1 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by morse.vger.email (Postfix) with ESMTP id 8E342801BA4E; Tue, 12 Dec 2023 08:34:16 -0800 (PST) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.11 at morse.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232702AbjLLQd6 (ORCPT + 99 others); Tue, 12 Dec 2023 11:33:58 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:41756 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232498AbjLLQd6 (ORCPT ); Tue, 12 Dec 2023 11:33:58 -0500 Received: from mail-yw1-x112d.google.com (mail-yw1-x112d.google.com [IPv6:2607:f8b0:4864:20::112d]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 9CA53CA; Tue, 12 Dec 2023 08:34:04 -0800 (PST) Received: by mail-yw1-x112d.google.com with SMTP id 00721157ae682-5e266e8d39eso2066937b3.1; Tue, 12 Dec 2023 08:34:04 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1702398844; x=1703003644; darn=vger.kernel.org; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:from:to:cc:subject:date:message-id:reply-to; bh=tQQid16GHvnaAbZDXuQkDV5jUsLgdBWxDY6lNDo1oPs=; b=H9sQ8j1fiRZpYcqEEIN8G5ISwagxt8ZN/q5pDUYNwLbeBdWwX6MgQ1O0FpsbFnrB2N yy4Sx54ERsaIl4ZEP+JkNZyrfZvkM8kuGvWFzOLLDtzJjjLFf/4XZY8AKKR2zQ8eimCp 154KRylzd4H0tiaohrch0AwttZhjLcZyiI0CQuCLyb6UzK8IiRa8mWs11PBNzPvimY/Q 7sluQhhMxxnKcnEiYQjqsEm0DyD7aSA9fyWIDSlFRBVRQDUNV01Fe+Sc3GLDPX8tTpNP F6zGndn8woOXwbcyiHSwiOrjMvlaqODX03iIeqGiWuRY464fv+252Tn30dEVpmhSKHyW 4afg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1702398844; x=1703003644; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=tQQid16GHvnaAbZDXuQkDV5jUsLgdBWxDY6lNDo1oPs=; b=GKx40R6aBIS0Qxe80kLOh3JCVQvUE0R9lxa3Qw6em26JmlfwakU1zDaIr30qidSjHC apTfw11LGqbYoNGViQB87Khn8IC7hBuQUwo7c8Cs7x82uE4qqwgsxBpVBLajw273ZKWx xRP4GOwBYo+k+/B1LORmyFIMmoF/5Po9GSqPvdOYzfmzn6T11NzlEDbzOSBgAUpJNM5b nhkiNofPFUT2/oy15oLmxEqb+P8ji0IePgSWJ0dzHehA40Qqepp++WY9q7fy4isTxqS2 s0qcPnIoxHmCazClpP5jWwTB+8f2Ufv5/VDrNtU0h3x6a5OPq722AVshoerAnVdCTflT 42Gg== X-Gm-Message-State: AOJu0YzbXxx6aT7Cay2ArQ/XuNSig0qQOu1f4i496eFA1a7HZYNSMvX/ Bk/UKtVYqkADEKyc2f2qA5tYvk1PCz9VrQ== X-Received: by 2002:a0d:e28e:0:b0:5d3:37fe:54ce with SMTP id l136-20020a0de28e000000b005d337fe54cemr5304212ywe.8.1702398843573; Tue, 12 Dec 2023 08:34:03 -0800 (PST) Received: from localhost ([2601:344:8301:57f0:38aa:1c88:df05:9b73]) by smtp.gmail.com with ESMTPSA id d63-20020a0ddb42000000b005845e6f9b50sm566704ywe.113.2023.12.12.08.34.02 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 12 Dec 2023 08:34:02 -0800 (PST) Date: Tue, 12 Dec 2023 08:34:02 -0800 From: Yury Norov To: Souradeep Chakrabarti Cc: kys@microsoft.com, haiyangz@microsoft.com, wei.liu@kernel.org, decui@microsoft.com, davem@davemloft.net, edumazet@google.com, kuba@kernel.org, pabeni@redhat.com, longli@microsoft.com, leon@kernel.org, cai.huoqing@linux.dev, ssengar@linux.microsoft.com, vkuznets@redhat.com, tglx@linutronix.de, linux-hyperv@vger.kernel.org, netdev@vger.kernel.org, linux-kernel@vger.kernel.org, linux-rdma@vger.kernel.org, schakrabarti@microsoft.com, paulros@microsoft.com Subject: Re: [PATCH V5 net-next] net: mana: Assigning IRQ affinity on HT cores Message-ID: References: <1702029754-6520-1-git-send-email-schakrabarti@linux.microsoft.com> <20231211063726.GA4977@linuxonhyperv3.guj3yctzbm1etfxqx2vob5hsef.xx.internal.cloudapp.net> <20231212113856.GA17123@linuxonhyperv3.guj3yctzbm1etfxqx2vob5hsef.xx.internal.cloudapp.net> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20231212113856.GA17123@linuxonhyperv3.guj3yctzbm1etfxqx2vob5hsef.xx.internal.cloudapp.net> X-Spam-Status: No, score=-0.6 required=5.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,SPF_HELO_NONE, SPF_PASS,T_SCC_BODY_TEXT_LINE autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on morse.vger.email Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.6.4 (morse.vger.email [0.0.0.0]); Tue, 12 Dec 2023 08:34:16 -0800 (PST) > > > > > + rcu_read_lock(); > > > > > + for_each_numa_hop_mask(next, next_node) { > > > > > + cpumask_andnot(curr, next, prev); > > > > > + for (w = cpumask_weight(curr), cnt = 0; cnt < w; ) { > > > > > + cpumask_copy(cpus, curr); > > > > > + for_each_cpu(cpu, cpus) { > > > > > + irq_set_affinity_and_hint(irqs[i], topology_sibling_cpumask(cpu)); > > > > > + if (++i == nvec) > > > > > + goto done; > > > > > > > > Think what if you're passed with irq_setup(NULL, 0, 0). > > > > That's why I suggested to place this check at the beginning. > > > > > > > irq_setup() is a helper function for mana_gd_setup_irqs(), which already takes > > > care of no NULL pointer for irqs, and 0 number of interrupts can not be passed. > > > > > > nvec = pci_alloc_irq_vectors(pdev, 2, max_irqs, PCI_IRQ_MSIX); > > > if (nvec < 0) > > > return nvec; > > > > I know that. But still it's a bug. The common convention is that if a > > 0-length array is passed to a function, it should not dereference the > > pointer. > > > I will add one if check in the begining of irq_setup() to verify the pointer > and the nvec number. Yes you can, but what for? This is an error anyways, and you don't care about early return. So instead of adding and bearing extra logic, I'd just swap 2 lines of existing code.