]> git.proxmox.com Git - mirror_ubuntu-jammy-kernel.git/blobdiff - drivers/net/pcmcia/3c574_cs.c
net: use netdev_mc_count and netdev_mc_empty when appropriate
[mirror_ubuntu-jammy-kernel.git] / drivers / net / pcmcia / 3c574_cs.c
index 17a27225cc98cbc076f705ec6c850812ed6f56c8..3d1d3a7b7ed3cc6065968ff1f1d1c434d0e84aae 100644 (file)
@@ -912,7 +912,11 @@ static void media_check(unsigned long arg)
        if ((inw(ioaddr + EL3_STATUS) & IntLatch) && (inb(ioaddr + Timer) == 0xff)) {
                if (!lp->fast_poll)
                        printk(KERN_INFO "%s: interrupt(s) dropped!\n", dev->name);
+
+               local_irq_save(flags);
                el3_interrupt(dev->irq, dev);
+               local_irq_restore(flags);
+
                lp->fast_poll = HZ;
        }
        if (lp->fast_poll) {
@@ -1144,7 +1148,7 @@ static void set_rx_mode(struct net_device *dev)
        if (dev->flags & IFF_PROMISC)
                outw(SetRxFilter | RxStation | RxMulticast | RxBroadcast | RxProm,
                         ioaddr + EL3_CMD);
-       else if (dev->mc_count || (dev->flags & IFF_ALLMULTI))
+       else if (!netdev_mc_empty(dev) || (dev->flags & IFF_ALLMULTI))
                outw(SetRxFilter|RxStation|RxMulticast|RxBroadcast, ioaddr + EL3_CMD);
        else
                outw(SetRxFilter | RxStation | RxBroadcast, ioaddr + EL3_CMD);