From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932300AbbESM1k (ORCPT ); Tue, 19 May 2015 08:27:40 -0400 Received: from mail-qc0-f171.google.com ([209.85.216.171]:32991 "EHLO mail-qc0-f171.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S932166AbbESM1j (ORCPT ); Tue, 19 May 2015 08:27:39 -0400 Date: Tue, 19 May 2015 20:27:24 +0800 From: Minfei Huang To: Jiri Slaby Cc: live-patching@vger.kernel.org, jpoimboe@redhat.com, sjenning@redhat.com, jkosina@suse.cz, vojtech@suse.cz, linux-kernel@vger.kernel.org Subject: Re: [PATCH 2/2] livepatch: introduce patch/func-walking helpers Message-ID: <20150519122724.GA37748@dhcp-128-78.nay.redhat.com> References: <1432029679-9763-1-git-send-email-jslaby@suse.cz> <1432029679-9763-2-git-send-email-jslaby@suse.cz> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1432029679-9763-2-git-send-email-jslaby@suse.cz> User-Agent: Mutt/1.5.23 (2014-03-12) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 05/19/15 at 12:01P, Jiri Slaby wrote: > klp_for_each_object and klp_for_each_func are now used all over the > code. One need not think what is the proper condition to check in the > for loop now. > > Signed-off-by: Jiri Slaby > --- > include/linux/livepatch.h | 6 ++++++ > kernel/livepatch/core.c | 18 +++++++++--------- > 2 files changed, 15 insertions(+), 9 deletions(-) > > diff --git a/include/linux/livepatch.h b/include/linux/livepatch.h > index fe45f2f02c8d..31db7a05dd36 100644 > --- a/include/linux/livepatch.h > +++ b/include/linux/livepatch.h > @@ -805,7 +805,7 @@ static int klp_init_patch(struct klp_patch *patch) > if (ret) > goto unlock; > > - for (obj = patch->objs; obj->funcs; obj++) { > + klp_for_each_object(patch, obj) { > ret = klp_init_object(patch, obj); > if (ret) > goto free; > @@ -960,7 +960,7 @@ static int klp_module_notify(struct notifier_block *nb, unsigned long action, > mod->klp_alive = false; > > list_for_each_entry(patch, &klp_patches, list) { > - for (obj = patch->objs; obj->funcs; obj++) { > + klp_for_each_object(patch, obj) { The code is more clearly to use "if", instead of the loop, although we will take more than one line than previous, since we will always get the first function from the object. Thanks Minfei > if (!klp_is_module(obj) || strcmp(obj->name, mod->name)) > continue; >