From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751140AbdKEPjB (ORCPT ); Sun, 5 Nov 2017 10:39:01 -0500 Received: from mail-lf0-f66.google.com ([209.85.215.66]:53013 "EHLO mail-lf0-f66.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750933AbdKEPjA (ORCPT ); Sun, 5 Nov 2017 10:39:00 -0500 X-Google-Smtp-Source: ABhQp+Q0Y47ERZmhkfZE4s0gt1NwkbazHUJsJhM1/IvXBPuvNY+4mhXifH7IuVdP6Hn0c1y87xRLyg== Date: Sun, 5 Nov 2017 16:38:57 +0100 From: Johan Hovold To: Andrey Smirnov Cc: linux-kernel@vger.kernel.org, linux-serial@vger.kernel.org, Rob Herring , cphealy@gmail.com, Guenter Roeck , Lucas Stach , Nikita Yushchenko , Lee Jones , Greg Kroah-Hartman , Pavel Machek , Andy Shevchenko , Johan Hovold , Sebastian Reichel Subject: Re: [PATCH v10 2/5] serdev: Introduce devm_serdev_device_open() Message-ID: <20171105153857.GC13118@localhost> References: <20171031163656.24552-1-andrew.smirnov@gmail.com> <20171031163656.24552-3-andrew.smirnov@gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20171031163656.24552-3-andrew.smirnov@gmail.com> User-Agent: Mutt/1.7.2 (2016-11-26) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Tue, Oct 31, 2017 at 09:36:53AM -0700, Andrey Smirnov wrote: > Add code implementing managed version of serdev_device_open() for > serdev device drivers that "open" the device during driver's lifecycle > only once (e.g. opened in .probe() and closed in .remove()). > > Cc: linux-kernel@vger.kernel.org > Cc: linux-serial@vger.kernel.org > Cc: Rob Herring > Cc: cphealy@gmail.com > Cc: Guenter Roeck > Cc: Lucas Stach > Cc: Nikita Yushchenko > Cc: Lee Jones > Cc: Greg Kroah-Hartman > Cc: Pavel Machek > Cc: Andy Shevchenko > Cc: Johan Hovold > Cc: Sebastian Reichel > Reviewed-by: Sebastian Reichel > Reviewed-by: Guenter Roeck > Signed-off-by: Andrey Smirnov > --- > Documentation/driver-model/devres.txt | 3 +++ > drivers/tty/serdev/core.c | 27 +++++++++++++++++++++++++++ > include/linux/serdev.h | 1 + > 3 files changed, 31 insertions(+) > +int devm_serdev_device_open(struct device *dev, struct serdev_device *serdev) > +{ > + struct serdev_device **dr; > + int ret; > + > + dr = devres_alloc(devm_serdev_device_release, sizeof(*dr), GFP_KERNEL); > + if (!dr) > + return -ENOMEM; > + > + ret = serdev_device_open(serdev); > + if (ret) { > + devres_free(dr); > + return ret; > + } > + > + *dr = serdev; > + devres_add(dev, dr); > + > + return ret; This would be more readable as return 0. > +} > +EXPORT_SYMBOL_GPL(devm_serdev_device_open); Johan