Skip to contentSkip to conversation

drivers/net: fix broadcom/bcmsysport.c compile fail on SPARC

PATCH-next In review Paul Gortmaker 2 participants 6 messages May 30, 2014 – Jun 2, 2014

Subsystems (3)
lore
Share & tools
lore
#0 lore raw

To fix:

CC drivers/net/ethernet/broadcom/bcmsysport.o
In file included from drivers/net/ethernet/broadcom/bcmsysport.c:28:0:
drivers/net/ethernet/broadcom/bcmsysport.h:41:8: error: redefinition of 'struct tsb' arch/sparc/include/asm/mmu_64.h:65:8: note: originally defined here make[1]: *** [drivers/net/ethernet/broadcom/bcmsysport.o] Error 1

we change struct tsb to struct bcm_tsb in the broadcom driver in order to avoid the namespace collision.

drivers/net/ethernet/broadcom/bcmsysport.c +4 -4
index 4dc8d1e9829b..0d466c134a9e 100644
@@ -759,7 +759,7 @@ static irqreturn_t bcm_sysport_tx_isr(int irq, void *dev_id)
 static int bcm_sysport_insert_tsb(struct sk_buff *skb, struct net_device *dev)
 {
 	struct sk_buff *nskb;
-	struct tsb *tsb;
+	struct bcm_tsb *tsb;
 	u32 csum_info;
 	u8 ip_proto;
 	u16 csum_start;
@@ -777,7 +777,7 @@ static int bcm_sysport_insert_tsb(struct sk_buff *skb, struct net_device *dev)
 		skb = nskb;
 	}
 
-	tsb = (struct tsb *)skb_push(skb, sizeof(*tsb));
+	tsb = (struct bcm_tsb *)skb_push(skb, sizeof(*tsb));
 	/* Zero-out TSB by default */
 	memset(tsb, 0, sizeof(*tsb));
 
@@ -1549,8 +1549,8 @@ static int bcm_sysport_probe(struct platform_device *pdev)
 				NETIF_F_IP_CSUM | NETIF_F_IPV6_CSUM;
 
 	/* Set the needed headroom once and for all */
-	BUILD_BUG_ON(sizeof(struct tsb) != 8);
-	dev->needed_headroom += sizeof(struct tsb);
+	BUILD_BUG_ON(sizeof(struct bcm_tsb) != 8);
+	dev->needed_headroom += sizeof(struct bcm_tsb);
 
 	/* We are interfaced to a switch which handles the multicast
 	 * filtering for us, so we do not support programming any
drivers/net/ethernet/broadcom/bcmsysport.h +1 -1
index a0441e7c83cd..72a103c096f2 100644
@@ -38,7 +38,7 @@
 				 ENET_BRCM_TAG_LEN + ETH_FCS_LEN + ENET_PAD)
 
 /* Transmit status block */
