linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 0/9] staging: fsl-mc: fixes and cleanups
@ 2017-02-01 11:43 laurentiu.tudor
  2017-02-01 11:43 ` [PATCH 1/9] staging: fsl-mc: drop root dprc counting laurentiu.tudor
                   ` (8 more replies)
  0 siblings, 9 replies; 18+ messages in thread
From: laurentiu.tudor @ 2017-02-01 11:43 UTC (permalink / raw)
  To: gregkh
  Cc: devel, linux-kernel, agraf, arnd, ioana.ciornei,
	ruxandra.radulescu, bharat.bhushan, stuart.yoder,
	catalin.horghidan, leoyang.li, roy.pledge, Laurentiu Tudor

From: Laurentiu Tudor <laurentiu.tudor@nxp.com>

First 4 patches fix several driver model related
issues and drop an useless atomic global.
The rest of the patches are cleanups mostly
consisting in removing dead code.

For context, see these threads:
https://lkml.org/lkml/2016/12/7/382
https://lkml.org/lkml/2017/1/3/437

Laurentiu Tudor (9):
  staging: fsl-mc: drop root dprc counting
  staging: fsl-mc: fix device ref counting
  staging: fsl-mc: add device release callback
  staging: fsl-mc: don't use devres api for refcounted objects
  staging: fsl-mc: dpmcp: drop unused APIs
  staging: fsl-mc: dpmng: drop unused prototype
  staging: fsl-mc: dpbp: drop unused APIs
  staging: fsl-mc: dpbp: add a few missing EXPORT_SYMBOL()s
  staging: fsl-mc: dprc: drop unused APIs

 drivers/staging/fsl-mc/bus/dpbp-cmd.h    | 116 ------
 drivers/staging/fsl-mc/bus/dpbp.c        | 452 +--------------------
 drivers/staging/fsl-mc/bus/dpmcp-cmd.h   |  95 -----
 drivers/staging/fsl-mc/bus/dpmcp.c       | 382 ------------------
 drivers/staging/fsl-mc/bus/dpmcp.h       | 100 +----
 drivers/staging/fsl-mc/bus/dprc-cmd.h    |  18 -
 drivers/staging/fsl-mc/bus/dprc-driver.c |   1 +
 drivers/staging/fsl-mc/bus/dprc.c        | 666 -------------------------------
 drivers/staging/fsl-mc/bus/fsl-mc-bus.c  |  71 +---
 drivers/staging/fsl-mc/include/dpbp.h    | 129 ------
 drivers/staging/fsl-mc/include/dpmng.h   |   4 -
 drivers/staging/fsl-mc/include/dprc.h    | 244 +----------
 12 files changed, 25 insertions(+), 2253 deletions(-)

-- 
1.8.3.1

