From patchwork Tue Nov 1 15:26:00 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Johan Hovold X-Patchwork-Id: 689967 Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Received: from lists.ozlabs.org (lists.ozlabs.org [103.22.144.68]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 3t7b012kT6z9t2N for ; Wed, 2 Nov 2016 02:35:13 +1100 (AEDT) Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b=hq+o/rCr; dkim-atps=neutral Received: from lists.ozlabs.org (lists.ozlabs.org [IPv6:2401:3900:2:1::3]) by lists.ozlabs.org (Postfix) with ESMTP id 3t7b011gjfzDvQW for ; Wed, 2 Nov 2016 02:35:13 +1100 (AEDT) Authentication-Results: lists.ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b=hq+o/rCr; dkim-atps=neutral X-Original-To: linuxppc-dev@lists.ozlabs.org Delivered-To: linuxppc-dev@lists.ozlabs.org Received: from mail-lf0-x243.google.com (mail-lf0-x243.google.com [IPv6:2a00:1450:4010:c07::243]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by lists.ozlabs.org (Postfix) with ESMTPS id 3t7Zp41JWxzDt4T for ; Wed, 2 Nov 2016 02:26:36 +1100 (AEDT) Authentication-Results: lists.ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b=hq+o/rCr; dkim-atps=neutral Received: by mail-lf0-x243.google.com with SMTP id i187so8947614lfe.1 for ; Tue, 01 Nov 2016 08:26:36 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=sender:from:to:cc:subject:date:message-id; bh=wTMSYlG53T6TXIC3lBHkzrPBWC2MoYpd6N4z9REaEvk=; b=hq+o/rCrG5HWOkG6HBKGtiC/d0yBdDN2yLGzxetYcUKFOy/dqwMaGxZprqEDKAwawt FLOpqA/GfSCy+sVHHP4zJcBLYOiIEeFyThJalib2lUqinIQIPIlW3V+mBqAKZEQ0Z5bO bvSN6bXcLbulYpzBhecHBfSYIiXqQ+IOL40I/OC/v2GWH/7kNHj4JDXEF+f0nM7L9CZE 9pY5rtSRMNV8n4I11c43YRFYAl1xVoNERpph4OMestu1NP+ycWuNXBkyQ2XaFbcJPjcj pinMdm6UFKTICXGgo3+XgtxpbqlB25JYTbDQhUbX1asYUkCmPyI1APARnO1vldcrpDiO e2hw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id; bh=wTMSYlG53T6TXIC3lBHkzrPBWC2MoYpd6N4z9REaEvk=; b=DdmZluPL6KuP+OHAMbRN9Mo0Q8L5XdwPNhyAA4SdmqpCneC/fPE/AuJK8k1YSF3Fvo a5ITsdG+PETwZUnoCl8tJdR4oZNQ6unKUhp7Es1KPx/g4sen10mR+sqjLnHgYma1C/Gi rbTPKPV5UtLc085GUsEqFKrJsJplxHwDcsbRACskZFSxg/USKsU0vkGOpmpAVLDWMyBN SSK3WvWOnDUHmO72sd6wBUZ+rAP5kVWaHWes6PY6pROtxN8IIJy69zJjKXMhOOKp3vU+ mLt+foXtXCfDoYd/wZCXchhQRrSAwbGL69LbACFEw1s8JtAww+U0l9IsMommBxaR5J25 PHxA== X-Gm-Message-State: ABUngve8z9nftZxpv03kzmjV1y9mwjrHtoS37IyCvNXyb3KPb7Hj3b2kTCWT2AkAmXpBBQ== X-Received: by 10.25.43.130 with SMTP id r124mr7362663lfr.122.1478013991835; Tue, 01 Nov 2016 08:26:31 -0700 (PDT) Received: from xi.terra (c-04aadb54.07-184-6d6c6d4.cust.bredbandsbolaget.se. [84.219.170.4]) by smtp.gmail.com with ESMTPSA id 5sm1350923ljf.18.2016.11.01.08.26.30 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 01 Nov 2016 08:26:31 -0700 (PDT) Received: from johan by xi.terra with local (Exim 4.87) (envelope-from ) id 1c1axK-0007Wi-W1; Tue, 01 Nov 2016 16:26:31 +0100 From: Johan Hovold To: Benjamin Herrenschmidt , Paul Mackerras , Michael Ellerman Subject: [PATCH 1/4] ibmebus: fix device reference leaks in sysfs interface Date: Tue, 1 Nov 2016 16:26:00 +0100 Message-Id: <1478013963-28871-1-git-send-email-johan@kernel.org> X-Mailer: git-send-email 2.7.3 X-Mailman-Approved-At: Wed, 02 Nov 2016 02:33:49 +1100 X-BeenThere: linuxppc-dev@lists.ozlabs.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Linux on PowerPC Developers Mail List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: linuxppc-dev@lists.ozlabs.org, Johan Hovold Errors-To: linuxppc-dev-bounces+patchwork-incoming=ozlabs.org@lists.ozlabs.org Sender: "Linuxppc-dev" Make sure to drop any reference taken by bus_find_device() in the sysfs callbacks that are used to create and destroy devices based on device-tree entries. Fixes: 6bccf755ff53 ("[POWERPC] ibmebus: dynamic addition/removal...) Signed-off-by: Johan Hovold --- arch/powerpc/kernel/ibmebus.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/arch/powerpc/kernel/ibmebus.c b/arch/powerpc/kernel/ibmebus.c index 6ca9a2ffaac7..c7d3ff7e101c 100644 --- a/arch/powerpc/kernel/ibmebus.c +++ b/arch/powerpc/kernel/ibmebus.c @@ -262,6 +262,7 @@ static ssize_t ibmebus_store_probe(struct bus_type *bus, const char *buf, size_t count) { struct device_node *dn = NULL; + struct device *dev; char *path; ssize_t rc = 0; @@ -269,8 +270,10 @@ static ssize_t ibmebus_store_probe(struct bus_type *bus, if (!path) return -ENOMEM; - if (bus_find_device(&ibmebus_bus_type, NULL, path, - ibmebus_match_path)) { + dev = bus_find_device(&ibmebus_bus_type, NULL, path, + ibmebus_match_path); + if (dev) { + put_device(dev); printk(KERN_WARNING "%s: %s has already been probed\n", __func__, path); rc = -EEXIST; @@ -307,6 +310,7 @@ static ssize_t ibmebus_store_remove(struct bus_type *bus, if ((dev = bus_find_device(&ibmebus_bus_type, NULL, path, ibmebus_match_path))) { of_device_unregister(to_platform_device(dev)); + put_device(dev); kfree(path); return count;