some kmalloc/memset ->kzalloc (tree wide)
[pandora-kernel.git] / drivers / net / wan / c101.c
index 435e91e..8ead774 100644 (file)
@@ -118,7 +118,7 @@ static inline void openwin(card_t *card, u8 page)
 
 static inline void set_carrier(port_t *port)
 {
-       if (!sca_in(MSCI1_OFFSET + ST3, port) & ST3_DCD)
+       if (!(sca_in(MSCI1_OFFSET + ST3, port) & ST3_DCD))
                netif_carrier_on(port_to_dev(port));
        else
                netif_carrier_off(port_to_dev(port));
@@ -127,10 +127,10 @@ static inline void set_carrier(port_t *port)
 
 static void sca_msci_intr(port_t *port)
 {
-       u8 stat = sca_in(MSCI1_OFFSET + ST1, port); /* read MSCI ST1 status */
+       u8 stat = sca_in(MSCI0_OFFSET + ST1, port); /* read MSCI ST1 status */
 
-       /* Reset MSCI TX underrun status bit */
-       sca_out(stat & ST1_UDRN, MSCI0_OFFSET + ST1, port);
+       /* Reset MSCI TX underrun and CDCD (ignored) status bit */
+       sca_out(stat & (ST1_UDRN | ST1_CDCD), MSCI0_OFFSET + ST1, port);
 
        if (stat & ST1_UDRN) {
                struct net_device_stats *stats = hdlc_stats(port_to_dev(port));
@@ -138,6 +138,7 @@ static void sca_msci_intr(port_t *port)
                stats->tx_fifo_errors++;
        }
 
+       stat = sca_in(MSCI1_OFFSET + ST1, port); /* read MSCI1 ST1 status */
        /* Reset MSCI CDCD status bit - uses ch#2 DCD input */
        sca_out(stat & ST1_CDCD, MSCI1_OFFSET + ST1, port);
 
@@ -314,12 +315,11 @@ static int __init c101_run(unsigned long irq, unsigned long winbase)
                return -ENODEV;
        }
 
-       card = kmalloc(sizeof(card_t), GFP_KERNEL);
+       card = kzalloc(sizeof(card_t), GFP_KERNEL);
        if (card == NULL) {
                printk(KERN_ERR "c101: unable to allocate memory\n");
                return -ENOBUFS;
        }
-       memset(card, 0, sizeof(card_t));
 
        card->dev = alloc_hdlcdev(card);
        if (!card->dev) {