-struct tsb {
+struct bcm_tsb {
 	u32 pcp_dei_vid;
 #define PCP_DEI_MASK		0xf
 #define VID_SHIFT		4
Signature · 1 line
1.9.3
#1 lore raw

Hi Paul,

2014-05-30 7:02 GMT-07:00 Paul Gortmaker <[email protected]>:

Quoted 8 lines

To fix:

CC drivers/net/ethernet/broadcom/bcmsysport.o
In file included from drivers/net/ethernet/broadcom/bcmsysport.c:28:0:
drivers/net/ethernet/broadcom/bcmsysport.h:41:8: error: redefinition of 'struct tsb' arch/sparc/include/asm/mmu_64.h:65:8: note: originally defined here make[1]: *** [drivers/net/ethernet/broadcom/bcmsysport.o] Error 1

Quoted 4 lines

we change struct tsb to struct bcm_tsb in the broadcom driver in order to avoid the namespace collision.

For consistency, we might want to rename 'struct tsb' to 'struct bcm_tsb', thanks for catching this.

Quoted 50 lines
drivers/net/ethernet/broadcom/bcmsysport.c +4 -4
index 4dc8d1e9829b..0d466c134a9e 100644
@@ -759,7 +759,7 @@ static irqreturn_t bcm_sysport_tx_isr(int irq, void *dev_id)
 static int bcm_sysport_insert_tsb(struct sk_buff *skb, struct net_device *dev)
 {
        struct sk_buff *nskb;
-       struct tsb *tsb;
+       struct bcm_tsb *tsb;
        u32 csum_info;
        u8 ip_proto;
        u16 csum_start;
@@ -777,7 +777,7 @@ static int bcm_sysport_insert_tsb(struct sk_buff *skb, struct net_device *dev)
                skb = nskb;
        }
 
-       tsb = (struct tsb *)skb_push(skb, sizeof(*tsb));
+       tsb = (struct bcm_tsb *)skb_push(skb, sizeof(*tsb));
        /* Zero-out TSB by default */
        memset(tsb, 0, sizeof(*tsb));
 
@@ -1549,8 +1549,8 @@ static int bcm_sysport_probe(struct platform_device *pdev)
                                NETIF_F_IP_CSUM | NETIF_F_IPV6_CSUM;
 
        /* Set the needed headroom once and for all */
-       BUILD_BUG_ON(sizeof(struct tsb) != 8);
-       dev->needed_headroom += sizeof(struct tsb);
+       BUILD_BUG_ON(sizeof(struct bcm_tsb) != 8);
+       dev->needed_headroom += sizeof(struct bcm_tsb);
 
        /* We are interfaced to a switch which handles the multicast
         * filtering for us, so we do not support programming any
drivers/net/ethernet/broadcom/bcmsysport.h +1 -2
index a0441e7c83cd..72a103c096f2 100644
@@ -38,7 +38,7 @@
                                 ENET_BRCM_TAG_LEN + ETH_FCS_LEN + ENET_PAD)
 
 /* Transmit status block */
-struct tsb {
+struct bcm_tsb {
        u32 pcp_dei_vid;
 #define PCP_DEI_MASK           0xf
 #define VID_SHIFT              4
--

1.9.3

Signature · 1 line
Florian
#2 lore raw
Quoted 11 lines · Florian Fainelli

Hi Paul,

2014-05-30 7:02 GMT-07:00 Paul Gortmaker <[email protected]>:

Quoted 8 lines

To fix:

CC drivers/net/ethernet/broadcom/bcmsysport.o
In file included from drivers/net/ethernet/broadcom/bcmsysport.c:28:0:
drivers/net/ethernet/broadcom/bcmsysport.h:41:8: error: redefinition of 'struct tsb' arch/sparc/include/asm/mmu_64.h:65:8: note: originally defined here make[1]: *** [drivers/net/ethernet/broadcom/bcmsysport.o] Error 1

Quoted 7 lines
Quoted 4 lines

we change struct tsb to struct bcm_tsb in the broadcom driver in order to avoid the namespace collision.

For consistency, we might want to rename 'struct tsb' to 'struct bcm_tsb', thanks for catching this.

The above is what I did ; I assume however you meant "struct rsb" to "struct bcm_rsb", which does make sense for consistency. I'll send a v2 with that incorporated.

Thanks,
Paul.
--

Quoted 56 lines
Quoted 50 lines
drivers/net/ethernet/broadcom/bcmsysport.c +4 -4
index 4dc8d1e9829b..0d466c134a9e 100644
@@ -759,7 +759,7 @@ static irqreturn_t bcm_sysport_tx_isr(int irq, void *dev_id)
 static int bcm_sysport_insert_tsb(struct sk_buff *skb, struct net_device *dev)
 {
        struct sk_buff *nskb;
-       struct tsb *tsb;
+       struct bcm_tsb *tsb;
        u32 csum_info;
        u8 ip_proto;
        u16 csum_start;
@@ -777,7 +777,7 @@ static int bcm_sysport_insert_tsb(struct sk_buff *skb, struct net_device *dev)
                skb = nskb;
        }
 
-       tsb = (struct tsb *)skb_push(skb, sizeof(*tsb));
+       tsb = (struct bcm_tsb *)skb_push(skb, sizeof(*tsb));
        /* Zero-out TSB by default */
        memset(tsb, 0, sizeof(*tsb));
 
@@ -1549,8 +1549,8 @@ static int bcm_sysport_probe(struct platform_device *pdev)
                                NETIF_F_IP_CSUM | NETIF_F_IPV6_CSUM;
 
        /* Set the needed headroom once and for all */
-       BUILD_BUG_ON(sizeof(struct tsb) != 8);
-       dev->needed_headroom += sizeof(struct tsb);
+       BUILD_BUG_ON(sizeof(struct bcm_tsb) != 8);
+       dev->needed_headroom += sizeof(struct bcm_tsb);
 
        /* We are interfaced to a switch which handles the multicast
         * filtering for us, so we do not support programming any
drivers/net/ethernet/broadcom/bcmsysport.h +1 -2
index a0441e7c83cd..72a103c096f2 100644
@@ -38,7 +38,7 @@
                                 ENET_BRCM_TAG_LEN + ETH_FCS_LEN + ENET_PAD)
 
 /* Transmit status block */
-struct tsb {
+struct bcm_tsb {
        u32 pcp_dei_vid;
 #define PCP_DEI_MASK           0xf
 #define VID_SHIFT              4
--

1.9.3

#3 lore raw

2014-05-30 11:21 GMT-07:00 Paul Gortmaker <[email protected]>:

Quoted 15 lines · Florian Fainelli
Quoted 14 lines

Hi Paul,

2014-05-30 7:02 GMT-07:00 Paul Gortmaker <[email protected]>:

Quoted 11 lines

To fix:

CC drivers/net/ethernet/broadcom/bcmsysport.o
In file included from drivers/net/ethernet/broadcom/bcmsysport.c:28:0:
drivers/net/ethernet/broadcom/bcmsysport.h:41:8: error: redefinition of 'struct tsb' arch/sparc/include/asm/mmu_64.h:65:8: note: originally defined here make[1]: *** [drivers/net/ethernet/broadcom/bcmsysport.o] Error 1

we change struct tsb to struct bcm_tsb in the broadcom driver in order to avoid the namespace collision.

Quoted 8 lines
Quoted 4 lines
Quoted 1 line

For consistency, we might want to rename 'struct tsb' to 'struct bcm_tsb', thanks for catching this.

The above is what I did ; I assume however you meant "struct rsb" to "struct bcm_rsb", which does make sense for consistency. I'll send a v2 with that incorporated.

I do mean 'struct rsb', thanks!

Quoted 61 lines

Thanks,
Paul.
--

Quoted 56 lines
Quoted 50 lines
drivers/net/ethernet/broadcom/bcmsysport.c +4 -4
index 4dc8d1e9829b..0d466c134a9e 100644
@@ -759,7 +759,7 @@ static irqreturn_t bcm_sysport_tx_isr(int irq, void *dev_id)
 static int bcm_sysport_insert_tsb(struct sk_buff *skb, struct net_device *dev)
 {
        struct sk_buff *nskb;
-       struct tsb *tsb;
+       struct bcm_tsb *tsb;
        u32 csum_info;
        u8 ip_proto;
        u16 csum_start;
@@ -777,7 +777,7 @@ static int bcm_sysport_insert_tsb(struct sk_buff *skb, struct net_device *dev)
                skb = nskb;
        }
 
-       tsb = (struct tsb *)skb_push(skb, sizeof(*tsb));
+       tsb = (struct bcm_tsb *)skb_push(skb, sizeof(*tsb));
        /* Zero-out TSB by default */
        memset(tsb, 0, sizeof(*tsb));
 
@@ -1549,8 +1549,8 @@ static int bcm_sysport_probe(struct platform_device *pdev)
                                NETIF_F_IP_CSUM | NETIF_F_IPV6_CSUM;
 
        /* Set the needed headroom once and for all */
-       BUILD_BUG_ON(sizeof(struct tsb) != 8);
-       dev->needed_headroom += sizeof(struct tsb);
+       BUILD_BUG_ON(sizeof(struct bcm_tsb) != 8);
+       dev->needed_headroom += sizeof(struct bcm_tsb);
 
        /* We are interfaced to a switch which handles the multicast
         * filtering for us, so we do not support programming any
drivers/net/ethernet/broadcom/bcmsysport.h +1 -2
index a0441e7c83cd..72a103c096f2 100644
@@ -38,7 +38,7 @@
                                 ENET_BRCM_TAG_LEN + ETH_FCS_LEN + ENET_PAD)
 
 /* Transmit status block */
-struct tsb {
+struct bcm_tsb {
        u32 pcp_dei_vid;
 #define PCP_DEI_MASK           0xf
 #define VID_SHIFT              4
--

1.9.3

Signature · 1 line
Florian
#4 lore raw

PATCH v2 1/1 drivers/net: fix broadcom/bcmsysport.c compile fail on SPARC

In reply to Paul Gortmaker

To fix:

CC drivers/net/ethernet/broadcom/bcmsysport.o
In file included from drivers/net/ethernet/broadcom/bcmsysport.c:28:0:
drivers/net/ethernet/broadcom/bcmsysport.h:41:8: error: redefinition of 'struct tsb' arch/sparc/include/asm/mmu_64.h:65:8: note: originally defined here make[1]: *** [drivers/net/ethernet/broadcom/bcmsysport.o] Error 1

we change struct tsb to struct bcm_tsb in the broadcom driver in order to avoid the namespace collision. For consistency, we also change struct rsb to struct bcm_rsb, so the Rx/Tx symmetry is maintained.

---

[v2: also change rsb --> bcm_rsb for Rx/Tx consistency]

 drivers/net/ethernet/broadcom/bcmsysport.c | 12 ++++++------
 drivers/net/ethernet/broadcom/bcmsysport.h |  4 ++--
 2 files changed, 8 insertions(+), 8 deletions(-)
drivers/net/ethernet/broadcom/bcmsysport.c +6 -6
index dc708a888f80..25982b02f0ea 100644
@@ -457,7 +457,7 @@ static unsigned int bcm_sysport_desc_rx(struct bcm_sysport_priv *priv,
 	struct sk_buff *skb;
 	unsigned int p_index;
 	u16 len, status;
-	struct rsb *rsb;
+	struct bcm_rsb *rsb;
 
 	/* Determine how much we should process since last call */
 	p_index = rdma_readl(priv, RDMA_PROD_INDEX);
@@ -482,7 +482,7 @@ static unsigned int bcm_sysport_desc_rx(struct bcm_sysport_priv *priv,
 				RX_BUF_LENGTH, DMA_FROM_DEVICE);
 
 		/* Extract the Receive Status Block prepended */
-		rsb = (struct rsb *)skb->data;
+		rsb = (struct bcm_rsb *)skb->data;
 		len = (rsb->rx_status_len >> DESC_LEN_SHIFT) & DESC_LEN_MASK;
 		status = (rsb->rx_status_len >> DESC_STATUS_SHIFT) &
 			DESC_STATUS_MASK;
@@ -759,7 +759,7 @@ static irqreturn_t bcm_sysport_tx_isr(int irq, void *dev_id)
 static int bcm_sysport_insert_tsb(struct sk_buff *skb, struct net_device *dev)
 {
 	struct sk_buff *nskb;
-	struct tsb *tsb;
+	struct bcm_tsb *tsb;
 	u32 csum_info;
 	u8 ip_proto;
 	u16 csum_start;
@@ -777,7 +777,7 @@ static int bcm_sysport_insert_tsb(struct sk_buff *skb, struct net_device *dev)
 		skb = nskb;
 	}
 
-	tsb = (struct tsb *)skb_push(skb, sizeof(*tsb));
+	tsb = (struct bcm_tsb *)skb_push(skb, sizeof(*tsb));
 	/* Zero-out TSB by default */
 	memset(tsb, 0, sizeof(*tsb));
 
@@ -1584,8 +1584,8 @@ static int bcm_sysport_probe(struct platform_device *pdev)
 				NETIF_F_IP_CSUM | NETIF_F_IPV6_CSUM;
 
 	/* Set the needed headroom once and for all */
-	BUILD_BUG_ON(sizeof(struct tsb) != 8);
-	dev->needed_headroom += sizeof(struct tsb);
+	BUILD_BUG_ON(sizeof(struct bcm_tsb) != 8);
+	dev->needed_headroom += sizeof(struct bcm_tsb);
 
 	/* We are interfaced to a switch which handles the multicast
 	 * filtering for us, so we do not support programming any
drivers/net/ethernet/broadcom/bcmsysport.h +2 -2
index 73fd04a94797..281c08246037 100644
@@ -38,7 +38,7 @@
 				 ENET_BRCM_TAG_LEN + ETH_FCS_LEN + ENET_PAD)
 
 /* Transmit status block */
-struct tsb {
+struct bcm_tsb {
 	u32 pcp_dei_vid;
 #define PCP_DEI_MASK		0xf
 #define VID_SHIFT		4
@@ -56,7 +56,7 @@ struct tsb {
 /* Receive status block uses the same
  * definitions as the DMA descriptor
  */
-struct rsb {
+struct bcm_rsb {
 	u32 rx_status_len;
 	u32 brcm_egress_tag;
 };
Signature · 1 line
1.9.3
Acked-by on v2 1/1
#5 lore raw

2014-05-30 12:39 GMT-07:00 Paul Gortmaker <[email protected]>:

Quoted 8 lines

To fix:

CC drivers/net/ethernet/broadcom/bcmsysport.o
In file included from drivers/net/ethernet/broadcom/bcmsysport.c:28:0:
drivers/net/ethernet/broadcom/bcmsysport.h:41:8: error: redefinition of 'struct tsb' arch/sparc/include/asm/mmu_64.h:65:8: note: originally defined here make[1]: *** [drivers/net/ethernet/broadcom/bcmsysport.o] Error 1

Quoted 6 lines

we change struct tsb to struct bcm_tsb in the broadcom driver in order to avoid the namespace collision. For consistency, we also change struct rsb to struct bcm_rsb, so the Rx/Tx symmetry is maintained.

Quoted 84 lines

---

[v2: also change rsb --> bcm_rsb for Rx/Tx consistency]

 drivers/net/ethernet/broadcom/bcmsysport.c | 12 ++++++------
 drivers/net/ethernet/broadcom/bcmsysport.h |  4 ++--
 2 files changed, 8 insertions(+), 8 deletions(-)
drivers/net/ethernet/broadcom/bcmsysport.c +6 -6
index dc708a888f80..25982b02f0ea 100644
@@ -457,7 +457,7 @@ static unsigned int bcm_sysport_desc_rx(struct bcm_sysport_priv *priv,
        struct sk_buff *skb;
        unsigned int p_index;
        u16 len, status;
-       struct rsb *rsb;
+       struct bcm_rsb *rsb;
 
        /* Determine how much we should process since last call */
        p_index = rdma_readl(priv, RDMA_PROD_INDEX);
@@ -482,7 +482,7 @@ static unsigned int bcm_sysport_desc_rx(struct bcm_sysport_priv *priv,
                                RX_BUF_LENGTH, DMA_FROM_DEVICE);
 
                /* Extract the Receive Status Block prepended */
-               rsb = (struct rsb *)skb->data;
+               rsb = (struct bcm_rsb *)skb->data;
                len = (rsb->rx_status_len >> DESC_LEN_SHIFT) & DESC_LEN_MASK;
                status = (rsb->rx_status_len >> DESC_STATUS_SHIFT) &
                        DESC_STATUS_MASK;
@@ -759,7 +759,7 @@ static irqreturn_t bcm_sysport_tx_isr(int irq, void *dev_id)
 static int bcm_sysport_insert_tsb(struct sk_buff *skb, struct net_device *dev)
 {
        struct sk_buff *nskb;
-       struct tsb *tsb;
+       struct bcm_tsb *tsb;
        u32 csum_info;
        u8 ip_proto;
        u16 csum_start;
@@ -777,7 +777,7 @@ static int bcm_sysport_insert_tsb(struct sk_buff *skb, struct net_device *dev)
                skb = nskb;
        }
 
-       tsb = (struct tsb *)skb_push(skb, sizeof(*tsb));
+       tsb = (struct bcm_tsb *)skb_push(skb, sizeof(*tsb));
        /* Zero-out TSB by default */
        memset(tsb, 0, sizeof(*tsb));
 
@@ -1584,8 +1584,8 @@ static int bcm_sysport_probe(struct platform_device *pdev)
                                NETIF_F_IP_CSUM | NETIF_F_IPV6_CSUM;
 
        /* Set the needed headroom once and for all */
-       BUILD_BUG_ON(sizeof(struct tsb) != 8);
-       dev->needed_headroom += sizeof(struct tsb);
+       BUILD_BUG_ON(sizeof(struct bcm_tsb) != 8);
+       dev->needed_headroom += sizeof(struct bcm_tsb);
 
        /* We are interfaced to a switch which handles the multicast
         * filtering for us, so we do not support programming any
drivers/net/ethernet/broadcom/bcmsysport.h +2 -3
index 73fd04a94797..281c08246037 100644
@@ -38,7 +38,7 @@
                                 ENET_BRCM_TAG_LEN + ETH_FCS_LEN + ENET_PAD)
 
 /* Transmit status block */
-struct tsb {
+struct bcm_tsb {
        u32 pcp_dei_vid;
 #define PCP_DEI_MASK           0xf
 #define VID_SHIFT              4
@@ -56,7 +56,7 @@ struct tsb {
 /* Receive status block uses the same
  * definitions as the DMA descriptor
  */
-struct rsb {
+struct bcm_rsb {
        u32 rx_status_len;
        u32 brcm_egress_tag;
 };
--

1.9.3

Signature · 1 line
Florian