From: "Vlad Zolotarov" <vladz@broadcom.com>
To: "Michal Schmidt" <mschmidt@redhat.com>
Cc: "netdev@vger.kernel.org" <netdev@vger.kernel.org>,
"Dmitry Kravkov" <dmitry@broadcom.com>,
"Eilon Greenstein" <eilong@broadcom.com>
Subject: Re: [PATCH 2/7] bnx2x: remove the 'leading' arguments
Date: Wed, 31 Aug 2011 12:57:33 +0300 [thread overview]
Message-ID: <201108311257.33801.vladz@broadcom.com> (raw)
In-Reply-To: <1314714646-3642-3-git-send-email-mschmidt@redhat.com>
On Tuesday 30 August 2011 17:30:41 Michal Schmidt wrote:
> Whether a queue is leading can be deduced from its index.
>
> Signed-off-by: Michal Schmidt <mschmidt@redhat.com>
> ---
> drivers/net/ethernet/broadcom/bnx2x/bnx2x.h | 1 +
> drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c | 2 +-
> drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.h | 4 +---
> drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c | 21
> +++++++++------------ 4 files changed, 12 insertions(+), 16 deletions(-)
>
> diff --git a/drivers/net/ethernet/broadcom/bnx2x/bnx2x.h
> b/drivers/net/ethernet/broadcom/bnx2x/bnx2x.h index 735e491..c0d2d9c
> 100644
> --- a/drivers/net/ethernet/broadcom/bnx2x/bnx2x.h
> +++ b/drivers/net/ethernet/broadcom/bnx2x/bnx2x.h
> @@ -531,6 +531,7 @@ struct bnx2x_fastpath {
>
> #define IS_ETH_FP(fp) (fp->index < \
> BNX2X_NUM_ETH_QUEUES(fp->bp))
> +#define IS_LEADING_FP(fp) ((fp)->index == 0)
> #ifdef BCM_CNIC
> #define IS_FCOE_FP(fp) (fp->index == FCOE_IDX)
> #define IS_FCOE_IDX(idx) ((idx) == FCOE_IDX)
> diff --git a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c
> b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c index 5c3eb17..448e301
> 100644
> --- a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c
> +++ b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c
> @@ -1881,7 +1881,7 @@ int bnx2x_nic_load(struct bnx2x *bp, int load_mode)
> #endif
>
> for_each_nondefault_queue(bp, i) {
> - rc = bnx2x_setup_queue(bp, &bp->fp[i], 0);
> + rc = bnx2x_setup_queue(bp, &bp->fp[i]);
> if (rc)
> LOAD_ERROR_EXIT(bp, load_error4);
> }
> diff --git a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.h
> b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.h index 5b1f9b5..54d50b7
> 100644
> --- a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.h
> +++ b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.h
> @@ -109,11 +109,9 @@ void bnx2x__init_func_obj(struct bnx2x *bp);
> *
> * @bp: driver handle
> * @fp: pointer to the fastpath structure
> - * @leading: boolean
> *
> */
> -int bnx2x_setup_queue(struct bnx2x *bp, struct bnx2x_fastpath *fp,
> - bool leading);
> +int bnx2x_setup_queue(struct bnx2x *bp, struct bnx2x_fastpath *fp);
>
> /**
> * bnx2x_setup_leading - bring up a leading eth queue.
> diff --git a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c
> b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c index e7b584b..64314f7
> 100644
> --- a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c
> +++ b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c
> @@ -2697,9 +2697,8 @@ static inline unsigned long
> bnx2x_get_common_flags(struct bnx2x *bp, return flags;
> }
>
> -static inline unsigned long bnx2x_get_q_flags(struct bnx2x *bp,
> - struct bnx2x_fastpath *fp,
> - bool leading)
> +static unsigned long bnx2x_get_q_flags(struct bnx2x *bp,
> + struct bnx2x_fastpath *fp)
> {
> unsigned long flags = 0;
>
> @@ -2715,7 +2714,7 @@ static inline unsigned long bnx2x_get_q_flags(struct
> bnx2x *bp, __set_bit(BNX2X_Q_FLG_TPA_IPV6, &flags);
> }
>
> - if (leading) {
> + if (IS_LEADING_FP(fp)) {
> __set_bit(BNX2X_Q_FLG_LEADING_RSS, &flags);
> __set_bit(BNX2X_Q_FLG_MCAST, &flags);
> }
> @@ -6966,7 +6965,7 @@ int bnx2x_set_eth_mac(struct bnx2x *bp, bool set)
>
> int bnx2x_setup_leading(struct bnx2x *bp)
> {
> - return bnx2x_setup_queue(bp, &bp->fp[0], 1);
> + return bnx2x_setup_queue(bp, &bp->fp[0]);
> }
>
> /**
> @@ -7177,10 +7176,10 @@ static inline void bnx2x_pf_q_prep_init(struct
> bnx2x *bp, &bp->context.vcxt[fp->txdata[cos].cid].eth;
> }
>
> -int bnx2x_setup_tx_only(struct bnx2x *bp, struct bnx2x_fastpath *fp,
> +static int bnx2x_setup_tx_only(struct bnx2x *bp, struct bnx2x_fastpath
> *fp, struct bnx2x_queue_state_params *q_params,
> struct bnx2x_queue_setup_tx_only_params
*tx_only_params,
> - int tx_index, bool leading)
> + int tx_index)
> {
> memset(tx_only_params, 0, sizeof(*tx_only_params));
>
> @@ -7216,14 +7215,12 @@ int bnx2x_setup_tx_only(struct bnx2x *bp, struct
> bnx2x_fastpath *fp, *
> * @bp: driver handle
> * @fp: pointer to fastpath
> - * @leading: is leading
> *
> * This function performs 2 steps in a Queue state machine
> * actually: 1) RESET->INIT 2) INIT->SETUP
> */
>
> -int bnx2x_setup_queue(struct bnx2x *bp, struct bnx2x_fastpath *fp,
> - bool leading)
> +int bnx2x_setup_queue(struct bnx2x *bp, struct bnx2x_fastpath *fp)
> {
> struct bnx2x_queue_state_params q_params = {0};
> struct bnx2x_queue_setup_params *setup_params =
> @@ -7264,7 +7261,7 @@ int bnx2x_setup_queue(struct bnx2x *bp, struct
> bnx2x_fastpath *fp, memset(setup_params, 0, sizeof(*setup_params));
>
> /* Set QUEUE flags */
> - setup_params->flags = bnx2x_get_q_flags(bp, fp, leading);
> + setup_params->flags = bnx2x_get_q_flags(bp, fp);
>
> /* Set general SETUP parameters */
> bnx2x_pf_q_prep_general(bp, fp, &setup_params->gen_params,
> @@ -7293,7 +7290,7 @@ int bnx2x_setup_queue(struct bnx2x *bp, struct
> bnx2x_fastpath *fp,
>
> /* prepare and send tx-only ramrod*/
> rc = bnx2x_setup_tx_only(bp, fp, &q_params,
> - tx_only_params, tx_index, leading);
> + tx_only_params, tx_index);
> if (rc) {
> BNX2X_ERR("Queue(%d.%d) TX_ONLY_SETUP failed\n",
> fp->index, tx_index);
NACK
Removing this parameter would decrese the flexability of our code.
For instance we are using this function in our KVM code, which is under the
development now, where we define a few RSS groups on the same PF and then
"leading" fp may have an index different from 0.
It's a shame to remove this code now in order to submit it back later...
thanks,
vlad
next prev parent reply other threads:[~2011-08-31 9:58 UTC|newest]
Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-08-30 14:30 [PATCH 0/7 net-next] bnx2x: cleanups and VLAN stripping toggle Michal Schmidt
2011-08-30 14:30 ` [PATCH 1/7] bnx2x: remove unused fields in struct bnx2x_func_init_params Michal Schmidt
2011-08-31 10:07 ` Vlad Zolotarov
2011-08-30 14:30 ` [PATCH 2/7] bnx2x: remove the 'leading' arguments Michal Schmidt
2011-08-31 9:57 ` Vlad Zolotarov [this message]
2011-08-30 14:30 ` [PATCH 3/7] bnx2x: decrease indentation in bnx2x_rx_int() Michal Schmidt
2011-08-31 10:33 ` Vlad Zolotarov
2011-08-30 14:30 ` [PATCH 4/7] bnx2x: simplify TPA sanity check Michal Schmidt
2011-08-31 10:22 ` Vlad Zolotarov
2011-08-30 14:30 ` [PATCH 5/7] bnx2x: do not set TPA flags and features in bnx2x_init_bp Michal Schmidt
2011-08-30 16:21 ` Vlad Zolotarov
2011-08-30 17:15 ` Michal Schmidt
2011-08-30 14:30 ` [PATCH 6/7] bnx2x: move fp->disable_tpa to ->flags Michal Schmidt
2011-08-30 14:30 ` [PATCH 7/7] bnx2x: expose HW RX VLAN stripping toggle Michal Schmidt
2011-08-30 18:27 ` Michał Mirosław
2011-08-30 19:30 ` Michal Schmidt
2011-08-30 20:08 ` Michał Mirosław
2011-08-31 12:01 ` Vlad Zolotarov
2011-08-31 13:53 ` Michal Schmidt
2011-08-31 15:07 ` Vlad Zolotarov
2011-08-31 15:37 ` Michal Schmidt
2011-08-31 15:51 ` Michal Schmidt
2011-08-31 16:16 ` Vlad Zolotarov
2011-08-31 18:11 ` Michał Mirosław
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=201108311257.33801.vladz@broadcom.com \
--to=vladz@broadcom.com \
--cc=dmitry@broadcom.com \
--cc=eilong@broadcom.com \
--cc=mschmidt@redhat.com \
--cc=netdev@vger.kernel.org \
/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.