^ permalink raw reply	[flat|nested] 18+ messages in thread
* RE: [PATCH 3/9] staging: fsl-mc: add device release    callback
@ 2017-02-03  0:02 Stuart Yoder
  2017-02-03 15:53 ` Laurentiu Tudor
  0 siblings, 1 reply; 18+ messages in thread
From: Stuart Yoder @ 2017-02-03  0:02 UTC (permalink / raw)
  To: Laurentiu Tudor, gregkh
  Cc: devel, arnd, Ruxandra Ioana Radulescu, Roy Pledge, linux-kernel,
	agraf, Catalin Horghidan, Leo Li, Laurentiu Tudor


> -----Original Message-----
> From: upstream-release-bounces@linux.freescale.net [mailto:upstream-release-
> bounces@linux.freescale.net] On Behalf Of laurentiu.tudor@nxp.com
> Sent: Wednesday, February 01, 2017 5:43 AM
> To: gregkh@linuxfoundation.org
> Cc: devel@driverdev.osuosl.org; arnd@arndb.de; Ruxandra Ioana Radulescu <ruxandra.radulescu@nxp.com>;
> Roy Pledge <roy.pledge@nxp.com>; linux-kernel@vger.kernel.org; agraf@suse.de; Catalin Horghidan
> <catalin.horghidan@nxp.com>; Leo Li <leoyang.li@nxp.com>; Stuart Yoder <stuart.yoder@nxp.com>;
> Laurentiu Tudor <laurentiu.tudor@nxp.com>
> Subject: [upstream-release] [PATCH 3/9] staging: fsl-mc: add device release callback
> 
> From: Laurentiu Tudor <laurentiu.tudor@nxp.com>
> 
> When hot unplugging a mc-bus device the kernel displays
> this pertinent message, followed by a stack dump:
>     "Device 'foo.N' does not have a release() function,
>      it is broken and must be fixed."
> Add the required callback to fix.
> 
> Signed-off-by: Laurentiu Tudor <laurentiu.tudor@nxp.com>
> ---
>  drivers/staging/fsl-mc/bus/fsl-mc-bus.c | 17 +++++++++++++++++
>  1 file changed, 17 insertions(+)
> 
> diff --git a/drivers/staging/fsl-mc/bus/fsl-mc-bus.c b/drivers/staging/fsl-mc/bus/fsl-mc-bus.c
> index 7c6a43b..6601bde 100644
> --- a/drivers/staging/fsl-mc/bus/fsl-mc-bus.c
> +++ b/drivers/staging/fsl-mc/bus/fsl-mc-bus.c
> @@ -419,6 +419,22 @@ bool fsl_mc_is_root_dprc(struct device *dev)
>  	return dev == root_dprc_dev;
>  }
> 
> +static void fsl_mc_device_release(struct device *dev)
> +{
> +	struct fsl_mc_device *mc_dev = to_fsl_mc_device(dev);
> +	struct fsl_mc_bus *mc_bus = NULL;
> +
> +	kfree(mc_dev->regions);
> +
> +	if (strcmp(mc_dev->obj_desc.type, "dprc") == 0)
> +		mc_bus = to_fsl_mc_bus(mc_dev);
> +
> +	if (mc_bus)
> +		devm_kfree(mc_dev->dev.parent, mc_bus);
> +	else
> +		kmem_cache_free(mc_dev_cache, mc_dev);
> +}
> +
>  /**
>   * Add a newly discovered fsl-mc device to be visible in Linux
>   */
> @@ -460,6 +476,7 @@ int fsl_mc_device_add(struct dprc_obj_desc *obj_desc,
>  	device_initialize(&mc_dev->dev);
>  	mc_dev->dev.parent = parent_dev;
>  	mc_dev->dev.bus = &fsl_mc_bus_type;
> +	mc_dev->dev.release = fsl_mc_device_release;
>  	dev_set_name(&mc_dev->dev, "%s.%d", obj_desc->type, obj_desc->id);
> 
>  	if (strcmp(obj_desc->type, "dprc") == 0) {
> --

With this patch applied, you still have this:

void fsl_mc_device_remove(struct fsl_mc_device *mc_dev)
{
        struct fsl_mc_bus *mc_bus = NULL;

        kfree(mc_dev->regions);

        /*
         * The device-specific remove callback will get invoked by device_del()
         */
        device_del(&mc_dev->dev);
        put_device(&mc_dev->dev);

        if (strcmp(mc_dev->obj_desc.type, "dprc") == 0)
                mc_bus = to_fsl_mc_bus(mc_dev);

        if (mc_bus)
                devm_kfree(mc_dev->dev.parent, mc_bus);
        else
                kmem_cache_free(mc_dev_cache, mc_dev);
}

...i.e. you are doing the same thing in 2 places.  You
need to remove the kfree/devm_kfree/ kmem_cache_free,
here, no?

Stuart

^ permalink raw reply	[flat|nested] 18+ messages in thread

end of thread, other threads:[~2017-02-03 15:53 UTC | newest]

Thread overview: 18+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-02-01 11:43 [PATCH 0/9] staging: fsl-mc: fixes and cleanups laurentiu.tudor
2017-02-01 11:43 ` [PATCH 1/9] staging: fsl-mc: drop root dprc counting laurentiu.tudor
2017-02-01 11:43 ` [PATCH 2/9] staging: fsl-mc: fix device ref counting laurentiu.tudor
2017-02-03  9:56   ` Greg KH
2017-02-03 10:17     ` Laurentiu Tudor
2017-02-03 10:31       ` Greg KH
2017-02-01 11:43 ` [PATCH 3/9] staging: fsl-mc: add device release callback laurentiu.tudor
2017-02-01 11:43 ` [PATCH 4/9] staging: fsl-mc: don't use devres api for refcounted objects laurentiu.tudor
2017-02-03  0:02   ` Stuart Yoder
2017-02-03 10:31     ` Laurentiu Tudor
2017-02-01 11:43 ` [PATCH 5/9] staging: fsl-mc: dpmcp: drop unused APIs laurentiu.tudor
2017-02-01 11:43 ` [PATCH 6/9] staging: fsl-mc: dpmng: drop unused prototype laurentiu.tudor
2017-02-01 11:43 ` [PATCH 7/9] staging: fsl-mc: dpbp: drop unused APIs laurentiu.tudor
2017-02-01 11:43 ` [PATCH 8/9] staging: fsl-mc: dpbp: add a few missing EXPORT_SYMBOL()s laurentiu.tudor
2017-02-01 11:43 ` [PATCH 9/9] staging: fsl-mc: dprc: drop unused APIs laurentiu.tudor
2017-02-03  0:03   ` Stuart Yoder
2017-02-03  0:02 [PATCH 3/9] staging: fsl-mc: add device release callback Stuart Yoder
2017-02-03 15:53 ` Laurentiu Tudor

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).