Message ID | 20201104223354.63856-7-snelson@pensando.io |
---|---|
State | New |
Headers | show |
Series | [net-next,1/6] ionic: start queues before announcing link up | expand |
On Wed, 2020-11-04 at 14:33 -0800, Shannon Nelson wrote: > With a few more uses of true and false in function calls, we > need to give them some useful names so we can tell from the > calling point what we're doing. > Aha! The root cause of the issue is passing booleans to functions in first place, it is usually a bad idea that could lead to complication and overloading the design for no reason, please see my suggestion in the previous patch maybe you can apply the same approach on some of the booleans below. > Signed-off-by: Shannon Nelson <snelson@pensando.io> > --- > drivers/net/ethernet/pensando/ionic/ionic_lif.c | 16 ++++++++------- > - > drivers/net/ethernet/pensando/ionic/ionic_lif.h | 8 ++++++++ > 2 files changed, 16 insertions(+), 8 deletions(-) > > diff --git a/drivers/net/ethernet/pensando/ionic/ionic_lif.c > b/drivers/net/ethernet/pensando/ionic/ionic_lif.c > index a58bb572b23b..a0d2989a0d8d 100644 > --- a/drivers/net/ethernet/pensando/ionic/ionic_lif.c > +++ b/drivers/net/ethernet/pensando/ionic/ionic_lif.c > @@ -1074,22 +1074,22 @@ static int ionic_lif_addr(struct ionic_lif > *lif, const u8 *addr, bool add, > > static int ionic_addr_add(struct net_device *netdev, const u8 *addr) > { > - return ionic_lif_addr(netdev_priv(netdev), addr, true, true); > + return ionic_lif_addr(netdev_priv(netdev), addr, ADD_ADDR, > CAN_SLEEP); > } > > static int ionic_ndo_addr_add(struct net_device *netdev, const u8 > *addr) > { > - return ionic_lif_addr(netdev_priv(netdev), addr, true, false); > + return ionic_lif_addr(netdev_priv(netdev), addr, ADD_ADDR, > CAN_NOT_SLEEP); > } > > static int ionic_addr_del(struct net_device *netdev, const u8 *addr) > { > - return ionic_lif_addr(netdev_priv(netdev), addr, false, true); > + return ionic_lif_addr(netdev_priv(netdev), addr, DEL_ADDR, > CAN_SLEEP); > } > > static int ionic_ndo_addr_del(struct net_device *netdev, const u8 > *addr) > { > - return ionic_lif_addr(netdev_priv(netdev), addr, false, false); > + return ionic_lif_addr(netdev_priv(netdev), addr, DEL_ADDR, > CAN_NOT_SLEEP); > } > > static void ionic_lif_rx_mode(struct ionic_lif *lif, unsigned int > rx_mode) > @@ -1214,7 +1214,7 @@ static void ionic_set_rx_mode(struct net_device > *netdev, bool from_ndo) > > static void ionic_ndo_set_rx_mode(struct net_device *netdev) > { > - ionic_set_rx_mode(netdev, true); > + ionic_set_rx_mode(netdev, FROM_NDO); > } > > static __le64 ionic_netdev_features_to_nic(netdev_features_t > features) > @@ -1805,7 +1805,7 @@ static int ionic_txrx_init(struct ionic_lif > *lif) > if (lif->netdev->features & NETIF_F_RXHASH) > ionic_lif_rss_init(lif); > > - ionic_set_rx_mode(lif->netdev, false); > + ionic_set_rx_mode(lif->netdev, NOT_FROM_NDO); > > return 0; > > @@ -2813,7 +2813,7 @@ static int ionic_station_set(struct ionic_lif > *lif) > */ > if (!ether_addr_equal(ctx.comp.lif_getattr.mac, > netdev->dev_addr)) > - ionic_lif_addr(lif, netdev->dev_addr, true, > true); > + ionic_lif_addr(lif, netdev->dev_addr, ADD_ADDR, > CAN_SLEEP); > } else { > /* Update the netdev mac with the device's mac */ > memcpy(addr.sa_data, ctx.comp.lif_getattr.mac, netdev- > >addr_len); > @@ -2830,7 +2830,7 @@ static int ionic_station_set(struct ionic_lif > *lif) > > netdev_dbg(lif->netdev, "adding station MAC addr %pM\n", > netdev->dev_addr); > - ionic_lif_addr(lif, netdev->dev_addr, true, true); > + ionic_lif_addr(lif, netdev->dev_addr, ADD_ADDR, CAN_SLEEP); > > return 0; > } > diff --git a/drivers/net/ethernet/pensando/ionic/ionic_lif.h > b/drivers/net/ethernet/pensando/ionic/ionic_lif.h > index 0224dfd24b8a..493de679b498 100644 > --- a/drivers/net/ethernet/pensando/ionic/ionic_lif.h > +++ b/drivers/net/ethernet/pensando/ionic/ionic_lif.h > @@ -13,6 +13,14 @@ > > #define IONIC_MAX_NUM_NAPI_CNTR (NAPI_POLL_WEIGHT + 1) > #define IONIC_MAX_NUM_SG_CNTR (IONIC_TX_MAX_SG_ELEMS > + 1) > + > +#define ADD_ADDR true > +#define DEL_ADDR false > +#define CAN_SLEEP true > +#define CAN_NOT_SLEEP false > +#define FROM_NDO true > +#define NOT_FROM_NDO false > + > #define IONIC_RX_COPYBREAK_DEFAULT 256 > #define IONIC_TX_BUDGET_DEFAULT 256 >
On 11/4/20 5:21 PM, Saeed Mahameed wrote: > On Wed, 2020-11-04 at 14:33 -0800, Shannon Nelson wrote: >> With a few more uses of true and false in function calls, we >> need to give them some useful names so we can tell from the >> calling point what we're doing. >> > Aha! The root cause of the issue is passing booleans to functions in > first place, it is usually a bad idea that could lead to complication > and overloading the design for no reason, please see my suggestion in > the previous patch maybe you can apply the same approach on some of the > booleans below. Yes, this is similar to what I was commenting on when I responded to the in_interrupt() patches. However, when the code around Add and Delete is identicle and called from multiple places, it is handy to put it in one place with a boolean so as to not have multiple instances to maintain. Yes, it's a tradeoff, and these #defines are meant to help ease the readability. The v2 for patch 5/6 in this patchset might help this a little, I'll see what I can do. Thanks for you time in looking through these patches. Cheers, sln > >> Signed-off-by: Shannon Nelson <snelson@pensando.io> >> --- >> drivers/net/ethernet/pensando/ionic/ionic_lif.c | 16 ++++++++------- >> - >> drivers/net/ethernet/pensando/ionic/ionic_lif.h | 8 ++++++++ >> 2 files changed, 16 insertions(+), 8 deletions(-) >> >> diff --git a/drivers/net/ethernet/pensando/ionic/ionic_lif.c >> b/drivers/net/ethernet/pensando/ionic/ionic_lif.c >> index a58bb572b23b..a0d2989a0d8d 100644 >> --- a/drivers/net/ethernet/pensando/ionic/ionic_lif.c >> +++ b/drivers/net/ethernet/pensando/ionic/ionic_lif.c >> @@ -1074,22 +1074,22 @@ static int ionic_lif_addr(struct ionic_lif >> *lif, const u8 *addr, bool add, >> >> static int ionic_addr_add(struct net_device *netdev, const u8 *addr) >> { >> - return ionic_lif_addr(netdev_priv(netdev), addr, true, true); >> + return ionic_lif_addr(netdev_priv(netdev), addr, ADD_ADDR, >> CAN_SLEEP); >> } >> >> static int ionic_ndo_addr_add(struct net_device *netdev, const u8 >> *addr) >> { >> - return ionic_lif_addr(netdev_priv(netdev), addr, true, false); >> + return ionic_lif_addr(netdev_priv(netdev), addr, ADD_ADDR, >> CAN_NOT_SLEEP); >> } >> >> static int ionic_addr_del(struct net_device *netdev, const u8 *addr) >> { >> - return ionic_lif_addr(netdev_priv(netdev), addr, false, true); >> + return ionic_lif_addr(netdev_priv(netdev), addr, DEL_ADDR, >> CAN_SLEEP); >> } >> >> static int ionic_ndo_addr_del(struct net_device *netdev, const u8 >> *addr) >> { >> - return ionic_lif_addr(netdev_priv(netdev), addr, false, false); >> + return ionic_lif_addr(netdev_priv(netdev), addr, DEL_ADDR, >> CAN_NOT_SLEEP); >> } >> >> static void ionic_lif_rx_mode(struct ionic_lif *lif, unsigned int >> rx_mode) >> @@ -1214,7 +1214,7 @@ static void ionic_set_rx_mode(struct net_device >> *netdev, bool from_ndo) >> >> static void ionic_ndo_set_rx_mode(struct net_device *netdev) >> { >> - ionic_set_rx_mode(netdev, true); >> + ionic_set_rx_mode(netdev, FROM_NDO); >> } >> >> static __le64 ionic_netdev_features_to_nic(netdev_features_t >> features) >> @@ -1805,7 +1805,7 @@ static int ionic_txrx_init(struct ionic_lif >> *lif) >> if (lif->netdev->features & NETIF_F_RXHASH) >> ionic_lif_rss_init(lif); >> >> - ionic_set_rx_mode(lif->netdev, false); >> + ionic_set_rx_mode(lif->netdev, NOT_FROM_NDO); >> >> return 0; >> >> @@ -2813,7 +2813,7 @@ static int ionic_station_set(struct ionic_lif >> *lif) >> */ >> if (!ether_addr_equal(ctx.comp.lif_getattr.mac, >> netdev->dev_addr)) >> - ionic_lif_addr(lif, netdev->dev_addr, true, >> true); >> + ionic_lif_addr(lif, netdev->dev_addr, ADD_ADDR, >> CAN_SLEEP); >> } else { >> /* Update the netdev mac with the device's mac */ >> memcpy(addr.sa_data, ctx.comp.lif_getattr.mac, netdev- >>> addr_len); >> @@ -2830,7 +2830,7 @@ static int ionic_station_set(struct ionic_lif >> *lif) >> >> netdev_dbg(lif->netdev, "adding station MAC addr %pM\n", >> netdev->dev_addr); >> - ionic_lif_addr(lif, netdev->dev_addr, true, true); >> + ionic_lif_addr(lif, netdev->dev_addr, ADD_ADDR, CAN_SLEEP); >> >> return 0; >> } >> diff --git a/drivers/net/ethernet/pensando/ionic/ionic_lif.h >> b/drivers/net/ethernet/pensando/ionic/ionic_lif.h >> index 0224dfd24b8a..493de679b498 100644 >> --- a/drivers/net/ethernet/pensando/ionic/ionic_lif.h >> +++ b/drivers/net/ethernet/pensando/ionic/ionic_lif.h >> @@ -13,6 +13,14 @@ >> >> #define IONIC_MAX_NUM_NAPI_CNTR (NAPI_POLL_WEIGHT + 1) >> #define IONIC_MAX_NUM_SG_CNTR (IONIC_TX_MAX_SG_ELEMS >> + 1) >> + >> +#define ADD_ADDR true >> +#define DEL_ADDR false >> +#define CAN_SLEEP true >> +#define CAN_NOT_SLEEP false >> +#define FROM_NDO true >> +#define NOT_FROM_NDO false >> + >> #define IONIC_RX_COPYBREAK_DEFAULT 256 >> #define IONIC_TX_BUDGET_DEFAULT 256 >>
diff --git a/drivers/net/ethernet/pensando/ionic/ionic_lif.c b/drivers/net/ethernet/pensando/ionic/ionic_lif.c index a58bb572b23b..a0d2989a0d8d 100644 --- a/drivers/net/ethernet/pensando/ionic/ionic_lif.c +++ b/drivers/net/ethernet/pensando/ionic/ionic_lif.c @@ -1074,22 +1074,22 @@ static int ionic_lif_addr(struct ionic_lif *lif, const u8 *addr, bool add, static int ionic_addr_add(struct net_device *netdev, const u8 *addr) { - return ionic_lif_addr(netdev_priv(netdev), addr, true, true); + return ionic_lif_addr(netdev_priv(netdev), addr, ADD_ADDR, CAN_SLEEP); } static int ionic_ndo_addr_add(struct net_device *netdev, const u8 *addr) { - return ionic_lif_addr(netdev_priv(netdev), addr, true, false); + return ionic_lif_addr(netdev_priv(netdev), addr, ADD_ADDR, CAN_NOT_SLEEP); } static int ionic_addr_del(struct net_device *netdev, const u8 *addr) { - return ionic_lif_addr(netdev_priv(netdev), addr, false, true); + return ionic_lif_addr(netdev_priv(netdev), addr, DEL_ADDR, CAN_SLEEP); } static int ionic_ndo_addr_del(struct net_device *netdev, const u8 *addr) { - return ionic_lif_addr(netdev_priv(netdev), addr, false, false); + return ionic_lif_addr(netdev_priv(netdev), addr, DEL_ADDR, CAN_NOT_SLEEP); } static void ionic_lif_rx_mode(struct ionic_lif *lif, unsigned int rx_mode) @@ -1214,7 +1214,7 @@ static void ionic_set_rx_mode(struct net_device *netdev, bool from_ndo) static void ionic_ndo_set_rx_mode(struct net_device *netdev) { - ionic_set_rx_mode(netdev, true); + ionic_set_rx_mode(netdev, FROM_NDO); } static __le64 ionic_netdev_features_to_nic(netdev_features_t features) @@ -1805,7 +1805,7 @@ static int ionic_txrx_init(struct ionic_lif *lif) if (lif->netdev->features & NETIF_F_RXHASH) ionic_lif_rss_init(lif); - ionic_set_rx_mode(lif->netdev, false); + ionic_set_rx_mode(lif->netdev, NOT_FROM_NDO); return 0; @@ -2813,7 +2813,7 @@ static int ionic_station_set(struct ionic_lif *lif) */ if (!ether_addr_equal(ctx.comp.lif_getattr.mac, netdev->dev_addr)) - ionic_lif_addr(lif, netdev->dev_addr, true, true); + ionic_lif_addr(lif, netdev->dev_addr, ADD_ADDR, CAN_SLEEP); } else { /* Update the netdev mac with the device's mac */ memcpy(addr.sa_data, ctx.comp.lif_getattr.mac, netdev->addr_len); @@ -2830,7 +2830,7 @@ static int ionic_station_set(struct ionic_lif *lif) netdev_dbg(lif->netdev, "adding station MAC addr %pM\n", netdev->dev_addr); - ionic_lif_addr(lif, netdev->dev_addr, true, true); + ionic_lif_addr(lif, netdev->dev_addr, ADD_ADDR, CAN_SLEEP); return 0; } diff --git a/drivers/net/ethernet/pensando/ionic/ionic_lif.h b/drivers/net/ethernet/pensando/ionic/ionic_lif.h index 0224dfd24b8a..493de679b498 100644 --- a/drivers/net/ethernet/pensando/ionic/ionic_lif.h +++ b/drivers/net/ethernet/pensando/ionic/ionic_lif.h @@ -13,6 +13,14 @@ #define IONIC_MAX_NUM_NAPI_CNTR (NAPI_POLL_WEIGHT + 1) #define IONIC_MAX_NUM_SG_CNTR (IONIC_TX_MAX_SG_ELEMS + 1) + +#define ADD_ADDR true +#define DEL_ADDR false +#define CAN_SLEEP true +#define CAN_NOT_SLEEP false +#define FROM_NDO true +#define NOT_FROM_NDO false + #define IONIC_RX_COPYBREAK_DEFAULT 256 #define IONIC_TX_BUDGET_DEFAULT 256
With a few more uses of true and false in function calls, we need to give them some useful names so we can tell from the calling point what we're doing. Signed-off-by: Shannon Nelson <snelson@pensando.io> --- drivers/net/ethernet/pensando/ionic/ionic_lif.c | 16 ++++++++-------- drivers/net/ethernet/pensando/ionic/ionic_lif.h | 8 ++++++++ 2 files changed, 16 insertions(+), 8 deletions(-)