Re: [PATCH net-next] bnxt_en: Fix randconfig build errors.

2017-10-28 Thread David Miller
From: Michael Chan 
Date: Sat, 28 Oct 2017 01:56:10 -0400

> Fix undefined symbols when CONFIG_VLAN_8021Q or CONFIG_INET is not set.
> 
> Fixes: 8c95f773b4a3 ("bnxt_en: add support for Flower based vxlan encap/decap 
> offload")
> Reported-by: Jakub Kicinski 
> Signed-off-by: Michael Chan 

Applied, thanks Michael.


Re: [PATCH net-next] bnxt_en: Fix randconfig build errors.

2017-10-28 Thread Michael Chan
On Fri, Oct 27, 2017 at 11:15 PM, Jakub Kicinski  wrote:
> On Sat, 28 Oct 2017 14:05:04 +0800, Yunsheng Lin wrote:
>> Hi, Michael
>>
>> On 2017/10/28 13:56, Michael Chan wrote:
>> > Fix undefined symbols when CONFIG_VLAN_8021Q or CONFIG_INET is not set.
>> >
>> > Fixes: 8c95f773b4a3 ("bnxt_en: add support for Flower based vxlan 
>> > encap/decap offload")
>> > Reported-by: Jakub Kicinski 
>> > Signed-off-by: Michael Chan 
>> > ---
>> >  drivers/net/ethernet/broadcom/bnxt/bnxt_tc.c | 6 ++
>> >  1 file changed, 6 insertions(+)
>> >
>> > diff --git a/drivers/net/ethernet/broadcom/bnxt/bnxt_tc.c 
>> > b/drivers/net/ethernet/broadcom/bnxt/bnxt_tc.c
>> > index 798d139..d5031f4 100644
>> > --- a/drivers/net/ethernet/broadcom/bnxt/bnxt_tc.c
>> > +++ b/drivers/net/ethernet/broadcom/bnxt/bnxt_tc.c
>> > @@ -904,6 +904,7 @@ static int bnxt_tc_resolve_tunnel_hdrs(struct bnxt *bp,
>> >struct bnxt_tc_l2_key *l2_info,
>> >struct net_device *real_dst_dev)
>> >  {
>> > +#ifdef CONFIG_INET
>>
>> Can we use #if IS_ENABLED(CONFIG_INET) here too?
>>
>> I am not familiar with IS_ENABLED, just thought it would be
>> good to be constistent because you are using IS_ENABLED below.
>
> It's OK, CONFIG_INET can't be a module.
>
>> > struct flowi4 flow = { {0} };
>> > struct net_device *dst_dev;
>> > struct neighbour *nbr;
>> > @@ -925,6 +926,7 @@ static int bnxt_tc_resolve_tunnel_hdrs(struct bnxt *bp,
>> >  */
>> > dst_dev = rt->dst.dev;
>> > if (is_vlan_dev(dst_dev)) {
>> > +#if IS_ENABLED(CONFIG_VLAN_8021Q)
>
> But here you should perhaps use IS_REACHABLE() otherwise when bnxt is
> built in and 8021q is a module there could be trouble, no?

I believe there shouldn't be trouble because the vlan_core code is
always builtin if CONFIG_VLAN_8021Q is m or y.  The symbols we need
are in vlan_core.


Re: [PATCH net-next] bnxt_en: Fix randconfig build errors.

2017-10-28 Thread Jakub Kicinski
On Sat, 28 Oct 2017 14:05:04 +0800, Yunsheng Lin wrote:
> Hi, Michael
> 
> On 2017/10/28 13:56, Michael Chan wrote:
> > Fix undefined symbols when CONFIG_VLAN_8021Q or CONFIG_INET is not set.
> > 
> > Fixes: 8c95f773b4a3 ("bnxt_en: add support for Flower based vxlan 
> > encap/decap offload")
> > Reported-by: Jakub Kicinski 
> > Signed-off-by: Michael Chan 
> > ---
> >  drivers/net/ethernet/broadcom/bnxt/bnxt_tc.c | 6 ++
> >  1 file changed, 6 insertions(+)
> > 
> > diff --git a/drivers/net/ethernet/broadcom/bnxt/bnxt_tc.c 
> > b/drivers/net/ethernet/broadcom/bnxt/bnxt_tc.c
> > index 798d139..d5031f4 100644
> > --- a/drivers/net/ethernet/broadcom/bnxt/bnxt_tc.c
> > +++ b/drivers/net/ethernet/broadcom/bnxt/bnxt_tc.c
> > @@ -904,6 +904,7 @@ static int bnxt_tc_resolve_tunnel_hdrs(struct bnxt *bp,
> >struct bnxt_tc_l2_key *l2_info,
> >struct net_device *real_dst_dev)
> >  {
> > +#ifdef CONFIG_INET  
> 
> Can we use #if IS_ENABLED(CONFIG_INET) here too?
> 
> I am not familiar with IS_ENABLED, just thought it would be
> good to be constistent because you are using IS_ENABLED below.

It's OK, CONFIG_INET can't be a module.

> > struct flowi4 flow = { {0} };
> > struct net_device *dst_dev;
> > struct neighbour *nbr;
> > @@ -925,6 +926,7 @@ static int bnxt_tc_resolve_tunnel_hdrs(struct bnxt *bp,
> >  */
> > dst_dev = rt->dst.dev;
> > if (is_vlan_dev(dst_dev)) {
> > +#if IS_ENABLED(CONFIG_VLAN_8021Q)

But here you should perhaps use IS_REACHABLE() otherwise when bnxt is
built in and 8021q is a module there could be trouble, no?


Re: [PATCH net-next] bnxt_en: Fix randconfig build errors.

2017-10-28 Thread Yunsheng Lin
Hi, Michael

On 2017/10/28 13:56, Michael Chan wrote:
> Fix undefined symbols when CONFIG_VLAN_8021Q or CONFIG_INET is not set.
> 
> Fixes: 8c95f773b4a3 ("bnxt_en: add support for Flower based vxlan encap/decap 
> offload")
> Reported-by: Jakub Kicinski 
> Signed-off-by: Michael Chan 
> ---
>  drivers/net/ethernet/broadcom/bnxt/bnxt_tc.c | 6 ++
>  1 file changed, 6 insertions(+)
> 
> diff --git a/drivers/net/ethernet/broadcom/bnxt/bnxt_tc.c 
> b/drivers/net/ethernet/broadcom/bnxt/bnxt_tc.c
> index 798d139..d5031f4 100644
> --- a/drivers/net/ethernet/broadcom/bnxt/bnxt_tc.c
> +++ b/drivers/net/ethernet/broadcom/bnxt/bnxt_tc.c
> @@ -904,6 +904,7 @@ static int bnxt_tc_resolve_tunnel_hdrs(struct bnxt *bp,
>  struct bnxt_tc_l2_key *l2_info,
>  struct net_device *real_dst_dev)
>  {
> +#ifdef CONFIG_INET

Can we use #if IS_ENABLED(CONFIG_INET) here too?

I am not familiar with IS_ENABLED, just thought it would be
good to be constistent because you are using IS_ENABLED below.

Best Regards
Yunsheng Lin

>   struct flowi4 flow = { {0} };
>   struct net_device *dst_dev;
>   struct neighbour *nbr;
> @@ -925,6 +926,7 @@ static int bnxt_tc_resolve_tunnel_hdrs(struct bnxt *bp,
>*/
>   dst_dev = rt->dst.dev;
>   if (is_vlan_dev(dst_dev)) {
> +#if IS_ENABLED(CONFIG_VLAN_8021Q)
>   struct vlan_dev_priv *vlan = vlan_dev_priv(dst_dev);
>  
>   if (vlan->real_dev != real_dst_dev) {
> @@ -938,6 +940,7 @@ static int bnxt_tc_resolve_tunnel_hdrs(struct bnxt *bp,
>   l2_info->inner_vlan_tci = htons(vlan->vlan_id);
>   l2_info->inner_vlan_tpid = vlan->vlan_proto;
>   l2_info->num_vlans = 1;
> +#endif
>   } else if (dst_dev != real_dst_dev) {
>   netdev_info(bp->dev,
>   "dst_dev(%s) for %pI4b is not PF-if(%s)",
> @@ -966,6 +969,9 @@ static int bnxt_tc_resolve_tunnel_hdrs(struct bnxt *bp,
>  put_rt:
>   ip_rt_put(rt);
>   return rc;
> +#else
> + return -EOPNOTSUPP;
> +#endif
>  }
>  
>  static int bnxt_tc_get_decap_handle(struct bnxt *bp, struct bnxt_tc_flow 
> *flow,
> 



[PATCH net-next] bnxt_en: Fix randconfig build errors.

2017-10-27 Thread Michael Chan
Fix undefined symbols when CONFIG_VLAN_8021Q or CONFIG_INET is not set.

Fixes: 8c95f773b4a3 ("bnxt_en: add support for Flower based vxlan encap/decap 
offload")
Reported-by: Jakub Kicinski 
Signed-off-by: Michael Chan 
---
 drivers/net/ethernet/broadcom/bnxt/bnxt_tc.c | 6 ++
 1 file changed, 6 insertions(+)

diff --git a/drivers/net/ethernet/broadcom/bnxt/bnxt_tc.c 
b/drivers/net/ethernet/broadcom/bnxt/bnxt_tc.c
index 798d139..d5031f4 100644
--- a/drivers/net/ethernet/broadcom/bnxt/bnxt_tc.c
+++ b/drivers/net/ethernet/broadcom/bnxt/bnxt_tc.c
@@ -904,6 +904,7 @@ static int bnxt_tc_resolve_tunnel_hdrs(struct bnxt *bp,
   struct bnxt_tc_l2_key *l2_info,
   struct net_device *real_dst_dev)
 {
+#ifdef CONFIG_INET
struct flowi4 flow = { {0} };
struct net_device *dst_dev;
struct neighbour *nbr;
@@ -925,6 +926,7 @@ static int bnxt_tc_resolve_tunnel_hdrs(struct bnxt *bp,
 */
dst_dev = rt->dst.dev;
if (is_vlan_dev(dst_dev)) {
+#if IS_ENABLED(CONFIG_VLAN_8021Q)
struct vlan_dev_priv *vlan = vlan_dev_priv(dst_dev);
 
if (vlan->real_dev != real_dst_dev) {
@@ -938,6 +940,7 @@ static int bnxt_tc_resolve_tunnel_hdrs(struct bnxt *bp,
l2_info->inner_vlan_tci = htons(vlan->vlan_id);
l2_info->inner_vlan_tpid = vlan->vlan_proto;
l2_info->num_vlans = 1;
+#endif
} else if (dst_dev != real_dst_dev) {
netdev_info(bp->dev,
"dst_dev(%s) for %pI4b is not PF-if(%s)",
@@ -966,6 +969,9 @@ static int bnxt_tc_resolve_tunnel_hdrs(struct bnxt *bp,
 put_rt:
ip_rt_put(rt);
return rc;
+#else
+   return -EOPNOTSUPP;
+#endif
 }
 
 static int bnxt_tc_get_decap_handle(struct bnxt *bp, struct bnxt_tc_flow *flow,
-- 
1.8.3.1