static irqreturn_t felix_irq_handler(int irq, void *data)
 {
        struct ocelot *ocelot = (struct ocelot *)data;
-       int port;
 
        ocelot_get_txtstamp(ocelot);
-
-       for (port = 0; port < ocelot->num_phys_ports; port++)
-               ocelot_port_mm_irq(ocelot, port);
+       ocelot_mm_irq(ocelot);
 
        return IRQ_HANDLED;
 }
 
        }
 }
 
-void ocelot_port_mm_irq(struct ocelot *ocelot, int port)
+static void ocelot_mm_update_port_status(struct ocelot *ocelot, int port)
 {
        struct ocelot_port *ocelot_port = ocelot->ports[port];
        struct ocelot_mm_state *mm = &ocelot->mm[port];
 
        mutex_unlock(&mm->lock);
 }
-EXPORT_SYMBOL_GPL(ocelot_port_mm_irq);
+
+void ocelot_mm_irq(struct ocelot *ocelot)
+{
+       int port;
+
+       for (port = 0; port < ocelot->num_phys_ports; port++)
+               ocelot_mm_update_port_status(ocelot, port);
+}
+EXPORT_SYMBOL_GPL(ocelot_mm_irq);
 
 int ocelot_port_set_mm(struct ocelot *ocelot, int port,
                       struct ethtool_mm_cfg *cfg,
 
                            struct ocelot_policer *pol);
 int ocelot_vcap_policer_del(struct ocelot *ocelot, u32 pol_ix);
 
-void ocelot_port_mm_irq(struct ocelot *ocelot, int port);
+void ocelot_mm_irq(struct ocelot *ocelot);
 int ocelot_port_set_mm(struct ocelot *ocelot, int port,
                       struct ethtool_mm_cfg *cfg,
                       struct netlink_ext_ack *extack);