lkml.org 
[lkml]   [2009]   [Dec]   [7]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH] arch/sh: Replace an explicit computation by the use of the container_of macro
    Date
    From 945e75c0e3202ab4cd0b8f185ea4be5609806edb Mon Sep 17 00:00:00 2001
    From: Nicolas Palix <npalix@diku.dk>
    Date: Mon, 7 Dec 2009 10:38:55 +0100

    The macro container_of from kernel.h performs the same
    pointer arithmetic operation.

    The semantic patch that makes this change is as follows:
    (http://coccinelle.lip6.fr/)

    // <smpl>
    @@
    type T;
    expression mptr;
    expression member;
    @@

    - (void *)((char *)mptr - offsetof(T, member))
    + container_of(mptr, T, member)
    // </smpl>

    Signed-off-by: Nicolas Palix <npalix@diku.dk>
    ---
    arch/sh/kernel/cpu/irq/ipr.c | 7 ++++---
    1 files changed, 4 insertions(+), 3 deletions(-)

    diff --git a/arch/sh/kernel/cpu/irq/ipr.c b/arch/sh/kernel/cpu/irq/ipr.c
    index c1508a9..9282d96 100644
    --- a/arch/sh/kernel/cpu/irq/ipr.c
    +++ b/arch/sh/kernel/cpu/irq/ipr.c
    @@ -17,16 +17,17 @@
    * for more details.
    */
    #include <linux/init.h>
    +#include <linux/interrupt.h>
    +#include <linux/io.h>
    #include <linux/irq.h>
    +#include <linux/kernel.h>
    #include <linux/module.h>
    -#include <linux/io.h>
    -#include <linux/interrupt.h>
    #include <linux/topology.h>

    static inline struct ipr_desc *get_ipr_desc(unsigned int irq)
    {
    struct irq_chip *chip = get_irq_chip(irq);
    - return (void *)((char *)chip - offsetof(struct ipr_desc, chip));
    + return container_of(chip, struct ipr_desc, chip);
    }

    static void disable_ipr_irq(unsigned int irq)
    --
    1.6.0.4


    \
     
     \ /
      Last update: 2009-12-07 10:49    [W:0.021 / U:1.784 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site