{"id":810407,"url":"http://patchwork.ozlabs.org/api/patches/810407/?format=json","web_url":"http://patchwork.ozlabs.org/project/openbmc/patch/20170906055559.14474-1-sam@mendozajonas.com/","project":{"id":56,"url":"http://patchwork.ozlabs.org/api/projects/56/?format=json","name":"OpenBMC development","link_name":"openbmc","list_id":"openbmc.lists.ozlabs.org","list_email":"openbmc@lists.ozlabs.org","web_url":"http://github.com/openbmc/","scm_url":"","webscm_url":"","list_archive_url":"","list_archive_url_format":"","commit_url_format":""},"msgid":"<20170906055559.14474-1-sam@mendozajonas.com>","list_archive_url":null,"date":"2017-09-06T05:55:59","name":"net/ncsi: Don't assume last available channel exists","commit_ref":null,"pull_url":null,"state":"accepted","archived":true,"hash":"670e1c5baed75eeee0e8220719494554e6905959","submitter":{"id":68013,"url":"http://patchwork.ozlabs.org/api/people/68013/?format=json","name":"Sam Mendoza-Jonas","email":"sam@mendozajonas.com"},"delegate":null,"mbox":"http://patchwork.ozlabs.org/project/openbmc/patch/20170906055559.14474-1-sam@mendozajonas.com/mbox/","series":[{"id":1701,"url":"http://patchwork.ozlabs.org/api/series/1701/?format=json","web_url":"http://patchwork.ozlabs.org/project/openbmc/list/?series=1701","date":"2017-09-06T05:55:59","name":"net/ncsi: Don't assume last available channel exists","version":1,"mbox":"http://patchwork.ozlabs.org/series/1701/mbox/"}],"comments":"http://patchwork.ozlabs.org/api/patches/810407/comments/","check":"pending","checks":"http://patchwork.ozlabs.org/api/patches/810407/checks/","tags":{},"related":[],"headers":{"Return-Path":"<openbmc-bounces+incoming=patchwork.ozlabs.org@lists.ozlabs.org>","X-Original-To":["incoming@patchwork.ozlabs.org","openbmc@lists.ozlabs.org"],"Delivered-To":["patchwork-incoming@bilbo.ozlabs.org","openbmc@lists.ozlabs.org"],"Received":["from lists.ozlabs.org (lists.ozlabs.org [IPv6:2401:3900:2:1::3])\n\t(using TLSv1.2 with cipher ADH-AES256-GCM-SHA384 (256/256 bits))\n\t(No client certificate requested)\n\tby ozlabs.org (Postfix) with ESMTPS id 3xnCWS1mJSz9sBd\n\tfor <incoming@patchwork.ozlabs.org>;\n\tWed,  6 Sep 2017 15:56:20 +1000 (AEST)","from lists.ozlabs.org (lists.ozlabs.org [IPv6:2401:3900:2:1::3])\n\tby lists.ozlabs.org (Postfix) with ESMTP id 3xnCWS0MVNzDrKk\n\tfor <incoming@patchwork.ozlabs.org>;\n\tWed,  6 Sep 2017 15:56:20 +1000 (AEST)","from out1-smtp.messagingengine.com (out1-smtp.messagingengine.com\n\t[66.111.4.25])\n\t(using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits))\n\t(No client certificate requested)\n\tby lists.ozlabs.org (Postfix) with ESMTPS id 3xnCWD63kyzDrJ7\n\tfor <openbmc@lists.ozlabs.org>; Wed,  6 Sep 2017 15:56:07 +1000 (AEST)","from compute2.internal (compute2.nyi.internal [10.202.2.42])\n\tby mailout.nyi.internal (Postfix) with ESMTP id 0FABD20D9F;\n\tWed,  6 Sep 2017 01:56:05 -0400 (EDT)","from frontend2 ([10.202.2.161])\n\tby compute2.internal (MEProxy); Wed, 06 Sep 2017 01:56:05 -0400","from v4.ozlabs.ibm.com (unknown [122.99.82.10])\n\tby mail.messagingengine.com (Postfix) with ESMTPA id D7B81243C8;\n\tWed,  6 Sep 2017 01:56:03 -0400 (EDT)"],"Authentication-Results":["ozlabs.org; dkim=pass (2048-bit key;\n\tunprotected) header.d=mendozajonas.com header.i=@mendozajonas.com\n\theader.b=\"kN1V4Nfh\"; dkim=pass (2048-bit key;\n\tunprotected) header.d=messagingengine.com\n\theader.i=@messagingengine.com header.b=\"OkNuu1AR\"; \n\tdkim-atps=neutral","lists.ozlabs.org; dkim=pass (2048-bit key;\n\tunprotected) header.d=mendozajonas.com header.i=@mendozajonas.com\n\theader.b=\"kN1V4Nfh\"; dkim=pass (2048-bit key;\n\tunprotected) header.d=messagingengine.com\n\theader.i=@messagingengine.com header.b=\"OkNuu1AR\"; \n\tdkim-atps=neutral","ozlabs.org;\n\tspf=pass (mailfrom) smtp.mailfrom=mendozajonas.com\n\t(client-ip=66.111.4.25; helo=out1-smtp.messagingengine.com;\n\tenvelope-from=sam@mendozajonas.com; receiver=<UNKNOWN>)","lists.ozlabs.org; dkim=pass (2048-bit key;\n\tunprotected) header.d=mendozajonas.com header.i=@mendozajonas.com\n\theader.b=\"kN1V4Nfh\"; dkim=pass (2048-bit key;\n\tunprotected) header.d=messagingengine.com\n\theader.i=@messagingengine.com\n\theader.b=\"OkNuu1AR\"; dkim-atps=neutral"],"DKIM-Signature":["v=1; a=rsa-sha256; c=relaxed/relaxed; d=\n\tmendozajonas.com; h=cc:date:from:message-id:subject:to\n\t:x-me-sender:x-me-sender:x-sasl-enc:x-sasl-enc; s=fm1; bh=02erKn\n\ty1uA7Fa+ewAatvevOvVanEaPwUzTGN37wpSP0=; b=kN1V4NfhwuA+16llTxf32m\n\tjpA1IdM0xLw1nnfWFeyDlf4NnU8sPDJydGPB2zSUJpfRu3UchEmIAHAH3ubVv6ys\n\tQ+I+yhay2JceLEi7qleERv//uZl/aNsU4MLYyQ5L+1b3TjSjzI7vQUdFuc+kCxZg\n\tL8Ia9Rfdn72b2WZ5jR2ZHh6odn/CcWM0fFQH63zpNMUGf35k0hc/aQ8CcpbNsFJ7\n\tZbfuYhQtJfSWt0NV7i5T8ItXfBHbEB7e2rNrJ9XRH0cQG8UeTQFKBK7d9kUwYPx+\n\t0Urb64MlerjTdgT5DMtof976ujiUtOqbdf6Qe/RJUJ97M5IEow+xost1EbNVtB7A\n\t==","v=1; a=rsa-sha256; c=relaxed/relaxed; d=\n\tmessagingengine.com; h=cc:date:from:message-id:subject:to\n\t:x-me-sender:x-me-sender:x-sasl-enc:x-sasl-enc; s=fm1; bh=02erKn\n\ty1uA7Fa+ewAatvevOvVanEaPwUzTGN37wpSP0=; b=OkNuu1AR/TxTKnD3xDMkIo\n\t9BgiN85hQwwIt7qBcRY5bu9/C3FMu4PjGHYSMYCMcHEDHno+aeQtVT84pigtJBct\n\tC20D+PlzprSJTLp+pkntrh/yQoKDGAWdRu0g6Pd4afmhLnb8bk64an1tzcbFJaPR\n\tokx24GSbwH1Uef9EFojRPtBemKmCCwp+2PYbc5Bn5Xk0QGknFemhvC/aArOuxcF+\n\tvxpwqzalCP2C/D8G6/McBCNg4G4JVpFLl8+P8R7e/ZvNjdwJVI/qtOlvRHlWspAD\n\t0BZJuRLsWay3fAuAGf9Bv2KpoBVREPiHG338rQJXD+jiv6oXHwK0FTxbc4eYomaw\n\t=="],"X-ME-Sender":"<xms:9I2vWedQnKM44arghWhfjKgjqVoNN_XZd8-a7EnyiZfows4eck17Kw>","X-Sasl-enc":"hCM0qvKdWvGf3+Cz04AafAUHB9+vm63WMNA7lS/eV/HA 1504677364","From":"Samuel Mendoza-Jonas <sam@mendozajonas.com>","To":"OpenBMC Maillist <openbmc@lists.ozlabs.org>","Subject":"[PATCH] net/ncsi: Don't assume last available channel exists","Date":"Wed,  6 Sep 2017 15:55:59 +1000","Message-Id":"<20170906055559.14474-1-sam@mendozajonas.com>","X-Mailer":"git-send-email 2.14.1","X-BeenThere":"openbmc@lists.ozlabs.org","X-Mailman-Version":"2.1.23","Precedence":"list","List-Id":"Development list for OpenBMC <openbmc.lists.ozlabs.org>","List-Unsubscribe":"<https://lists.ozlabs.org/options/openbmc>,\n\t<mailto:openbmc-request@lists.ozlabs.org?subject=unsubscribe>","List-Archive":"<http://lists.ozlabs.org/pipermail/openbmc/>","List-Post":"<mailto:openbmc@lists.ozlabs.org>","List-Help":"<mailto:openbmc-request@lists.ozlabs.org?subject=help>","List-Subscribe":"<https://lists.ozlabs.org/listinfo/openbmc>,\n\t<mailto:openbmc-request@lists.ozlabs.org?subject=subscribe>","Cc":"Samuel Mendoza-Jonas <sam@mendozajonas.com>","Errors-To":"openbmc-bounces+incoming=patchwork.ozlabs.org@lists.ozlabs.org","Sender":"\"openbmc\"\n\t<openbmc-bounces+incoming=patchwork.ozlabs.org@lists.ozlabs.org>"},"content":"When handling new VLAN tags in NCSI we check the maximum allowed number\nof filters on the last active (\"hot\") channel. However if the 'add'\ncallback is called before NCSI has configured a channel, this causes a\nNULL dereference.\n\nCheck that we actually have a hot channel, and warn if it is missing.\n\nSigned-off-by: Samuel Mendoza-Jonas <sam@mendozajonas.com>\n---\nSending to the OpenBMC list for those who are particularly interested, will\nsend upstream once I've had more time to properly test on a booting machine.\n\n\n net/ncsi/ncsi-manage.c | 21 +++++++++++++++------\n 1 file changed, 15 insertions(+), 6 deletions(-)","diff":"diff --git a/net/ncsi/ncsi-manage.c b/net/ncsi/ncsi-manage.c\nindex 3cbd4328f142..75a97d48da8a 100644\n--- a/net/ncsi/ncsi-manage.c\n+++ b/net/ncsi/ncsi-manage.c\n@@ -1407,7 +1407,10 @@ int ncsi_vlan_rx_add_vid(struct net_device *dev, __be16 proto, u16 vid)\n \t}\n \n \tndp = TO_NCSI_DEV_PRIV(nd);\n-\tncf = ndp->hot_channel->filters[NCSI_FILTER_VLAN];\n+\tif (!ndp) {\n+\t\tnetdev_warn(dev, \"ncsi: No ncsi_dev_priv?\\n\");\n+\t\treturn 0;\n+\t}\n \n \t/* Add the VLAN id to our internal list */\n \tlist_for_each_entry_rcu(vlan, &ndp->vlan_vids, list) {\n@@ -1419,11 +1422,17 @@ int ncsi_vlan_rx_add_vid(struct net_device *dev, __be16 proto, u16 vid)\n \t\t}\n \t}\n \n-\tif (n_vids >= ncf->total) {\n-\t\tnetdev_info(dev,\n-\t\t\t    \"NCSI Channel supports up to %u VLAN tags but %u are already set\\n\",\n-\t\t\t    ncf->total, n_vids);\n-\t\treturn -EINVAL;\n+\tif (!ndp->hot_channel) {\n+\t\tnetdev_warn(dev,\n+\t\t\t    \"ncsi: no available filter to check maximum\\n\");\n+\t} else {\n+\t\tncf = ndp->hot_channel->filters[NCSI_FILTER_VLAN];\n+\t\tif (n_vids >= ncf->total) {\n+\t\t\tnetdev_info(dev,\n+\t\t\t\t    \"NCSI Channel supports up to %u VLAN tags but %u are already set\\n\",\n+\t\t\t\t    ncf->total, n_vids);\n+\t\t\treturn -EINVAL;\n+\t\t}\n \t}\n \n \tvlan = kzalloc(sizeof(*vlan), GFP_KERNEL);\n","prefixes":[]}