lkml.org 
[lkml]   [2019]   [Jun]   [26]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 16/25] device-dax: use the dev_pagemap internal refcount
    Date
    The functionality is identical to the one currently open coded in
    device-dax.

    Signed-off-by: Christoph Hellwig <hch@lst.de>
    ---
    drivers/dax/dax-private.h | 4 ----
    drivers/dax/device.c | 43 ---------------------------------------
    2 files changed, 47 deletions(-)

    diff --git a/drivers/dax/dax-private.h b/drivers/dax/dax-private.h
    index b4177aafbbd1..c915889d1769 100644
    --- a/drivers/dax/dax-private.h
    +++ b/drivers/dax/dax-private.h
    @@ -43,8 +43,6 @@ struct dax_region {
    * @target_node: effective numa node if dev_dax memory range is onlined
    * @dev - device core
    * @pgmap - pgmap for memmap setup / lifetime (driver owned)
    - * @ref: pgmap reference count (driver owned)
    - * @cmp: @ref final put completion (driver owned)
    */
    struct dev_dax {
    struct dax_region *region;
    @@ -52,8 +50,6 @@ struct dev_dax {
    int target_node;
    struct device dev;
    struct dev_pagemap pgmap;
    - struct percpu_ref ref;
    - struct completion cmp;
    };

    static inline struct dev_dax *to_dev_dax(struct device *dev)
    diff --git a/drivers/dax/device.c b/drivers/dax/device.c
    index b5257038c188..1af823b2fe6b 100644
    --- a/drivers/dax/device.c
    +++ b/drivers/dax/device.c
    @@ -14,36 +14,6 @@
    #include "dax-private.h"
    #include "bus.h"

    -static struct dev_dax *ref_to_dev_dax(struct percpu_ref *ref)
    -{
    - return container_of(ref, struct dev_dax, ref);
    -}
    -
    -static void dev_dax_percpu_release(struct percpu_ref *ref)
    -{
    - struct dev_dax *dev_dax = ref_to_dev_dax(ref);
    -
    - dev_dbg(&dev_dax->dev, "%s\n", __func__);
    - complete(&dev_dax->cmp);
    -}
    -
    -static void dev_dax_percpu_exit(struct dev_pagemap *pgmap)
    -{
    - struct dev_dax *dev_dax = container_of(pgmap, struct dev_dax, pgmap);
    -
    - dev_dbg(&dev_dax->dev, "%s\n", __func__);
    - wait_for_completion(&dev_dax->cmp);
    - percpu_ref_exit(pgmap->ref);
    -}
    -
    -static void dev_dax_percpu_kill(struct dev_pagemap *pgmap)
    -{
    - struct dev_dax *dev_dax = container_of(pgmap, struct dev_dax, pgmap);
    -
    - dev_dbg(&dev_dax->dev, "%s\n", __func__);
    - percpu_ref_kill(pgmap->ref);
    -}
    -
    static int check_vma(struct dev_dax *dev_dax, struct vm_area_struct *vma,
    const char *func)
    {
    @@ -441,11 +411,6 @@ static void dev_dax_kill(void *dev_dax)
    kill_dev_dax(dev_dax);
    }

    -static const struct dev_pagemap_ops dev_dax_pagemap_ops = {
    - .kill = dev_dax_percpu_kill,
    - .cleanup = dev_dax_percpu_exit,
    -};
    -
    int dev_dax_probe(struct device *dev)
    {
    struct dev_dax *dev_dax = to_dev_dax(dev);
    @@ -463,15 +428,7 @@ int dev_dax_probe(struct device *dev)
    return -EBUSY;
    }

    - init_completion(&dev_dax->cmp);
    - rc = percpu_ref_init(&dev_dax->ref, dev_dax_percpu_release, 0,
    - GFP_KERNEL);
    - if (rc)
    - return rc;
    -
    - dev_dax->pgmap.ref = &dev_dax->ref;
    dev_dax->pgmap.type = MEMORY_DEVICE_DEVDAX;
    - dev_dax->pgmap.ops = &dev_dax_pagemap_ops;
    addr = devm_memremap_pages(dev, &dev_dax->pgmap);
    if (IS_ERR(addr))
    return PTR_ERR(addr);
    --
    2.20.1
    \
     
     \ /
      Last update: 2019-06-26 14:28    [W:2.979 / U:0.224 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site