public inbox for netdev@vger.kernel.org 
 help / color / mirror / Atom feed
From: Jiri Pirko <jiri@resnulli•us>
To: David Miller <davem@davemloft•net>
Cc: netdev@vger•kernel.org, edumazet@google•com,
	bhutchings@solarflare•com, faisal.latif@intel•com,
	shemminger@vyatta•com, fbl@redhat•com, roland@kernel•org,
	sean.hefty@intel•com, hal.rosenstock@gmail•com, fubar@us•ibm.com,
	andy@greyhouse•net, divy@chelsio•com,
	jitendra.kalsaria@qlogic•com, sony.chacko@qlogic•com,
	linux-driver@qlogic•com, kaber@trash•net,
	ursula.braun@de•ibm.com, blaschka@linux•vnet.ibm.com,
	schwidefsky@de•ibm.com, heiko.carstens@de•ibm.com,
	ebiederm@xmission•com, joe@perches•com, amwang@redhat•com,
	nhorman@tuxdriver•com, john.r.fastabend@intel•com,
	pablo@netfilter•org
Subject: Re: [patch net-next 01/15] net: introduce upper device lists
Date: Sun, 30 Dec 2012 10:53:38 +0100	[thread overview]
Message-ID: <20121230095338.GC1575@minipsycho.orion> (raw)
In-Reply-To: <20121229.153101.676681277388952344.davem@davemloft.net>

Sun, Dec 30, 2012 at 12:31:01AM CET, davem@davemloft•net wrote:
>From: Jiri Pirko <jiri@resnulli•us>
>Date: Sat, 29 Dec 2012 11:38:28 +0100
>
>> +	/*
>> +	 * To prevent loops, check if dev is not upper device to upper_dev.
>> +	 */
>
>Please use:
>
>	/* To prevent loops, check if dev is not upper device to upper_dev.  */

fixed

>
>> +/**
>> + * netdev_upper_free_rcu - Frees a upper device list item via the RCU pointer
>> + * @entry: the entry's RCU field
>> + *
>> + * This function is designed to be used as a callback to the call_rcu()
>> + * function so that the memory allocated to the netdev upper device list item
>> + * can be released safely.
>> + */
>> +static void netdev_upper_free_rcu(struct rcu_head *entry)
>> +{
>> +	struct netdev_upper *upper;
>> +
>> +	upper = container_of(entry, struct netdev_upper, rcu);
>> +	kfree(upper);
>> +}
>
>Please use kfree_rcu().

fixed

>
>Also, since __netdev_has_upper_dev() modifies &search_list inside
>of the list traversal loop, I think you really need to use
>list_for_each_entry_safe() even though you always append to the
>tail of &search_list.

Hmm, I do not believe that list_for_each_entry_safe() would work correctly
here. In case that the current iterator is at the very end of
the list and now other items are added, list_for_each_entry_safe() would
remember that next is head and the newly added items would not be
processed. list_for_each_entry() works just fine in any case I can
imagine. Note that no items are removed during the iteration.
Am I missing something?

Thanks!

Jiri

  reply	other threads:[~2012-12-30  9:53 UTC|newest]

Thread overview: 25+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-12-29 10:38 [patch net-next V3 00/15] net: introduce upper device lists and remove dev->master Jiri Pirko
2012-12-29 10:38 ` [patch net-next 01/15] net: introduce upper device lists Jiri Pirko
2012-12-29 23:31   ` David Miller
2012-12-30  9:53     ` Jiri Pirko [this message]
2012-12-29 10:38 ` [patch net-next 02/15] macvlan: add link to upper device Jiri Pirko
2012-12-29 10:38 ` [patch net-next 03/15] vlan: " Jiri Pirko
2012-12-29 10:38 ` [patch net-next 04/15] rtnetlink: remove usage of dev->master Jiri Pirko
2012-12-29 10:38 ` [patch net-next 05/15] team: remove usage of netdev_set_master() Jiri Pirko
2012-12-29 10:38 ` [patch net-next 06/15] bridge: " Jiri Pirko
2012-12-29 10:38 ` [patch net-next 07/15] netpoll: remove usage of dev->master Jiri Pirko
2012-12-29 10:38 ` [patch net-next 08/15] cxgb3: " Jiri Pirko
2012-12-29 10:38 ` [patch net-next 09/15] qlcnic: guard __vlan_find_dev_deep() by rcu_read_lock Jiri Pirko
2012-12-29 10:38 ` [patch net-next 10/15] qeth: ensure that __vlan_find_dev_deep() is called with rcu_read_lock Jiri Pirko
2012-12-29 10:38 ` [patch net-next 11/15] vlan: remove usage of dev->master in __vlan_find_dev_deep() Jiri Pirko
2012-12-29 10:38 ` [patch net-next 12/15] nes: remove usage of dev->master Jiri Pirko
2012-12-29 10:38 ` [patch net-next 13/15] bonding: " Jiri Pirko
2012-12-29 10:38 ` [patch net-next 14/15] net: remove no longer used netdev_set_bond_master() and netdev_set_master() Jiri Pirko
2012-12-29 10:38 ` [patch net-next 15/15] net: kill dev->master Jiri Pirko
  -- strict thread matches above, loose matches on Subject: below --
2012-12-30 11:58 [patch net-next V4 00/15] net: introduce upper device lists and remove dev->master Jiri Pirko
2012-12-30 11:58 ` [patch net-next 01/15] net: introduce upper device lists Jiri Pirko
2012-12-30 18:00   ` Ben Greear
2012-12-30 22:08     ` Jiri Pirko
2012-12-31  4:56   ` Stephen Hemminger
2012-12-31  9:55     ` Jiri Pirko
2012-12-31 19:22   ` Stephen Hemminger
2013-01-01  1:04     ` Jiri Pirko

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20121230095338.GC1575@minipsycho.orion \
    --to=jiri@resnulli$(echo .)us \
    --cc=amwang@redhat$(echo .)com \
    --cc=andy@greyhouse$(echo .)net \
    --cc=bhutchings@solarflare$(echo .)com \
    --cc=blaschka@linux$(echo .)vnet.ibm.com \
    --cc=davem@davemloft$(echo .)net \
    --cc=divy@chelsio$(echo .)com \
    --cc=ebiederm@xmission$(echo .)com \
    --cc=edumazet@google$(echo .)com \
    --cc=faisal.latif@intel$(echo .)com \
    --cc=fbl@redhat$(echo .)com \
    --cc=fubar@us$(echo .)ibm.com \
    --cc=hal.rosenstock@gmail$(echo .)com \
    --cc=heiko.carstens@de$(echo .)ibm.com \
    --cc=jitendra.kalsaria@qlogic$(echo .)com \
    --cc=joe@perches$(echo .)com \
    --cc=john.r.fastabend@intel$(echo .)com \
    --cc=kaber@trash$(echo .)net \
    --cc=linux-driver@qlogic$(echo .)com \
    --cc=netdev@vger$(echo .)kernel.org \
    --cc=nhorman@tuxdriver$(echo .)com \
    --cc=pablo@netfilter$(echo .)org \
    --cc=roland@kernel$(echo .)org \
    --cc=schwidefsky@de$(echo .)ibm.com \
    --cc=sean.hefty@intel$(echo .)com \
    --cc=shemminger@vyatta$(echo .)com \
    --cc=sony.chacko@qlogic$(echo .)com \
    --cc=ursula.braun@de$(echo .)ibm.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox