static inline void gib_set_pad_extension(struct bcm_sysport_priv *priv)
 {
-       u32 __maybe_unused reg;
+       u32 reg;
 
-       /* Include Broadcom tag in pad extension */
+       reg = gib_readl(priv, GIB_CONTROL);
+       /* Include Broadcom tag in pad extension and fix up IPG_LENGTH */
        if (netdev_uses_dsa(priv->netdev)) {
-               reg = gib_readl(priv, GIB_CONTROL);
                reg &= ~(GIB_PAD_EXTENSION_MASK << GIB_PAD_EXTENSION_SHIFT);
                reg |= ENET_BRCM_TAG_LEN << GIB_PAD_EXTENSION_SHIFT;
-               gib_writel(priv, reg, GIB_CONTROL);
        }
+       reg &= ~(GIB_IPG_LEN_MASK << GIB_IPG_LEN_SHIFT);
+       reg |= 12 << GIB_IPG_LEN_SHIFT;
+       gib_writel(priv, reg, GIB_CONTROL);
 }
 
 static int bcm_sysport_open(struct net_device *dev)