From: "Michael S. Tsirkin" <mst@redhat.com>
To: Vlad Yasevich <vyasevic@redhat.com>
Cc: john.r.fastabend@intel.com, netdev@vger.kernel.org,
shemminger@vyatta.com, bridge@lists.linux-foundation.org,
jhs@mojatatu.com
Subject: Re: [Bridge] [PATCH 1/7] bridge: Turn flag change macro into a function.
Date: Wed, 26 Feb 2014 17:29:26 +0200 [thread overview]
Message-ID: <20140226152926.GB15330@redhat.com> (raw)
In-Reply-To: <1393427905-6811-2-git-send-email-vyasevic@redhat.com>
On Wed, Feb 26, 2014 at 10:18:19AM -0500, Vlad Yasevich wrote:
> Turn the flag change macro into a function to allow
> easier updates and to reduce space.
>
> Signed-off-by: Vlad Yasevich <vyasevic@redhat.com>
> ---
> net/bridge/br_sysfs_if.c | 29 +++++++++++++++++++----------
> 1 file changed, 19 insertions(+), 10 deletions(-)
>
> diff --git a/net/bridge/br_sysfs_if.c b/net/bridge/br_sysfs_if.c
> index dd595bd..7f66aa4 100644
> --- a/net/bridge/br_sysfs_if.c
> +++ b/net/bridge/br_sysfs_if.c
> @@ -25,6 +25,8 @@ struct brport_attribute {
> ssize_t (*show)(struct net_bridge_port *, char *);
> int (*store)(struct net_bridge_port *, unsigned long);
> };
> +static int store_flag(struct net_bridge_port *p, unsigned long v,
> + unsigned long mask);
>
> #define BRPORT_ATTR(_name, _mode, _show, _store) \
> const struct brport_attribute brport_attr_##_name = { \
nitpicking:
Do we have to have forward declarations like this?
They make it harder to find where the code is.
Also, pls add an empty line between struct and function.
> @@ -41,20 +43,27 @@ static ssize_t show_##_name(struct net_bridge_port *p, char *buf) \
> } \
> static int store_##_name(struct net_bridge_port *p, unsigned long v) \
> { \
> - unsigned long flags = p->flags; \
> - if (v) \
> - flags |= _mask; \
> - else \
> - flags &= ~_mask; \
> - if (flags != p->flags) { \
> - p->flags = flags; \
> - br_ifinfo_notify(RTM_NEWLINK, p); \
> - } \
> - return 0; \
> + return store_flag(p, v, _mask); \
> } \
> static BRPORT_ATTR(_name, S_IRUGO | S_IWUSR, \
> show_##_name, store_##_name)
>
> +static int store_flag(struct net_bridge_port *p, unsigned long v,
> + unsigned long mask)
> +{
> + unsigned long flags = p->flags;
> +
> + if (v)
> + flags |= mask;
> + else
> + flags &= ~mask;
> +
> + if (flags != p->flags) {
> + p->flags = flags;
> + br_ifinfo_notify(RTM_NEWLINK, p);
> + }
> + return 0;
> +}
>
> static ssize_t show_path_cost(struct net_bridge_port *p, char *buf)
> {
> --
> 1.8.5.3
WARNING: multiple messages have this Message-ID (diff)
From: "Michael S. Tsirkin" <mst@redhat.com>
To: Vlad Yasevich <vyasevic@redhat.com>
Cc: john.r.fastabend@intel.com, netdev@vger.kernel.org,
shemminger@vyatta.com, bridge@lists.linux-foundation.org,
jhs@mojatatu.com
Subject: Re: [PATCH 1/7] bridge: Turn flag change macro into a function.
Date: Wed, 26 Feb 2014 17:29:26 +0200 [thread overview]
Message-ID: <20140226152926.GB15330@redhat.com> (raw)
In-Reply-To: <1393427905-6811-2-git-send-email-vyasevic@redhat.com>
On Wed, Feb 26, 2014 at 10:18:19AM -0500, Vlad Yasevich wrote:
> Turn the flag change macro into a function to allow
> easier updates and to reduce space.
>
> Signed-off-by: Vlad Yasevich <vyasevic@redhat.com>
> ---
> net/bridge/br_sysfs_if.c | 29 +++++++++++++++++++----------
> 1 file changed, 19 insertions(+), 10 deletions(-)
>
> diff --git a/net/bridge/br_sysfs_if.c b/net/bridge/br_sysfs_if.c
> index dd595bd..7f66aa4 100644
> --- a/net/bridge/br_sysfs_if.c
> +++ b/net/bridge/br_sysfs_if.c
> @@ -25,6 +25,8 @@ struct brport_attribute {
> ssize_t (*show)(struct net_bridge_port *, char *);
> int (*store)(struct net_bridge_port *, unsigned long);
> };
> +static int store_flag(struct net_bridge_port *p, unsigned long v,
> + unsigned long mask);
>
> #define BRPORT_ATTR(_name, _mode, _show, _store) \
> const struct brport_attribute brport_attr_##_name = { \
nitpicking:
Do we have to have forward declarations like this?
They make it harder to find where the code is.
Also, pls add an empty line between struct and function.
> @@ -41,20 +43,27 @@ static ssize_t show_##_name(struct net_bridge_port *p, char *buf) \
> } \
> static int store_##_name(struct net_bridge_port *p, unsigned long v) \
> { \
> - unsigned long flags = p->flags; \
> - if (v) \
> - flags |= _mask; \
> - else \
> - flags &= ~_mask; \
> - if (flags != p->flags) { \
> - p->flags = flags; \
> - br_ifinfo_notify(RTM_NEWLINK, p); \
> - } \
> - return 0; \
> + return store_flag(p, v, _mask); \
> } \
> static BRPORT_ATTR(_name, S_IRUGO | S_IWUSR, \
> show_##_name, store_##_name)
>
> +static int store_flag(struct net_bridge_port *p, unsigned long v,
> + unsigned long mask)
> +{
> + unsigned long flags = p->flags;
> +
> + if (v)
> + flags |= mask;
> + else
> + flags &= ~mask;
> +
> + if (flags != p->flags) {
> + p->flags = flags;
> + br_ifinfo_notify(RTM_NEWLINK, p);
> + }
> + return 0;
> +}
>
> static ssize_t show_path_cost(struct net_bridge_port *p, char *buf)
> {
> --
> 1.8.5.3
next prev parent reply other threads:[~2014-02-26 15:29 UTC|newest]
Thread overview: 91+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-02-26 15:18 [Bridge] [PATCH RFC 0/7] Non-promisc bidge ports support Vlad Yasevich
2014-02-26 15:18 ` Vlad Yasevich
2014-02-26 15:18 ` [Bridge] [PATCH 1/7] bridge: Turn flag change macro into a function Vlad Yasevich
2014-02-26 15:18 ` Vlad Yasevich
2014-02-26 15:29 ` Michael S. Tsirkin [this message]
2014-02-26 15:29 ` Michael S. Tsirkin
2014-02-26 15:36 ` [Bridge] " Vlad Yasevich
2014-02-26 15:36 ` Vlad Yasevich
2014-02-26 15:18 ` [Bridge] [PATCH 2/7] bridge: Keep track of ports capable of flooding Vlad Yasevich
2014-02-26 15:18 ` Vlad Yasevich
2014-02-26 15:41 ` [Bridge] " Michael S. Tsirkin
2014-02-26 15:41 ` Michael S. Tsirkin
2014-02-26 15:41 ` [Bridge] " Vlad Yasevich
2014-02-26 15:41 ` Vlad Yasevich
2014-02-26 15:53 ` [Bridge] " Michael S. Tsirkin
2014-02-26 15:53 ` Michael S. Tsirkin
2014-02-27 11:59 ` [Bridge] " Toshiaki Makita
2014-02-27 11:59 ` Toshiaki Makita
2014-02-27 12:54 ` [Bridge] " Vlad Yasevich
2014-02-27 12:54 ` Vlad Yasevich
2014-02-26 15:18 ` [Bridge] [PATCH 3/7] bridge: Add addresses from static fdbs to bridge address list Vlad Yasevich
2014-02-26 15:18 ` Vlad Yasevich
2014-02-26 15:46 ` [Bridge] " Michael S. Tsirkin
2014-02-26 15:46 ` Michael S. Tsirkin
2014-02-26 15:43 ` [Bridge] " Vlad Yasevich
2014-02-26 15:43 ` Vlad Yasevich
2014-02-26 16:23 ` [Bridge] " Michael S. Tsirkin
2014-02-26 16:23 ` Michael S. Tsirkin
2014-02-26 17:25 ` [Bridge] " Vlad Yasevich
2014-02-26 17:25 ` Vlad Yasevich
2014-02-26 17:33 ` [Bridge] " Michael S. Tsirkin
2014-02-26 17:33 ` Michael S. Tsirkin
2014-02-26 16:57 ` [Bridge] " Stephen Hemminger
2014-02-26 16:57 ` Stephen Hemminger
2014-02-26 17:35 ` [Bridge] " Vlad Yasevich
2014-02-26 17:35 ` Vlad Yasevich
2014-02-27 7:53 ` [Bridge] " Michael S. Tsirkin
2014-02-27 7:53 ` Michael S. Tsirkin
2014-02-27 13:08 ` [Bridge] " Vlad Yasevich
2014-02-27 13:08 ` Vlad Yasevich
2014-02-27 13:38 ` [Bridge] " Michael S. Tsirkin
2014-02-27 13:38 ` Michael S. Tsirkin
2014-02-26 15:18 ` [Bridge] [PATCH 4/7] bridge: Automatically manage port promiscuous mode Vlad Yasevich
2014-02-26 15:18 ` Vlad Yasevich
2014-02-26 15:51 ` [Bridge] " Michael S. Tsirkin
2014-02-26 15:51 ` Michael S. Tsirkin
2014-02-26 16:02 ` [Bridge] " Vlad Yasevich
2014-02-26 16:02 ` Vlad Yasevich
2014-02-26 16:58 ` [Bridge] " Stephen Hemminger
2014-02-26 16:58 ` Stephen Hemminger
2014-02-26 17:32 ` [Bridge] " Michael S. Tsirkin
2014-02-26 17:32 ` Michael S. Tsirkin
2014-02-26 15:18 ` [Bridge] [PATCH 5/7] bridge: Correctly manage promiscuity when user requested it Vlad Yasevich
2014-02-26 15:18 ` Vlad Yasevich
2014-02-26 15:18 ` [Bridge] [PATCH 6/7] bridge: Manage promisc mode when vlans are configured on top of a bridge Vlad Yasevich
2014-02-26 15:18 ` Vlad Yasevich
2014-02-26 16:00 ` [Bridge] " Michael S. Tsirkin
2014-02-26 16:00 ` Michael S. Tsirkin
2014-02-26 16:05 ` [Bridge] " Vlad Yasevich
2014-02-26 16:05 ` Vlad Yasevich
2014-02-26 16:25 ` [Bridge] " Michael S. Tsirkin
2014-02-26 16:25 ` Michael S. Tsirkin
2014-02-27 12:06 ` [Bridge] " Toshiaki Makita
2014-02-27 12:06 ` Toshiaki Makita
2014-02-27 13:17 ` [Bridge] " Vlad Yasevich
2014-02-27 13:17 ` Vlad Yasevich
2014-02-28 19:34 ` [Bridge] " Vlad Yasevich
2014-02-28 19:34 ` Vlad Yasevich
2014-03-01 14:57 ` [Bridge] " Toshiaki Makita
2014-03-01 14:57 ` Toshiaki Makita
2014-03-03 12:12 ` [Bridge] " Vlad Yasevich
2014-03-03 12:12 ` Vlad Yasevich
2014-02-26 15:18 ` [Bridge] [PATCH 7/7] bridge: Support promisc management when all ports are non-flooding Vlad Yasevich
2014-02-26 15:18 ` Vlad Yasevich
2014-02-26 15:57 ` [Bridge] " Michael S. Tsirkin
2014-02-26 15:57 ` Michael S. Tsirkin
2014-02-27 3:46 ` [Bridge] " Vlad Yasevich
2014-02-27 3:46 ` Vlad Yasevich
2014-02-27 7:29 ` [Bridge] " Michael S. Tsirkin
2014-02-27 7:29 ` Michael S. Tsirkin
2014-02-26 16:01 ` [Bridge] " Michael S. Tsirkin
2014-02-26 16:01 ` Michael S. Tsirkin
2014-02-26 16:34 ` [Bridge] [PATCH RFC 0/7] Non-promisc bidge ports support Michael S. Tsirkin
2014-02-26 16:34 ` Michael S. Tsirkin
2014-02-26 23:59 ` [Bridge] " Jamal Hadi Salim
2014-02-26 23:59 ` Jamal Hadi Salim
2014-02-27 3:37 ` [Bridge] " Vlad Yasevich
2014-02-27 3:37 ` Vlad Yasevich
2014-02-27 8:54 ` [Bridge] " Amidu Sila
2014-02-27 7:20 ` Michael S. Tsirkin
2014-02-27 7:20 ` Michael S. Tsirkin
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=20140226152926.GB15330@redhat.com \
--to=mst@redhat.com \
--cc=bridge@lists.linux-foundation.org \
--cc=jhs@mojatatu.com \
--cc=john.r.fastabend@intel.com \
--cc=netdev@vger.kernel.org \
--cc=shemminger@vyatta.com \
--cc=vyasevic@redhat.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.