From: Ursula Braun <ubraun@linux.vnet.ibm.com>
To: Sachin Sant <sachinp@in.ibm.com>, davem@davemloft.net
Cc: linux-s390@vger.kernel.org, linux-next@vger.kernel.org,
eric.dumazet@gmail.com
Subject: Re: Fw: [Patch V2 -next] Adapt s390 qeth & lcs driver code to use RCU
Date: Tue, 23 Nov 2010 10:48:55 +0100 [thread overview]
Message-ID: <1290505735.3782.3.camel@braunu-laptop> (raw)
In-Reply-To: <OFDFD4C08B.1C026299-ONC12577E4.003543D2-C12577E4.003556F2@de.ibm.com>
ACK, thanks Sachin!
> From:
> Sachin Sant <sachinp@in.ibm.com>
> To:
> netdev@vger.kernel.org,
> davem@davemloft.net
> Cc:
> Sachin Sant <sachinp@in.ibm.com>,
> linux-s390@vger.kernel.org,
> linux-next@vger.kernel.org, Ursula
> Braun1/Germany/IBM@IBMDE,
> eric.dumazet@gmail.com
> Date:
> 19.11.2010 10:40
> Subject:
> [Patch V2 -next] Adapt s390 qeth &
> lcs driver code to use RCU
>
>
> ______________________________________________________________________
>
>
>
> Commit 1d7138de878d1d4210727c1200193e69596f93b3
> igmp: RCU conversion of in_dev->mc_list
>
> converted rwlock to RCU.
>
> Update the s390 network drivers(qeth & lcs) code to adapt to this
> change.
>
> Signed-off-by : Sachin Sant <sachinp@in.ibm.com>
> ---
>
> V2 : Changes based on suggestions given by Eric Dumazet
>
> diff -Naurp a/drivers/s390/net/lcs.c b/drivers/s390/net/lcs.c
> --- a/drivers/s390/net/lcs.c 2010-11-19
> 14:37:10.000000000 +0530
> +++ b/drivers/s390/net/lcs.c 2010-11-19
> 15:03:52.000000000 +0530
> @@ -1188,7 +1188,7 @@ lcs_remove_mc_addresses(struct lcs_card
> spin_lock_irqsave(&card->ipm_lock, flags);
> list_for_each(l, &card->ipm_list) {
> ipm = list_entry(l, struct
> lcs_ipm_list, list);
> - for (im4 = in4_dev->mc_list; im4 !=
> NULL; im4 = im4->next) {
> + for (im4 =
> rcu_dereference(in4_dev->mc_list); im4 != NULL; im4 =
> rcu_dereference(im4->next_rcu)) {
>
> lcs_get_mac_for_ipm(im4->multiaddr, buf, card->dev);
> if
> ( (ipm->ipm.ip_addr == im4->multiaddr) &&
> (memcmp(buf,
> &ipm->ipm.mac_addr,
> @@ -1233,7 +1233,7 @@ lcs_set_mc_addresses(struct lcs_card *ca
> unsigned long flags;
>
> LCS_DBF_TEXT(4, trace, "setmclst");
> - for (im4 = in4_dev->mc_list; im4; im4 = im4->next) {
> + for (im4 = rcu_dereference(in4_dev->mc_list); im4;
> im4 = rcu_dereference(im4->next_rcu)) {
> lcs_get_mac_for_ipm(im4->multiaddr,
> buf, card->dev);
> ipm = lcs_check_addr_entry(card,
> im4, buf);
> if (ipm != NULL)
> @@ -1269,10 +1269,10 @@ lcs_register_mc_addresses(void *data)
> in4_dev = in_dev_get(card->dev);
> if (in4_dev == NULL)
> goto out;
> - read_lock(&in4_dev->mc_list_lock);
> + rcu_read_lock();
> lcs_remove_mc_addresses(card,in4_dev);
> lcs_set_mc_addresses(card, in4_dev);
> - read_unlock(&in4_dev->mc_list_lock);
> + rcu_read_unlock();
> in_dev_put(in4_dev);
>
> netif_carrier_off(card->dev);
> diff -Naurp a/drivers/s390/net/qeth_l3_main.c
> b/drivers/s390/net/qeth_l3_main.c
> --- a/drivers/s390/net/qeth_l3_main.c 2010-11-19
> 14:37:10.000000000 +0530
> +++ b/drivers/s390/net/qeth_l3_main.c 2010-11-19
> 15:03:32.000000000 +0530
> @@ -1796,7 +1796,7 @@ static void qeth_l3_add_mc(struct qeth_c
> char buf[MAX_ADDR_LEN];
>
> QETH_CARD_TEXT(card, 4, "addmc");
> - for (im4 = in4_dev->mc_list; im4; im4 = im4->next) {
> + for (im4 = rcu_dereference(in4_dev->mc_list); im4 !=
> NULL; im4 = rcu_dereference(im4->next_rcu)) {
>
> qeth_l3_get_mac_for_ipm(im4->multiaddr, buf, in4_dev->dev);
> ipm =
> qeth_l3_get_addr_buffer(QETH_PROT_IPV4);
> if (!ipm)
> @@ -1828,9 +1828,9 @@ static void qeth_l3_add_vlan_mc(struct q
> in_dev = in_dev_get(netdev);
> if (!in_dev)
> continue;
> - read_lock(&in_dev->mc_list_lock);
> + rcu_read_lock();
> qeth_l3_add_mc(card, in_dev);
> - read_unlock(&in_dev->mc_list_lock);
> + rcu_read_unlock();
> in_dev_put(in_dev);
> }
> }
> @@ -1843,10 +1843,10 @@ static void qeth_l3_add_multicast_ipv4(s
> in4_dev = in_dev_get(card->dev);
> if (in4_dev == NULL)
> return;
> - read_lock(&in4_dev->mc_list_lock);
> + rcu_read_lock();
> qeth_l3_add_mc(card, in4_dev);
> qeth_l3_add_vlan_mc(card);
> - read_unlock(&in4_dev->mc_list_lock);
> + rcu_read_unlock();
> in_dev_put(in4_dev);
> }
>
>
parent reply other threads:[~2010-11-23 9:48 UTC|newest]
Thread overview: expand[flat|nested] mbox.gz Atom feed
[parent not found: <OFDFD4C08B.1C026299-ONC12577E4.003543D2-C12577E4.003556F2@de.ibm.com>]
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=1290505735.3782.3.camel@braunu-laptop \
--to=ubraun@linux.vnet.ibm.com \
--cc=davem@davemloft.net \
--cc=eric.dumazet@gmail.com \
--cc=linux-next@vger.kernel.org \
--cc=linux-s390@vger.kernel.org \
--cc=sachinp@in.ibm.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
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