Received: by 2002:ac0:a5b6:0:0:0:0:0 with SMTP id m51-v6csp21950imm; Thu, 31 May 2018 17:35:39 -0700 (PDT) X-Google-Smtp-Source: ADUXVKJ05Aw2CyHZT3lSSU8Cr9egefx3B2H+o39QbGNJUrQqam4g2T1p6EZT0VpACvCGc5ja4JIy X-Received: by 2002:a17:902:3124:: with SMTP id w33-v6mr4451720plb.235.1527813339507; Thu, 31 May 2018 17:35:39 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1527813339; cv=none; d=google.com; s=arc-20160816; b=gX0bwiR/AwLo1WsFRrCukaaKJeeuS35+6y5KTws6UD9wVYnhkuecwATl+HqItiBiW5 wAOZqA6cKBVbPJN/uGd1zPof+/37ZUUlr4oJBN7nZREbAjJB6K8npNyBVFXUQajm3VNp eL/kmmgfm9R6xGBdOJJ7MfdvfLTBNhtTJtsY9KsYOvEDbmXB6uzedDTdbDncnJnl/xpn o3tlsbAHSGUiLsxI7g3JiK0mQ1060wHKjU+S9G/xWMC1C5EvgrxuRRfpDbaJGc7aaBtH jUgjvLYJesZTKUForoq9inUMqxDfLbzHt5ZFX2l9OM0j1KDLuz2GcfRAufSlVFHqS9q2 f93Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :references:in-reply-to:date:cc:to:from:subject:message-id :dkim-signature:dkim-signature:arc-authentication-results; bh=dWbENWJwqWsBPeg95XR6n2ST8nptUnfLGGu4jg1I+BE=; b=e4hRPEOm/Dz0NNQ9fmJE42ZHVUpHJzYlVI6EWPmchZ3wXT5CyzrGNB4EhXDFdhy2Ge xx8gTJAwr/1bS+pwFnrqdfx7hWmjg5Y+aPZSnZYByjTB/kJ/A5Qxqg0XsZit8vsegz3r NLghyRt3QoiK3v/2Drbl4WZ1gvxhp3zNdODNqKMCMZt2mOL8m3kP1qNpSbmF6othp/JO pojnKwEkv8mikFOz3cJLN9lMD3BrKZe2qOX8f35mznyOJawPA/fn6jUVXYUwE6/rQl+C Uk2MQn1AZuZDnTcvnscP+uGUx8t2wCrAXiyUKYzAr5ENzssLznUwmj598akgDdZCx6Vg 0DXg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@mendozajonas.com header.s=fm3 header.b=V7/QDhnY; dkim=pass header.i=@messagingengine.com header.s=fm2 header.b=LDvYXKWE; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id f39-v6si37684842plb.572.2018.05.31.17.35.25; Thu, 31 May 2018 17:35:39 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@mendozajonas.com header.s=fm3 header.b=V7/QDhnY; dkim=pass header.i=@messagingengine.com header.s=fm2 header.b=LDvYXKWE; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751352AbeFAAdh (ORCPT + 99 others); Thu, 31 May 2018 20:33:37 -0400 Received: from out1-smtp.messagingengine.com ([66.111.4.25]:51613 "EHLO out1-smtp.messagingengine.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751031AbeFAAdf (ORCPT ); Thu, 31 May 2018 20:33:35 -0400 Received: from compute2.internal (compute2.nyi.internal [10.202.2.42]) by mailout.nyi.internal (Postfix) with ESMTP id 6D37F21C1E; Thu, 31 May 2018 20:33:34 -0400 (EDT) Received: from mailfrontend2 ([10.202.2.163]) by compute2.internal (MEProxy); Thu, 31 May 2018 20:33:34 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= mendozajonas.com; h=cc:content-transfer-encoding:content-type :date:from:in-reply-to:message-id:mime-version:references :subject:to:x-me-sender:x-me-sender:x-sasl-enc; s=fm3; bh=dWbENW JwqWsBPeg95XR6n2ST8nptUnfLGGu4jg1I+BE=; b=V7/QDhnYoOVRmPILLAr5Ku 1Zr+JUXj57RMODQ91c01HRNw72DfWcAAC844N4JgN63a/bem735hEntcbJNf8NPX cIGx9ZAN4RfFitzkfTAQ6jKUOT/a6v8RzW2yDM83MkF9k0Q0dR0x5hY3qHroWyiN 5inSPDy9QDfeEzqQgpu4ucNo6Lak4R49qz6rHG8QCmGYyXBDOznMGipp11TGzYZH lSyUhGlJP7g8z+t9Lq6NiKCYks1Z78lvOqIaOE8SampmSsVgnyGc59nqhSzZampJ OdAoK8Avx4qRBDP44Pb8aAy3MJv5DxA8C9VYdUUfUD+C15QKrJg2z9OyN+q6DaGA == DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:content-transfer-encoding:content-type :date:from:in-reply-to:message-id:mime-version:references :subject:to:x-me-sender:x-me-sender:x-sasl-enc; s=fm2; bh=dWbENW JwqWsBPeg95XR6n2ST8nptUnfLGGu4jg1I+BE=; b=LDvYXKWEchwwb6BRa/MojV W0DlTF8x2WgmnRrq1A2YfnMxrxI+OWpYu61ETbBTmAFFjeSDG+jpqkyQNHdGHz0q tKVvo6Ml0Bdhwn8oix9JheiSZCWpNgVTf8/RF10ybcwjJ+4x9GQbMQVOjG7u1Mt8 tQYtH8aaKYI8UKsWZNKRUCtBl2a5p37JEbeFM9AcYI6sGOl8SDopqXymrUsaHa/H V+FalTTsipo1ohBh7NDRxmPu58AWFgvr0ye373o2r98t1pkfQVS04OQELnAGHnM6 u8G2IQiMuQPdYdnrPgDoYm6FhE9RwQEPMlZcEzUbJuzfIUQMNAgHXgX6pBF+ECYg == X-ME-Proxy: X-ME-Proxy: X-ME-Proxy: X-ME-Proxy: X-ME-Proxy: X-ME-Proxy: X-ME-Sender: Received: from v4 (unknown [122.99.82.10]) by mail.messagingengine.com (Postfix) with ESMTPA id 0FCDC10262; Thu, 31 May 2018 20:33:31 -0400 (EDT) Message-ID: Subject: Re: [PATCH net-next] net/ncsi: Avoid GFP_KERNEL in response handler From: Samuel Mendoza-Jonas To: Eric Dumazet , netdev@vger.kernel.org Cc: "David S . Miller" , linux-kernel@vger.kernel.org, openbmc@lists.ozlabs.org Date: Fri, 01 Jun 2018 10:33:27 +1000 In-Reply-To: <69fcb143-00a2-2ddf-e2d4-c692b650f292@gmail.com> References: <20180531070254.28878-1-sam@mendozajonas.com> <69fcb143-00a2-2ddf-e2d4-c692b650f292@gmail.com> Content-Type: text/plain; charset="UTF-8" X-Mailer: Evolution 3.28.2 Mime-Version: 1.0 Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Thu, 2018-05-31 at 04:50 -0400, Eric Dumazet wrote: > > On 05/31/2018 03:02 AM, Samuel Mendoza-Jonas wrote: > > ncsi_rsp_handler_gc() allocates the filter arrays using GFP_KERNEL in > > softirq context, causing the below backtrace. This allocation is only a > > few dozen bytes during probing so allocate with GFP_ATOMIC instead. > > > > Hi Samuel > > You forgot to add > > Fixes: 062b3e1b6d4f ("net/ncsi: Refactor MAC, VLAN filters") > > size = (rsp->uc_cnt + rsp->mc_cnt + rsp->mixed_cnt) * ETH_ALEN; > > -> seems to be able to reach more than few dozen bytes... Hi Eric, The NCSI spec (at least in the v1.1.0 version I'm looking at) sets the total number of MAC address filters at 8, so we would be looking at a maximum of 8 * ETH_ALEN = 48 bytes. That said it shouldn't be too arduous to move the allocation to later in the probe/configure cycle so if needed we could do that. > > Also, what prevents ncsi_rsp_handler_gc() to be called multiples times ? > > nc->mac_filter.addrs & nc->vlan_filter.vids would be re-allocated and memory would leak. > Good point, we should put a check there just in case to see if it's allocated. We should be safe though as ncsi_rsp_handler_gc() should only be called via ncsi_probe_channel() which only happens through ncsi_start_dev(), and addrs/vids is cleaned up in ncsi_remove_channel(). Rogue packets shouldn't hit the ncsi_rsp_handler_gc() handler without an outstanding request.. but it probably is safer to check regardless. Regards, Sam