Received: by 2002:a05:7412:8d09:b0:fa:4c10:6cad with SMTP id bj9csp476815rdb; Tue, 16 Jan 2024 06:23:54 -0800 (PST) X-Google-Smtp-Source: AGHT+IEV133CRsUJ1c/6jG1GTjdSPaBFtLJmXZD/iOlOg9d7HVidbqlIJINCjCO6oNlNZa2I55mq X-Received: by 2002:a05:6122:2206:b0:4b6:d4a0:5841 with SMTP id bb6-20020a056122220600b004b6d4a05841mr3818066vkb.6.1705415034263; Tue, 16 Jan 2024 06:23:54 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1705415034; cv=none; d=google.com; s=arc-20160816; b=gCFSofG3vKIc3vFgWTGNNwe2+DPcxp7XCkhzpkImQ2CCoX/BJSBlTjB2MiUahekvNo RnOPPRiXbhHSK1R0RW1+Wpcq0lR98P0FxzXAWZqqel9Tvu1ebEjItMWL6eqhyl6NlhjV 20DxJlPuqNZOGFB5Y8BzJ3BCZY60EVEzgd8+g1VZTPU/XA3j3u6rcrLx+wK8P35C31Kw rqt0/AeKYubh5CmtkxZky/T2phmqBKFluExEFjjUKPr84eKLYn0KlpYuvWYwG0j3OqgU qmOLkrdWUbnhyrh1yzyYZG/niXt8X781XjqKPBPXgnByUjpnZPvMQtmnvf5t4JvQi2lO k1NQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:mime-version:list-unsubscribe :list-subscribe:list-id:precedence:message-id:date:subject:cc:to :from:dkim-signature; bh=pkEZBqewq9VevcH4Bvsfs1qRfkxaqgLqqwS4jZ98QL4=; fh=AuQnn2eKGHPpl8QL6bzEE3QEZpTGVMFclHLA5TmL0lM=; b=m/bUkgCj+4CbvJWCNXtGp0JoDBZhORGcB24jo5AyJq+p2omDw2CW15i+Nom01hPTrS J92amlqDnSa/zA8cHkDAYNbLvt5br5uIVdop9iazpMs445SHVT1QqLcXm0iAH60JFdA6 mwEASMpFC38sqxNKiKBJfTyam8/qIKWl8xM6IN5QgRzeZLY86sn8LcZMjyVs7gLyKePD WSJzx6x6g/WjNj+Y17GadhtQP8ifNUMfclNLqAwqwjVus85yGaQ7U6lzGQy38/k/TvdW 9JQjjiP7yAq4emG7MGyBvODGYvNQrzUvSUuKP5w8kKPJtgg2+gGOmKqeuRdlGDpuugLu prUA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20230601 header.b=kdxDb6SH; spf=pass (google.com: domain of linux-wireless+bounces-1982-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:45d1:ec00::1 as permitted sender) smtp.mailfrom="linux-wireless+bounces-1982-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from ny.mirrors.kernel.org (ny.mirrors.kernel.org. [2604:1380:45d1:ec00::1]) by mx.google.com with ESMTPS id h1-20020a05620a400100b007836d296038si711619qko.171.2024.01.16.06.23.54 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 16 Jan 2024 06:23:54 -0800 (PST) Received-SPF: pass (google.com: domain of linux-wireless+bounces-1982-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:45d1:ec00::1 as permitted sender) client-ip=2604:1380:45d1:ec00::1; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20230601 header.b=kdxDb6SH; spf=pass (google.com: domain of linux-wireless+bounces-1982-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:45d1:ec00::1 as permitted sender) smtp.mailfrom="linux-wireless+bounces-1982-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ny.mirrors.kernel.org (Postfix) with ESMTPS id D341A1C23529 for ; Tue, 16 Jan 2024 14:23:53 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 2F8091BF23; Tue, 16 Jan 2024 14:23:53 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="kdxDb6SH" X-Original-To: linux-wireless@vger.kernel.org Received: from mail-lj1-f179.google.com (mail-lj1-f179.google.com [209.85.208.179]) (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 87DE51BF22 for ; Tue, 16 Jan 2024 14:23:51 +0000 (UTC) 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 Received: by mail-lj1-f179.google.com with SMTP id 38308e7fff4ca-2cd5b467209so96793561fa.3 for ; Tue, 16 Jan 2024 06:23:51 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1705415029; x=1706019829; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=pkEZBqewq9VevcH4Bvsfs1qRfkxaqgLqqwS4jZ98QL4=; b=kdxDb6SHWxWU4RbRKcCMZyqEkbcpj+qLRFVA//7XVzvZc9LrOAJK1mY6CwJKGYbasI D4q9O2VEOACT2vC1hBboHEsHWsdYxLFPWTpQ25O1soP6+InZe/Jyn4c0FObA0OkAp0tY rGFs6iFUGOE6RDl1eZxW9hu+7aF7by6z49CR545fcAKzD1hDbwBD79VhQT1PDeOOHBG9 WOXaSN/LXrxepxPPryOImp9SE7Wfpvxcd23GC/rWCU/an/j5fMcxDoAj9lWII72OUtut yoR6wOypYB1YGksoAD5qBgSRlyYGE8tIICjalTmXPdO0lChIe+O8l1re6Tfu1mw1Wgjn gndw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1705415029; x=1706019829; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=pkEZBqewq9VevcH4Bvsfs1qRfkxaqgLqqwS4jZ98QL4=; b=b9a/PZrmWTScrstKdctfcdJBwmloxhD3vAmj146W0zwEL6Kcj+bqOVwkAOwKI/BaN/ qcG2vfM0q+j9iXLiNG78w5AIQem/S0bvkcTAdPEPEx7gzTrEBg+xnYnfRx7IAyyazCl/ eEWhkp5Hk3X0E0NEmppnC0G68m74GF4/7uUq7pF23NJyWEzkzKVZ1+imCohc6VQRi+hW lgKJzroFQIUtcWbplf4ADevUu+Kg6u92G2VSRQ5WWzsr+xE58fFwTKzrZfr/xokhmN/Q +5zKRFKz0egoh4Ih2fH7TQiozwYaZEUTljsjq7TJvqEI4l6DRShWT1nWYGwArDQE6Dbg p9/Q== X-Gm-Message-State: AOJu0YyR8fboiCr4eqjBqiH+zXLCyTcy4PoHvc0h2/C87dZdhlAxrAfV 8XPXmSyZGWHTvfm+6L45A6HHJyFRJ9zGrg== X-Received: by 2002:a05:651c:1075:b0:2cc:7db2:acb6 with SMTP id y21-20020a05651c107500b002cc7db2acb6mr3218419ljm.7.1705415028965; Tue, 16 Jan 2024 06:23:48 -0800 (PST) Received: from pl-pxe-build-1.pl.plumewifi.com ([2a03:4b00:0:4:305d:2ec7:b750:b37b]) by smtp.gmail.com with ESMTPSA id f11-20020a2e918b000000b002cd5624c1f8sm1609402ljg.109.2024.01.16.06.23.48 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 16 Jan 2024 06:23:48 -0800 (PST) From: Michal Kazior To: linux-wireless@vger.kernel.org Cc: Michal Kazior Subject: [PATCH] wifi: cfg80211: fix missing interfaces when dumping Date: Tue, 16 Jan 2024 14:22:57 +0000 Message-ID: <20240116142340.89678-1-kazikcz@gmail.com> X-Mailer: git-send-email 2.42.0 Precedence: bulk X-Mailing-List: linux-wireless@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit From: Michal Kazior The nl80211_dump_interface() supports resumption in case nl80211_send_iface() doesn't have the resources to complete its work. The logic would store the progress as iteration offsets for rdev and wdev loops. However the logic did not properly handle resumption for non-last rdev. Assuming a system with 2 rdevs, with 2 wdevs each, this could happen: dump(cb=[0, 0]): if_start=cb[1] (=0) send rdev0.wdev0 -> ok send rdev0.wdev1 -> yield cb[1] = 1 dump(cb=[0, 1]): if_start=cb[1] (=1) send rdev0.wdev1 -> ok // since if_start=1 the rdev0.wdev0 got skipped // through if_idx < if_start send rdev1.wdev1 -> ok The if_start needs to be reset back to 0 upon wdev loop end. The problem is actually hard to hit on a desktop, and even on most routers. The prerequisites for this manifesting was: - more than 1 wiphy - a few handful of interfaces - dump without rdev or wdev filter I was seeing this with 4 wiphys 9 interfaces each. It'd miss 6 interfaces from the last wiphy reported to userspace. Signed-off-by: Michal Kazior --- net/wireless/nl80211.c | 1 + 1 file changed, 1 insertion(+) diff --git a/net/wireless/nl80211.c b/net/wireless/nl80211.c index 60877b532993..b09700400d09 100644 --- a/net/wireless/nl80211.c +++ b/net/wireless/nl80211.c @@ -4020,6 +4020,7 @@ static int nl80211_dump_interface(struct sk_buff *skb, struct netlink_callback * } wiphy_unlock(&rdev->wiphy); + if_start = 0; wp_idx++; } out: -- 2.42.0