lkml.org 
[lkml]   [2009]   [Feb]   [26]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    SubjectRe: [PATCH 3/4] gcov: add gcov profiling infrastructure
    Li Wei wrote:
    > On Thu, 2009-02-26 at 12:46 +0100, Peter Oberparleiter wrote:
    >> necessary. My proposed fix looks something like this (unless there
    >> are objections, I'll include this one in the re-post):
    >
    > I'd prefer a goto. But this looks nice too. Thanks! :)

    I usually try to prevent gotos that jump backwards, but on second
    thought I agree that in this case it makes the code more readable.
    Also a quick look confirms that similar constructs seem to be common
    practice within the kernel so I'll use the goto instead:

    ---
    kernel/gcov/fs.c | 9 ++++++---
    1 file changed, 6 insertions(+), 3 deletions(-)

    Index: linux-2.6.29-rc6/kernel/gcov/fs.c
    ===================================================================
    --- linux-2.6.29-rc6.orig/kernel/gcov/fs.c
    +++ linux-2.6.29-rc6/kernel/gcov/fs.c
    @@ -453,14 +453,17 @@ static ssize_t reset_write(struct file *
    size_t len, loff_t *pos)
    {
    struct gcov_node *node;
    - struct gcov_node *r;

    mutex_lock(&node_lock);
    - list_for_each_entry_safe(node, r, &all_head, all) {
    +restart:
    + list_for_each_entry(node, &all_head, all) {
    if (node->info)
    gcov_info_reset(node->info);
    - else
    + else if (list_empty(&node->children)) {
    remove_node(node);
    + /* Several nodes may have gone - restart loop. */
    + goto restart;
    + }
    }
    mutex_unlock(&node_lock);



    \
     
     \ /
      Last update: 2009-02-26 13:59    [W:0.026 / U:0.264 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site