And use the more common mechanisms directly.
Other miscellanea:
o Coalesce formats
o Add missing newlines
o Realign arguments
o Remove unnecessary OOM message logging as
  there's a generic stack dump already on OOM.
Signed-off-by: Joe Perches <joe@perches.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
                dev->speed = 9600;
                break;
        default:
-               IRDA_ERROR("%s(), unknown state %d\n", __func__, state);
+               net_err_ratelimited("%s(), unknown state %d\n",
+                                   __func__, state);
                ret = -1;
                break;
        }
 
 
        ret = platform_driver_register(&ali_ircc_driver);
         if (ret) {
-                IRDA_ERROR("%s, Can't register driver!\n",
-                          ALI_IRCC_DRIVER_NAME);
+               net_err_ratelimited("%s, Can't register driver!\n",
+                                   ALI_IRCC_DRIVER_NAME);
                 return ret;
         }
 
        IRDA_DEBUG(2, "%s(), ---------------- Start ----------------\n", __func__);
 
        if (i >= ARRAY_SIZE(dev_self)) {
-               IRDA_ERROR("%s(), maximum number of supported chips reached!\n",
-                          __func__);
+               net_err_ratelimited("%s(), maximum number of supported chips reached!\n",
+                                   __func__);
                return -ENOMEM;
        }
        
                
        dev = alloc_irdadev(sizeof(*self));
        if (dev == NULL) {
-               IRDA_ERROR("%s(), can't allocate memory for control block!\n",
-                          __func__);
+               net_err_ratelimited("%s(), can't allocate memory for control block!\n",
+                                   __func__);
                return -ENOMEM;
        }
 
        /* Reserve the ioports that we need */
        if (!request_region(self->io.fir_base, self->io.fir_ext,
                            ALI_IRCC_DRIVER_NAME)) {
-               IRDA_WARNING("%s(), can't get iobase of 0x%03x\n", __func__,
-                       self->io.fir_base);
+               net_warn_ratelimited("%s(), can't get iobase of 0x%03x\n",
+                                    __func__, self->io.fir_base);
                err = -ENODEV;
                goto err_out1;
        }
 
        err = register_netdev(dev);
        if (err) {
-               IRDA_ERROR("%s(), register_netdev() failed!\n", __func__);
+               net_err_ratelimited("%s(), register_netdev() failed!\n",
+                                   __func__);
                goto err_out4;
        }
-       IRDA_MESSAGE("IrDA: Registered device %s\n", dev->name);
+       net_info_ratelimited("IrDA: Registered device %s\n", dev->name);
 
        /* Check dongle id */
        dongle_id = ali_ircc_read_dongle_id(i, info);
-       IRDA_MESSAGE("%s(), %s, Found dongle: %s\n", __func__,
-                    ALI_IRCC_DRIVER_NAME, dongle_types[dongle_id]);
+       net_info_ratelimited("%s(), %s, Found dongle: %s\n",
+                            __func__, ALI_IRCC_DRIVER_NAME,
+                            dongle_types[dongle_id]);
                
        self->io.dongle_id = dongle_id;
 
        info->dma = reg & 0x07;
        
        if(info->dma == 0x04)
-               IRDA_WARNING("%s(), No DMA channel assigned !\n", __func__);
+               net_warn_ratelimited("%s(), No DMA channel assigned !\n",
+                                    __func__);
        else
                IRDA_DEBUG(2, "%s(), probing dma=%d\n", __func__, info->dma);
        
        /* Should be 0x00 in the M1535/M1535D */
        if(version != 0x00)
        {
-               IRDA_ERROR("%s, Wrong chip version %02x\n",
-                          ALI_IRCC_DRIVER_NAME, version);
+               net_err_ratelimited("%s, Wrong chip version %02x\n",
+                                   ALI_IRCC_DRIVER_NAME, version);
                return -1;
        }
        
        /* Switch to SIR space */
        FIR2SIR(iobase);
        
-       IRDA_MESSAGE("%s, driver loaded (Benjamin Kong)\n",
-                    ALI_IRCC_DRIVER_NAME);
+       net_info_ratelimited("%s, driver loaded (Benjamin Kong)\n",
+                            ALI_IRCC_DRIVER_NAME);
        
        /* Enable receive interrupts */ 
        // outb(UART_IER_RDI, iobase+UART_IER); //benjamin 2000/11/23 01:25PM
        /* Request IRQ and install Interrupt Handler */
        if (request_irq(self->io.irq, ali_ircc_interrupt, 0, dev->name, dev)) 
        {
-               IRDA_WARNING("%s, unable to allocate irq=%d\n",
-                            ALI_IRCC_DRIVER_NAME,
-                            self->io.irq);
+               net_warn_ratelimited("%s, unable to allocate irq=%d\n",
+                                    ALI_IRCC_DRIVER_NAME, self->io.irq);
                return -EAGAIN;
        }
        
         * failure.
         */
        if (request_dma(self->io.dma, dev->name)) {
-               IRDA_WARNING("%s, unable to allocate dma=%d\n",
-                            ALI_IRCC_DRIVER_NAME,
-                            self->io.dma);
+               net_warn_ratelimited("%s, unable to allocate dma=%d\n",
+                                    ALI_IRCC_DRIVER_NAME, self->io.dma);
                free_irq(self->io.irq, dev);
                return -EAGAIN;
        }
        if((inb(iobase+FIR_LSR) & LSR_FRAME_ABORT) == LSR_FRAME_ABORT)
        
        {
-               IRDA_ERROR("%s(), ********* LSR_FRAME_ABORT *********\n", __func__);
+               net_err_ratelimited("%s(), ********* LSR_FRAME_ABORT *********\n",
+                                   __func__);
                self->netdev->stats.tx_errors++;
                self->netdev->stats.tx_fifo_errors++;
        }
                        skb = dev_alloc_skb(len+1);
                        if (skb == NULL)  
                        {
-                               IRDA_WARNING("%s(), memory squeeze, "
-                                            "dropping frame.\n",
-                                            __func__);
                                self->netdev->stats.rx_dropped++;
 
                                return FALSE;
 {
        struct ali_ircc_cb *self = platform_get_drvdata(dev);
        
-       IRDA_MESSAGE("%s, Suspending\n", ALI_IRCC_DRIVER_NAME);
+       net_info_ratelimited("%s, Suspending\n", ALI_IRCC_DRIVER_NAME);
 
        if (self->io.suspended)
                return 0;
        
        ali_ircc_net_open(self->netdev);
        
-       IRDA_MESSAGE("%s, Waking up\n", ALI_IRCC_DRIVER_NAME);
+       net_info_ratelimited("%s, Waking up\n", ALI_IRCC_DRIVER_NAME);
 
        self->io.suspended = 0;
 
 
                break;
 
        default:
-               IRDA_ERROR("%s - undefined state %d\n", __func__, state);
+               net_err_ratelimited("%s - undefined state %d\n",
+                                   __func__, state);
                ret = -EINVAL;
                break;
        }
                break;
 
        default:
-               IRDA_ERROR("%s(), undefined state %d\n", __func__, state);
+               net_err_ratelimited("%s(), undefined state %d\n",
+                                   __func__, state);
                ret = -1;
                break;
        }
 
        /* Grab the speed URB */
        urb = self->speed_urb;
        if (urb->status != 0) {
-               IRDA_WARNING("%s(), URB still in use!\n", __func__);
+               net_warn_ratelimited("%s(), URB still in use!\n", __func__);
                return;
        }
 
 
        /* Irq disabled -> GFP_ATOMIC */
        if ((ret = usb_submit_urb(urb, GFP_ATOMIC))) {
-               IRDA_WARNING("%s(), failed Speed URB\n", __func__);
+               net_warn_ratelimited("%s(), failed Speed URB\n", __func__);
        }
 }
 
        }
 
        if (urb->status != 0) {
-               IRDA_WARNING("%s(), URB still in use!\n", __func__);
+               net_warn_ratelimited("%s(), URB still in use!\n", __func__);
                goto drop;
        }
 
        
        /* Ask USB to send the packet - Irq disabled -> GFP_ATOMIC */
        if ((res = usb_submit_urb(urb, GFP_ATOMIC))) {
-               IRDA_WARNING("%s(), failed Tx URB\n", __func__);
+               net_warn_ratelimited("%s(), failed Tx URB\n", __func__);
                netdev->stats.tx_errors++;
                /* Let USB recover : We will catch that in the watchdog */
                /*netif_start_queue(netdev);*/
 
        /* self->present *MUST* be read under spinlock */
        if (!self->present) {
-               IRDA_WARNING("%s(), device not present!\n", __func__);
+               net_warn_ratelimited("%s(), device not present!\n", __func__);
                netif_stop_queue(netdev);
                spin_unlock_irqrestore(&self->lock, flags);
                return;
        if (ret) {
                /* If this ever happen, we are in deep s***.
                 * Basically, the Rx path will stop... */
-               IRDA_WARNING("%s(), Failed to submit Rx URB %d\n",
-                            __func__, ret);
+               net_warn_ratelimited("%s(), Failed to submit Rx URB %d\n",
+                                    __func__, ret);
        }
 }
 
        
        /* Check for empty frames */
        if (urb->actual_length <= self->header_length) {
-               IRDA_WARNING("%s(), empty frame!\n", __func__);
+               net_warn_ratelimited("%s(), empty frame!\n", __func__);
                goto done;
        }
 
                 return ret;
 
         /* We get a patch from userspace */
-        IRDA_MESSAGE("%s(): Received firmware %s (%zu bytes)\n",
-                     __func__, stir421x_fw_name, fw->size);
+       net_info_ratelimited("%s(): Received firmware %s (%zu bytes)\n",
+                            __func__, stir421x_fw_name, fw->size);
 
         ret = -EINVAL;
 
        /* Can only open the device if it's there */
        if(!self->present) {
                spin_unlock_irqrestore(&self->lock, flags);
-               IRDA_WARNING("%s(), device not present!\n", __func__);
+               net_warn_ratelimited("%s(), device not present!\n", __func__);
                return -1;
        }
 
        if(self->needspatch) {
                spin_unlock_irqrestore(&self->lock, flags);
-               IRDA_WARNING("%s(), device needs patch\n", __func__) ;
+               net_warn_ratelimited("%s(), device needs patch\n", __func__);
                return -EIO ;
        }
 
                if (!skb) {
                        /* If this ever happen, we are in deep s***.
                         * Basically, we can't start the Rx path... */
-                       IRDA_WARNING("%s(), Failed to allocate Rx skb\n",
-                                    __func__);
                        return -1;
                }
                //skb_reserve(newskb, USB_IRDA_HEADER - 1);
                                /* This is our interrupt endpoint */
                                self->bulk_int_ep = ep;
                        } else {
-                               IRDA_ERROR("%s(), Unrecognised endpoint %02X.\n", __func__, ep);
+                               net_err_ratelimited("%s(), Unrecognised endpoint %02X\n",
+                                                   __func__, ep);
                        }
                }
        }
        
        IRDA_DEBUG(1, "%s(), ret=%d\n", __func__, ret);
        if (ret < sizeof(*desc)) {
-               IRDA_WARNING("usb-irda: class_descriptor read %s (%d)\n",
-                            (ret<0) ? "failed" : "too short", ret);
+               net_warn_ratelimited("usb-irda: class_descriptor read %s (%d)\n",
+                                    ret < 0 ? "failed" : "too short", ret);
        }
        else if (desc->bDescriptorType != USB_DT_IRDA) {
-               IRDA_WARNING("usb-irda: bad class_descriptor type\n");
+               net_warn_ratelimited("usb-irda: bad class_descriptor type\n");
        }
        else {
 #ifdef IU_DUMP_CLASS_DESC
         * don't need to check if the dongle is really ours.
         * Jean II */
 
-       IRDA_MESSAGE("IRDA-USB found at address %d, Vendor: %x, Product: %x\n",
-                    dev->devnum, le16_to_cpu(dev->descriptor.idVendor),
-                    le16_to_cpu(dev->descriptor.idProduct));
+       net_info_ratelimited("IRDA-USB found at address %d, Vendor: %x, Product: %x\n",
+                            dev->devnum, le16_to_cpu(dev->descriptor.idVendor),
+                            le16_to_cpu(dev->descriptor.idProduct));
 
        net = alloc_irdadev(sizeof(*self));
        if (!net) 
        interface = intf->cur_altsetting;
        if(!irda_usb_parse_endpoints(self, interface->endpoint,
                                     interface->desc.bNumEndpoints)) {
-               IRDA_ERROR("%s(), Bogus endpoints...\n", __func__);
+               net_err_ratelimited("%s(), Bogus endpoints...\n", __func__);
                ret = -EIO;
                goto err_out_3;
        }
        if (ret) 
                goto err_out_5;
 
-       IRDA_MESSAGE("IrDA: Registered device %s\n", net->name);
+       net_info_ratelimited("IrDA: Registered device %s\n", net->name);
        usb_set_intfdata(intf, self);
 
        if (self->needspatch) {
                ret = stir421x_patch_device(self);
                self->needspatch = (ret < 0);
                if (self->needspatch) {
-                       IRDA_ERROR("STIR421X: Couldn't upload patch\n");
+                       net_err_ratelimited("STIR421X: Couldn't upload patch\n");
                        goto err_out_6;
                }
 
 
 
        dev = priv->dev;
        if (!dev) {
-               IRDA_WARNING("%s(), not ready yet!\n", __func__);
+               net_warn_ratelimited("%s(), not ready yet!\n", __func__);
                return;
        }
 
        int err;
 
        if ((err = tty_register_ldisc(N_IRDA, &irda_ldisc)) != 0)
-               IRDA_ERROR("IrDA: can't register line discipline (err = %d)\n",
-                          err);
+               net_err_ratelimited("IrDA: can't register line discipline (err = %d)\n",
+                                   err);
        return err;
 }
 
        int err;
 
        if ((err = tty_unregister_ldisc(N_IRDA))) {
-               IRDA_ERROR("%s(), can't unregister line discipline (err = %d)\n",
-                          __func__, err);
+               net_err_ratelimited("%s(), can't unregister line discipline (err = %d)\n",
+                                   __func__, err);
        }
 }
 
 
 
        sirdev_raw_read(dev, &byte, sizeof(byte));
        if (byte != get_control_byte(speed))  {
-               IRDA_WARNING("%s(): bad control byte read-back %02x != %02x\n",
-                            __func__, (unsigned) byte,
-                            (unsigned) get_control_byte(speed));
+               net_warn_ratelimited("%s(): bad control byte read-back %02x != %02x\n",
+                                    __func__, (unsigned)byte,
+                                    (unsigned)get_control_byte(speed));
                return -1;
        }
        else
 
                break;
 
        default:
-               IRDA_ERROR("%s(), undefine state %d\n", __func__, state);
+               net_err_ratelimited("%s(), undefine state %d\n",
+                                   __func__, state);
                ret = -EINVAL;
                break;
        }
                break;
 
        default:
-               IRDA_ERROR("%s(), undefined state %d\n", __func__, state);
+               net_err_ratelimited("%s(), undefined state %d\n",
+                                   __func__, state);
                ret = -EINVAL;
                break;
        }
 
 /* Setup a communication between mcs7780 and agilent chip. */
 static inline int mcs_setup_transceiver_agilent(struct mcs_cb *mcs)
 {
-       IRDA_WARNING("This transceiver type is not supported yet.\n");
+       net_warn_ratelimited("This transceiver type is not supported yet\n");
        return 1;
 }
 
 /* Setup a communication between mcs7780 and sharp chip. */
 static inline int mcs_setup_transceiver_sharp(struct mcs_cb *mcs)
 {
-       IRDA_WARNING("This transceiver type is not supported yet.\n");
+       net_warn_ratelimited("This transceiver type is not supported yet\n");
        return 1;
 }
 
 {
        int ret = 0;
        __u16 rval;
-       char *msg;
+       const char *msg;
 
-       msg = "Basic transceiver setup error.";
+       msg = "Basic transceiver setup error";
 
        /* read value of MODE Register, set the DRIVER and RESET bits
        * and write value back out to MODE Register
        if(unlikely(ret))
                goto error;
 
-       msg = "transceiver model specific setup error.";
+       msg = "transceiver model specific setup error";
        switch (mcs->transceiver_type) {
        case MCS_TSC_VISHAY:
                ret = mcs_setup_transceiver_vishay(mcs);
                break;
 
        default:
-               IRDA_WARNING("Unknown transceiver type: %d\n",
-                            mcs->transceiver_type);
+               net_warn_ratelimited("Unknown transceiver type: %d\n",
+                                    mcs->transceiver_type);
                ret = 1;
        }
        if (unlikely(ret))
                        goto error;
        }
 
-       msg = "transceiver reset.";
+       msg = "transceiver reset";
 
        ret = mcs_get_reg(mcs, MCS_MODE_REG, &rval);
        if (unlikely(ret != 2))
                return ret;
 
 error:
-       IRDA_ERROR("%s\n", msg);
+       net_err_ratelimited("%s\n", msg);
        return ret;
 }
 
 
        new_len = len - 2;
        if(unlikely(new_len <= 0)) {
-               IRDA_ERROR("%s short frame length %d\n",
-                            mcs->netdev->name, new_len);
+               net_err_ratelimited("%s short frame length %d\n",
+                                   mcs->netdev->name, new_len);
                ++mcs->netdev->stats.rx_errors;
                ++mcs->netdev->stats.rx_length_errors;
                return;
        fcs = irda_calc_crc16(~fcs, buf, len);
 
        if(fcs != GOOD_FCS) {
-               IRDA_ERROR("crc error calc 0x%x len %d\n",
-                          fcs, new_len);
+               net_err_ratelimited("crc error calc 0x%x len %d\n",
+                                   fcs, new_len);
                mcs->netdev->stats.rx_errors++;
                mcs->netdev->stats.rx_crc_errors++;
                return;
 
        new_len = len - 4;
        if(unlikely(new_len <= 0)) {
-               IRDA_ERROR("%s short frame length %d\n",
-                          mcs->netdev->name, new_len);
+               net_err_ratelimited("%s short frame length %d\n",
+                                   mcs->netdev->name, new_len);
                ++mcs->netdev->stats.rx_errors;
                ++mcs->netdev->stats.rx_length_errors;
                return;
 
        fcs = ~(crc32_le(~0, buf, new_len));
        if(fcs != get_unaligned_le32(buf + new_len)) {
-               IRDA_ERROR("crc error calc 0x%x len %d\n", fcs, new_len);
+               net_err_ratelimited("crc error calc 0x%x len %d\n",
+                                   fcs, new_len);
                mcs->netdev->stats.rx_errors++;
                mcs->netdev->stats.rx_crc_errors++;
                return;
        } while(cnt++ < 100 && (rval & MCS_IRINTX));
 
        if (cnt > 100) {
-               IRDA_ERROR("unable to change speed\n");
+               net_err_ratelimited("unable to change speed\n");
                ret = -EIO;
                goto error;
        }
 
                default:
                        ret = 1;
-                       IRDA_WARNING("Unknown transceiver type: %d\n",
-                                    mcs->transceiver_type);
+                       net_warn_ratelimited("Unknown transceiver type: %d\n",
+                                            mcs->transceiver_type);
                }
        if (unlikely(ret))
                goto error;
        sprintf(hwname, "usb#%d", mcs->usbdev->devnum);
        mcs->irlap = irlap_open(netdev, &mcs->qos, hwname);
        if (!mcs->irlap) {
-               IRDA_ERROR("mcs7780: irlap_open failed\n");
+               net_err_ratelimited("mcs7780: irlap_open failed\n");
                goto error2;
        }
 
                          mcs->out_buf, wraplen, mcs_send_irq, mcs);
 
        if ((ret = usb_submit_urb(mcs->tx_urb, GFP_ATOMIC))) {
-               IRDA_ERROR("failed tx_urb: %d\n", ret);
+               net_err_ratelimited("failed tx_urb: %d\n", ret);
                switch (ret) {
                case -ENODEV:
                case -EPIPE:
 
        ret = usb_reset_configuration(udev);
        if (ret != 0) {
-               IRDA_ERROR("mcs7780: usb reset configuration failed\n");
+               net_err_ratelimited("mcs7780: usb reset configuration failed\n");
                goto error2;
        }
 
 
 
        ret = platform_driver_register(&nsc_ircc_driver);
         if (ret) {
-                IRDA_ERROR("%s, Can't register driver!\n", driver_name);
+               net_err_ratelimited("%s, Can't register driver!\n",
+                                   driver_name);
                 return ret;
         }
 
                                        info.irq = pnp_info.irq;
 
                                        if (info.fir_base < 0x2000) {
-                                               IRDA_MESSAGE("%s, chip->init\n", driver_name);
+                                               net_info_ratelimited("%s, chip->init\n",
+                                                                    driver_name);
                                                chip->init(chip, &info);
                                        } else
                                                chip->probe(chip, &info);
        }
 
        if (chip_index == ARRAY_SIZE(dev_self)) {
-               IRDA_ERROR("%s(), maximum number of supported chips reached!\n", __func__);
+               net_err_ratelimited("%s(), maximum number of supported chips reached!\n",
+                                   __func__);
                return -ENOMEM;
        }
 
-       IRDA_MESSAGE("%s, Found chip at base=0x%03x\n", driver_name,
-                    info->cfg_base);
+       net_info_ratelimited("%s, Found chip at base=0x%03x\n",
+                            driver_name, info->cfg_base);
 
        if ((nsc_ircc_setup(info)) == -1)
                return -1;
 
-       IRDA_MESSAGE("%s, driver loaded (Dag Brattli)\n", driver_name);
+       net_info_ratelimited("%s, driver loaded (Dag Brattli)\n", driver_name);
 
        dev = alloc_irdadev(sizeof(struct nsc_ircc_cb));
        if (dev == NULL) {
-               IRDA_ERROR("%s(), can't allocate memory for "
-                          "control block!\n", __func__);
+               net_err_ratelimited("%s(), can't allocate memory for control block!\n",
+                                   __func__);
                return -ENOMEM;
        }
 
        /* Reserve the ioports that we need */
        ret = request_region(self->io.fir_base, self->io.fir_ext, driver_name);
        if (!ret) {
-               IRDA_WARNING("%s(), can't get iobase of 0x%03x\n",
-                            __func__, self->io.fir_base);
+               net_warn_ratelimited("%s(), can't get iobase of 0x%03x\n",
+                                    __func__, self->io.fir_base);
                err = -ENODEV;
                goto out1;
        }
 
        err = register_netdev(dev);
        if (err) {
-               IRDA_ERROR("%s(), register_netdev() failed!\n", __func__);
+               net_err_ratelimited("%s(), register_netdev() failed!\n",
+                                   __func__);
                goto out4;
        }
-       IRDA_MESSAGE("IrDA: Registered device %s\n", dev->name);
+       net_info_ratelimited("IrDA: Registered device %s\n", dev->name);
 
        /* Check if user has supplied a valid dongle id or not */
        if ((dongle_id <= 0) ||
            (dongle_id >= ARRAY_SIZE(dongle_types))) {
                dongle_id = nsc_ircc_read_dongle_id(self->io.fir_base);
                
-               IRDA_MESSAGE("%s, Found dongle: %s\n", driver_name,
-                            dongle_types[dongle_id]);
+               net_info_ratelimited("%s, Found dongle: %s\n",
+                                    driver_name, dongle_types[dongle_id]);
        } else {
-               IRDA_MESSAGE("%s, Using dongle: %s\n", driver_name,
-                            dongle_types[dongle_id]);
+               net_info_ratelimited("%s, Using dongle: %s\n",
+                                    driver_name, dongle_types[dongle_id]);
        }
        
        self->io.dongle_id = dongle_id;
        case 0x2e8: outb(0x15, cfg_base+1); break;
        case 0x3f8: outb(0x16, cfg_base+1); break;
        case 0x2f8: outb(0x17, cfg_base+1); break;
-       default: IRDA_ERROR("%s(), invalid base_address", __func__);
+       default: net_err_ratelimited("%s(), invalid base_address\n", __func__);
        }
        
        /* Control Signal Routing Register (CSRT) */
        case 9:  temp = 0x05; break;
        case 11: temp = 0x06; break;
        case 15: temp = 0x07; break;
-       default: IRDA_ERROR("%s(), invalid irq", __func__);
+       default: net_err_ratelimited("%s(), invalid irq\n", __func__);
        }
        outb(CFG_108_CSRT, cfg_base);
        
        case 0: outb(0x08+temp, cfg_base+1); break;
        case 1: outb(0x10+temp, cfg_base+1); break;
        case 3: outb(0x18+temp, cfg_base+1); break;
-       default: IRDA_ERROR("%s(), invalid dma", __func__);
+       default: net_err_ratelimited("%s(), invalid dma\n", __func__);
        }
        
        outb(CFG_108_MCTL, cfg_base);      /* Mode Control Register (MCTL) */
 
        /* Should be 0x2? */
        if (0x20 != (version & 0xf0)) {
-               IRDA_ERROR("%s, Wrong chip version %02x\n",
-                          driver_name, version);
+               net_err_ratelimited("%s, Wrong chip version %02x\n",
+                                   driver_name, version);
                return -1;
        }
 
 
                        skb = dev_alloc_skb(len+1);
                        if (skb == NULL)  {
-                               IRDA_WARNING("%s(), memory squeeze, "
-                                            "dropping frame.\n",
-                                            __func__);
                                self->netdev->stats.rx_dropped++;
 
                                /* Restore bank register */
                                        nsc_ircc_dma_receive(self);
                                        self->ier = IER_SFIF_IE;
                                } else
-                                       IRDA_WARNING("%s(), potential "
-                                                    "Tx queue lockup !\n",
-                                                    __func__);
+                                       net_warn_ratelimited("%s(), potential Tx queue lockup !\n",
+                                                            __func__);
                        }
                } else {
                        /*  Not finished yet, so interrupt on DMA again */
        iobase = self->io.fir_base;
        
        if (request_irq(self->io.irq, nsc_ircc_interrupt, 0, dev->name, dev)) {
-               IRDA_WARNING("%s, unable to allocate irq=%d\n",
-                            driver_name, self->io.irq);
+               net_warn_ratelimited("%s, unable to allocate irq=%d\n",
+                                    driver_name, self->io.irq);
                return -EAGAIN;
        }
        /*
         * failure.
         */
        if (request_dma(self->io.dma, dev->name)) {
-               IRDA_WARNING("%s, unable to allocate dma=%d\n",
-                            driver_name, self->io.dma);
+               net_warn_ratelimited("%s, unable to allocate dma=%d\n",
+                                    driver_name, self->io.dma);
                free_irq(self->io.irq, dev);
                return -EAGAIN;
        }
        if (netif_running(self->netdev)) {
                if (request_irq(self->io.irq, nsc_ircc_interrupt, 0,
                                self->netdev->name, self->netdev)) {
-                       IRDA_WARNING("%s, unable to allocate irq=%d\n",
-                                    driver_name, self->io.irq);
+                       net_warn_ratelimited("%s, unable to allocate irq=%d\n",
+                                            driver_name, self->io.irq);
 
                        /*
                         * Don't fail resume process, just kill this
 
                        return 0;
 
                default:
-                       IRDA_ERROR("%s - undefined state\n", __func__);
+                       net_err_ratelimited("%s - undefined state\n", __func__);
                        return -EINVAL;
                }
                fsm->substate = next_state;
                        break;
 
                default:
-                       IRDA_ERROR("%s - undefined state\n", __func__);
+                       net_err_ratelimited("%s - undefined state\n", __func__);
                        fsm->result = -EINVAL;
                        /* fall thru */
 
                case SIRDEV_STATE_ERROR:
-                       IRDA_ERROR("%s - error: %d\n", __func__, fsm->result);
+                       net_err_ratelimited("%s - error: %d\n",
+                                           __func__, fsm->result);
 
 #if 0  /* don't enable this before we have netdev->tx_timeout to recover */
                        netif_stop_queue(dev->netdev);
 
        if (fsm->state == SIRDEV_STATE_DEAD) {
                /* race with sirdev_close should never happen */
-               IRDA_ERROR("%s(), instance staled!\n", __func__);
+               net_err_ratelimited("%s(), instance staled!\n", __func__);
                up(&fsm->sem);
                return -ESTALE;         /* or better EPIPE? */
        }
                }
                else if (unlikely(actual<0)) {
                        /* could be dropped later when we have tx_timeout to recover */
-                       IRDA_ERROR("%s: drv->do_write failed (%d)\n",
-                                  __func__, actual);
+                       net_err_ratelimited("%s: drv->do_write failed (%d)\n",
+                                           __func__, actual);
                        if ((skb=dev->tx_skb) != NULL) {
                                dev->tx_skb = NULL;
                                dev_kfree_skb_any(skb);
                        /* should never happen
                         * forget the speed change and hope the stack recovers
                         */
-                       IRDA_ERROR("%s - schedule speed change failed: %d\n",
-                                  __func__, err);
+                       net_err_ratelimited("%s - schedule speed change failed: %d\n",
+                                           __func__, err);
                        netif_wake_queue(dev->netdev);
                }
                /* else: success
 int sirdev_receive(struct sir_dev *dev, const unsigned char *cp, size_t count) 
 {
        if (!dev || !dev->netdev) {
-               IRDA_WARNING("%s(), not ready yet!\n", __func__);
+               net_warn_ratelimited("%s(), not ready yet!\n", __func__);
                return -1;
        }
 
        if (!dev->irlap) {
-               IRDA_WARNING("%s - too early: %p / %zd!\n",
-                            __func__, cp, count);
+               net_warn_ratelimited("%s - too early: %p / %zd!\n",
+                                    __func__, cp, count);
                return -1;
        }
 
        }
        else if (unlikely(actual < 0)) {
                /* could be dropped later when we have tx_timeout to recover */
-               IRDA_ERROR("%s: drv->do_write failed (%d)\n",
-                          __func__, actual);
+               net_err_ratelimited("%s: drv->do_write failed (%d)\n",
+                                   __func__, actual);
                dev_kfree_skb_any(skb);
                dev->netdev->stats.tx_errors++;
                dev->netdev->stats.tx_dropped++;
         */
        ndev = alloc_irdadev(sizeof(*dev));
        if (ndev == NULL) {
-               IRDA_ERROR("%s - Can't allocate memory for IrDA control block!\n", __func__);
+               net_err_ratelimited("%s - Can't allocate memory for IrDA control block!\n",
+                                   __func__);
                goto out;
        }
        dev = netdev_priv(ndev);
        ndev->netdev_ops = &sirdev_ops;
 
        if (register_netdev(ndev)) {
-               IRDA_ERROR("%s(), register_netdev() failed!\n", __func__);
+               net_err_ratelimited("%s(), register_netdev() failed!\n",
+                                   __func__);
                goto out_freenetdev;
        }
 
        if (dev->dongle_drv)
                err = sirdev_schedule_dongle_close(dev);
        if (err)
-               IRDA_ERROR("%s - error %d\n", __func__, err);
+               net_err_ratelimited("%s - error %d\n", __func__, err);
 
        sirdev_close(dev->netdev);
 
 
 #ifdef CONFIG_PCI
        if (smsc_ircc_preconfigure_subsystems(ircc_cfg, ircc_fir, ircc_sir, ircc_dma, ircc_irq) < 0) {
                /* Ignore errors from preconfiguration */
-               IRDA_ERROR("%s, Preconfiguration failed !\n", driver_name);
+               net_err_ratelimited("%s, Preconfiguration failed !\n",
+                                   driver_name);
        }
 #endif
 
        if (ircc_fir > 0 && ircc_sir > 0) {
-               IRDA_MESSAGE(" Overriding FIR address 0x%04x\n", ircc_fir);
-               IRDA_MESSAGE(" Overriding SIR address 0x%04x\n", ircc_sir);
+               net_info_ratelimited(" Overriding FIR address 0x%04x\n",
+                                    ircc_fir);
+               net_info_ratelimited(" Overriding SIR address 0x%04x\n",
+                                    ircc_sir);
 
                if (smsc_ircc_open(ircc_fir, ircc_sir, ircc_dma, ircc_irq))
                        ret = -ENODEV;
 
                /* try user provided configuration register base address */
                if (ircc_cfg > 0) {
-                       IRDA_MESSAGE(" Overriding configuration address "
-                                    "0x%04x\n", ircc_cfg);
+                       net_info_ratelimited(" Overriding configuration address 0x%04x\n",
+                                            ircc_cfg);
                        if (!smsc_superio_fdc(ircc_cfg))
                                ret = 0;
                        if (!smsc_superio_lpc(ircc_cfg))
 
        ret = platform_driver_register(&smsc_ircc_driver);
        if (ret) {
-               IRDA_ERROR("%s, Can't register driver!\n", driver_name);
+               net_err_ratelimited("%s, Can't register driver!\n",
+                                   driver_name);
                return ret;
        }
 
 
        err = -ENOMEM;
        if (dev_count >= ARRAY_SIZE(dev_self)) {
-               IRDA_WARNING("%s(), too many devices!\n", __func__);
+               net_warn_ratelimited("%s(), too many devices!\n", __func__);
                goto err_out1;
        }
 
         */
        dev = alloc_irdadev(sizeof(struct smsc_ircc_cb));
        if (!dev) {
-               IRDA_WARNING("%s() can't allocate net device\n", __func__);
+               net_warn_ratelimited("%s() can't allocate net device\n",
+                                    __func__);
                goto err_out1;
        }
 
 
        err = register_netdev(self->netdev);
        if (err) {
-               IRDA_ERROR("%s, Network device registration failed!\n",
-                          driver_name);
+               net_err_ratelimited("%s, Network device registration failed!\n",
+                                   driver_name);
                goto err_out4;
        }
 
        }
        platform_set_drvdata(self->pldev, self);
 
-       IRDA_MESSAGE("IrDA: Registered device %s\n", dev->name);
+       net_info_ratelimited("IrDA: Registered device %s\n", dev->name);
        dev_count++;
 
        return 0;
 
        if (!request_region(fir_base, SMSC_IRCC2_FIR_CHIP_IO_EXTENT,
                            driver_name)) {
-               IRDA_WARNING("%s: can't get fir_base of 0x%03x\n",
-                            __func__, fir_base);
+               net_warn_ratelimited("%s: can't get fir_base of 0x%03x\n",
+                                    __func__, fir_base);
                goto out1;
        }
 
        if (!request_region(sir_base, SMSC_IRCC2_SIR_CHIP_IO_EXTENT,
                            driver_name)) {
-               IRDA_WARNING("%s: can't get sir_base of 0x%03x\n",
-                            __func__, sir_base);
+               net_warn_ratelimited("%s: can't get sir_base of 0x%03x\n",
+                                    __func__, sir_base);
                goto out2;
        }
 
        irq     = (config & IRCC_INTERFACE_IRQ_MASK) >> 4;
 
        if (high != 0x10 || low != 0xb8 || (chip != 0xf1 && chip != 0xf2)) {
-               IRDA_WARNING("%s(), addr 0x%04x - no device found!\n",
-                            __func__, fir_base);
+               net_warn_ratelimited("%s(), addr 0x%04x - no device found!\n",
+                                    __func__, fir_base);
                goto out3;
        }
-       IRDA_MESSAGE("SMsC IrDA Controller found\n IrCC version %d.%d, "
-                    "firport 0x%03x, sirport 0x%03x dma=%d, irq=%d\n",
-                    chip & 0x0f, version, fir_base, sir_base, dma, irq);
+       net_info_ratelimited("SMsC IrDA Controller found\n IrCC version %d.%d, firport 0x%03x, sirport 0x%03x dma=%d, irq=%d\n",
+                            chip & 0x0f, version,
+                            fir_base, sir_base, dma, irq);
 
        return 0;
 
 
        if (irq != IRQ_INVAL) {
                if (irq != chip_irq)
-                       IRDA_MESSAGE("%s, Overriding IRQ - chip says %d, using %d\n",
-                                    driver_name, chip_irq, irq);
+                       net_info_ratelimited("%s, Overriding IRQ - chip says %d, using %d\n",
+                                            driver_name, chip_irq, irq);
                self->io.irq = irq;
        } else
                self->io.irq = chip_irq;
 
        if (dma != DMA_INVAL) {
                if (dma != chip_dma)
-                       IRDA_MESSAGE("%s, Overriding DMA - chip says %d, using %d\n",
-                                    driver_name, chip_dma, dma);
+                       net_info_ratelimited("%s, Overriding DMA - chip says %d, using %d\n",
+                                            driver_name, chip_dma, dma);
                self->io.dma = dma;
        } else
                self->io.dma = chip_dma;
        struct smsc_ircc_cb *self = netdev_priv(dev);
        unsigned long flags;
 
-       IRDA_WARNING("%s: transmit timed out, changing speed to: %d\n",
-                    dev->name, self->io.speed);
+       net_warn_ratelimited("%s: transmit timed out, changing speed to: %d\n",
+                            dev->name, self->io.speed);
        spin_lock_irqsave(&self->lock, flags);
        smsc_ircc_sir_start(self);
        smsc_ircc_change_speed(self, self->io.speed);
        len -= self->io.speed < 4000000 ? 2 : 4;
 
        if (len < 2 || len > 2050) {
-               IRDA_WARNING("%s(), bogus len=%d\n", __func__, len);
+               net_warn_ratelimited("%s(), bogus len=%d\n", __func__, len);
                return;
        }
        IRDA_DEBUG(2, "%s: msgcnt = %d, len=%d\n", __func__, msgcnt, len);
 
        skb = dev_alloc_skb(len + 1);
-       if (!skb) {
-               IRDA_WARNING("%s(), memory squeeze, dropping frame.\n",
-                            __func__);
+       if (!skb)
                return;
-       }
+
        /* Make sure IP header gets aligned */
        skb_reserve(skb, 1);
 
        if (request_dma(self->io.dma, dev->name)) {
                smsc_ircc_net_close(dev);
 
-               IRDA_WARNING("%s(), unable to allocate DMA=%d\n",
-                            __func__, self->io.dma);
+               net_warn_ratelimited("%s(), unable to allocate DMA=%d\n",
+                                    __func__, self->io.dma);
                return -EAGAIN;
        }
 
 
        /* Tx FIFO should be empty! */
        if (!(inb(iobase + UART_LSR) & UART_LSR_THRE)) {
-               IRDA_WARNING("%s(), failed, fifo not empty!\n", __func__);
+               net_warn_ratelimited("%s(), failed, fifo not empty!\n",
+                                    __func__);
                return 0;
        }
 
 
        for (i = 0; smsc_transceivers[i].name != NULL; i++)
                if (smsc_transceivers[i].probe(self->io.fir_base)) {
-                       IRDA_MESSAGE(" %s transceiver found\n",
-                                    smsc_transceivers[i].name);
+                       net_info_ratelimited(" %s transceiver found\n",
+                                            smsc_transceivers[i].name);
                        self->transceiver= i + 1;
                        return;
                }
 
-       IRDA_MESSAGE("No transceiver found. Defaulting to %s\n",
-                    smsc_transceivers[SMSC_IRCC2_C_DEFAULT_TRANSCEIVER].name);
+       net_info_ratelimited("No transceiver found. Defaulting to %s\n",
+                            smsc_transceivers[SMSC_IRCC2_C_DEFAULT_TRANSCEIVER].name);
 
        self->transceiver = SMSC_IRCC2_C_DEFAULT_TRANSCEIVER;
 }
        /*printk(KERN_WARNING "%s(): mode: 0x%02x\n", __func__, mode);*/
 
        if (!(mode & SMSCSIOFLAT_UART2MODE_VAL_IRDA))
-               IRDA_WARNING("%s(): IrDA not enabled\n", __func__);
+               net_warn_ratelimited("%s(): IrDA not enabled\n", __func__);
 
        outb(SMSCSIOFLAT_UART2BASEADDR_REG, cfgbase);
        sirbase = inb(cfgbase + 1) << 2;
        outb(SMSCSIOFLAT_UARTIRQSELECT_REG, cfgbase);
        irq = inb(cfgbase + 1) & SMSCSIOFLAT_UART2IRQSELECT_MASK;
 
-       IRDA_MESSAGE("%s(): fir: 0x%02x, sir: 0x%02x, dma: %02d, irq: %d, mode: 0x%02x\n", __func__, firbase, sirbase, dma, irq, mode);
+       net_info_ratelimited("%s(): fir: 0x%02x, sir: 0x%02x, dma: %02d, irq: %d, mode: 0x%02x\n",
+                            __func__, firbase, sirbase, dma, irq, mode);
 
        if (firbase && smsc_ircc_open(firbase, sirbase, dma, irq) == 0)
                ret = 0;
                        return NULL;
        }
 
-       IRDA_MESSAGE("found SMC SuperIO Chip (devid=0x%02x rev=%02X base=0x%04x): %s%s\n",
-                    devid, rev, cfg_base, type, chip->name);
+       net_info_ratelimited("found SMC SuperIO Chip (devid=0x%02x rev=%02X base=0x%04x): %s%s\n",
+                            devid, rev, cfg_base, type, chip->name);
 
        if (chip->rev > rev) {
-               IRDA_MESSAGE("Revision higher than expected\n");
+               net_info_ratelimited("Revision higher than expected\n");
                return NULL;
        }
 
        if (chip->flags & NoIRDA)
-               IRDA_MESSAGE("chipset does not support IRDA\n");
+               net_info_ratelimited("chipset does not support IRDA\n");
 
        return chip;
 }
        int ret = -1;
 
        if (!request_region(cfg_base, 2, driver_name)) {
-               IRDA_WARNING("%s: can't get cfg_base of 0x%03x\n",
-                            __func__, cfg_base);
+               net_warn_ratelimited("%s: can't get cfg_base of 0x%03x\n",
+                                    __func__, cfg_base);
        } else {
                if (!smsc_superio_flat(fdc_chips_flat, cfg_base, "FDC") ||
                    !smsc_superio_paged(fdc_chips_paged, cfg_base, "FDC"))
        int ret = -1;
 
        if (!request_region(cfg_base, 2, driver_name)) {
-               IRDA_WARNING("%s: can't get cfg_base of 0x%03x\n",
-                            __func__, cfg_base);
+               net_warn_ratelimited("%s: can't get cfg_base of 0x%03x\n",
+                                    __func__, cfg_base);
        } else {
                if (!smsc_superio_flat(lpc_chips_flat, cfg_base, "LPC") ||
                    !smsc_superio_paged(lpc_chips_paged, cfg_base, "LPC"))
        outb( (conf->sir_io >> 2), iobase + 1); // bits 2-9 of 0x3f8
        tmpbyte = inb(iobase + 1);
        if (tmpbyte != (conf->sir_io >> 2) ) {
-               IRDA_WARNING("ERROR: could not configure SIR ioport.\n");
-               IRDA_WARNING("Try to supply ircc_cfg argument.\n");
+               net_warn_ratelimited("ERROR: could not configure SIR ioport\n");
+               net_warn_ratelimited("Try to supply ircc_cfg argument\n");
                return -ENXIO;
        }
 
        outb(tmpbyte, iobase + 1);
        tmpbyte = inb(iobase + 1) & SMSCSIOFLAT_UART2IRQSELECT_MASK;
        if (tmpbyte != conf->fir_irq) {
-               IRDA_WARNING("ERROR: could not configure FIR IRQ channel.\n");
+               net_warn_ratelimited("ERROR: could not configure FIR IRQ channel\n");
                return -ENXIO;
        }
 
        outb((conf->fir_io >> 3), iobase + 1);
        tmpbyte = inb(iobase + 1);
        if (tmpbyte != (conf->fir_io >> 3) ) {
-               IRDA_WARNING("ERROR: could not configure FIR I/O port.\n");
+               net_warn_ratelimited("ERROR: could not configure FIR I/O port\n");
                return -ENXIO;
        }
 
        outb((conf->fir_dma & LPC47N227_FIRDMASELECT_MASK), iobase + 1); // DMA
        tmpbyte = inb(iobase + 1) & LPC47N227_FIRDMASELECT_MASK;
        if (tmpbyte != (conf->fir_dma & LPC47N227_FIRDMASELECT_MASK)) {
-               IRDA_WARNING("ERROR: could not configure FIR DMA channel.\n");
+               net_warn_ratelimited("ERROR: could not configure FIR DMA channel\n");
                return -ENXIO;
        }
 
        unsigned short tmpword;
        unsigned char tmpbyte;
 
-       IRDA_MESSAGE("Setting up Intel 82801 controller and SMSC device\n");
+       net_info_ratelimited("Setting up Intel 82801 controller and SMSC device\n");
        /*
         * Select the range for the COMA COM port (SIR)
         * Register COM_DEC:
                tmpword |= 0x0400;
                break;
        default:
-               IRDA_WARNING("Uncommon I/O base address: 0x%04x\n",
-                            conf->cfg_base);
+               net_warn_ratelimited("Uncommon I/O base address: 0x%04x\n",
+                                    conf->cfg_base);
                break;
        }
        tmpword &= 0xfffd; /* disable LPC COMB */
                mask = 0x08;
                break;
        default:
-               IRDA_ERROR("Failed to configure unsupported port on ALi 1533 bridge: 0x%04x\n", port);
+               net_err_ratelimited("Failed to configure unsupported port on ALi 1533 bridge: 0x%04x\n",
+                                   port);
                return;
        }
 
        /* Turn on the right bits */
        tmpbyte |= mask;
        pci_write_config_byte(dev, reg, tmpbyte);
-       IRDA_MESSAGE("Activated ALi 1533 ISA bridge port 0x%04x.\n", port);
+       net_info_ratelimited("Activated ALi 1533 ISA bridge port 0x%04x\n",
+                            port);
 }
 
 static int __init preconfigure_through_ali(struct pci_dev *dev,
                                if (ircc_irq != IRQ_INVAL)
                                        tmpconf.fir_irq = ircc_irq;
 
-                               IRDA_MESSAGE("Detected unconfigured %s SMSC IrDA chip, pre-configuring device.\n", conf->name);
+                               net_info_ratelimited("Detected unconfigured %s SMSC IrDA chip, pre-configuring device\n",
+                                                    conf->name);
                                if (conf->preconfigure)
                                        ret = conf->preconfigure(dev, &tmpconf);
                                else
                /* empty */;
 
        if (val)
-               IRDA_WARNING("%s(): ATC: 0x%02x\n", __func__,
-                            inb(fir_base + IRCC_ATC));
+               net_warn_ratelimited("%s(): ATC: 0x%02x\n",
+                                    __func__, inb(fir_base + IRCC_ATC));
 }
 
 /*
 
                break;
 
        default:
-               IRDA_ERROR("%s - undefined state %d\n", __func__, state);
+               net_err_ratelimited("%s - undefined state %d\n",
+                                   __func__, state);
                ret = -EINVAL;
                break;
        }
 
        if (err)
                goto err_out4;
 
-       IRDA_MESSAGE("IrDA: Registered device %s (via-ircc)\n", dev->name);
+       net_info_ratelimited("IrDA: Registered device %s (via-ircc)\n",
+                            dev->name);
 
        /* Initialise the hardware..
        */
  */
 static int via_ircc_read_dongle_id(int iobase)
 {
-       IRDA_ERROR("via-ircc: dongle probing not supported, please specify dongle_id module parameter.\n");
+       net_err_ratelimited("via-ircc: dongle probing not supported, please specify dongle_id module parameter\n");
        return 9;       /* Default to IBM */
 }
 
                break;
 
        default:
-               IRDA_ERROR("%s: Error: dongle_id %d unsupported !\n",
-                          __func__, dongle_id);
+               net_err_ratelimited("%s: Error: dongle_id %d unsupported !\n",
+                                   __func__, dongle_id);
        }
 }
 
        IRDA_ASSERT(self != NULL, return 0;);
        iobase = self->io.fir_base;
        if (request_irq(self->io.irq, via_ircc_interrupt, 0, dev->name, dev)) {
-               IRDA_WARNING("%s, unable to allocate irq=%d\n", driver_name,
-                            self->io.irq);
+               net_warn_ratelimited("%s, unable to allocate irq=%d\n",
+                                    driver_name, self->io.irq);
                return -EAGAIN;
        }
        /*
         * failure.
         */
        if (request_dma(self->io.dma, dev->name)) {
-               IRDA_WARNING("%s, unable to allocate dma=%d\n", driver_name,
-                            self->io.dma);
+               net_warn_ratelimited("%s, unable to allocate dma=%d\n",
+                                    driver_name, self->io.dma);
                free_irq(self->io.irq, dev);
                return -EAGAIN;
        }
        if (self->io.dma2 != self->io.dma) {
                if (request_dma(self->io.dma2, dev->name)) {
-                       IRDA_WARNING("%s, unable to allocate dma2=%d\n",
-                                    driver_name, self->io.dma2);
+                       net_warn_ratelimited("%s, unable to allocate dma2=%d\n",
+                                            driver_name, self->io.dma2);
                        free_irq(self->io.irq, dev);
                        free_dma(self->io.dma);
                        return -EAGAIN;
 
                if (rd->buf == NULL ||
                    !(busaddr = pci_map_single(pdev, rd->buf, len, dir))) {
                        if (rd->buf) {
-                               IRDA_ERROR("%s: failed to create PCI-MAP for %p",
-                                          __func__, rd->buf);
+                               net_err_ratelimited("%s: failed to create PCI-MAP for %p\n",
+                                                   __func__, rd->buf);
                                kfree(rd->buf);
                                rd->buf = NULL;
                        }
 
        ringarea = pci_zalloc_consistent(idev->pdev, HW_RING_AREA_SIZE,
                                         &idev->busaddr);
-       if (!ringarea) {
-               IRDA_ERROR("%s: insufficient memory for descriptor rings\n",
-                          __func__);
+       if (!ringarea)
                goto out;
-       }
 
        hwmap = (struct ring_descr_hw *)ringarea;
        idev->rx_ring = vlsi_alloc_ring(idev->pdev, hwmap, ringsize[1],
        }
 
        if (!rd->skb) {
-               IRDA_WARNING("%s: rx packet lost\n", __func__);
+               net_warn_ratelimited("%s: rx packet lost\n", __func__);
                ret |= VLSI_RX_DROP;
                goto done;
        }
 
        for (rd = ring_last(r); rd != NULL; rd = ring_put(r)) {
                if (rd_is_active(rd)) {
-                       IRDA_WARNING("%s: driver bug: rx descr race with hw\n",
-                                    __func__);
+                       net_warn_ratelimited("%s: driver bug: rx descr race with hw\n",
+                                            __func__);
                        vlsi_ring_debug(r);
                        break;
                }
 
        if (ring_first(r) == NULL) {
                /* we are in big trouble, if this should ever happen */
-               IRDA_ERROR("%s: rx ring exhausted!\n", __func__);
+               net_err_ratelimited("%s: rx ring exhausted!\n", __func__);
                vlsi_ring_debug(r);
        }
        else
                config = IRCFG_SIR | IRCFG_SIRFILT  | IRCFG_RXANY;
                switch(baudrate) {
                        default:
-                               IRDA_WARNING("%s: undefined baudrate %d - fallback to 9600!\n",
-                                            __func__, baudrate);
+                               net_warn_ratelimited("%s: undefined baudrate %d - fallback to 9600!\n",
+                                                    __func__, baudrate);
                                baudrate = 9600;
                                /* fallthru */
                        case 2400:
                config ^= IRENABLE_SIR_ON;
 
        if (config != (IRENABLE_PHYANDCLOCK|IRENABLE_ENRXST)) {
-               IRDA_WARNING("%s: failed to set %s mode!\n", __func__,
-                       (mode==IFF_SIR)?"SIR":((mode==IFF_MIR)?"MIR":"FIR"));
+               net_warn_ratelimited("%s: failed to set %s mode!\n",
+                                    __func__,
+                                    mode == IFF_SIR ? "SIR" :
+                                    mode == IFF_MIR ? "MIR" : "FIR");
                ret = -1;
        }
        else {
                if (inw(iobase+VLSI_PIO_PHYCTL) != nphyctl) {
-                       IRDA_WARNING("%s: failed to apply baudrate %d\n",
-                                    __func__, baudrate);
+                       net_warn_ratelimited("%s: failed to apply baudrate %d\n",
+                                            __func__, baudrate);
                        ret = -1;
                }
                else {
                 */
 
                if (len >= r->len-5)
-                        IRDA_WARNING("%s: possible buffer overflow with SIR wrapping!\n",
-                                     __func__);
+                       net_warn_ratelimited("%s: possible buffer overflow with SIR wrapping!\n",
+                                            __func__);
        }
        else {
                /* hw deals with MIR/FIR mode wrapping */
 drop_unlock:
        spin_unlock_irqrestore(&idev->lock, flags);
 drop:
-       IRDA_WARNING("%s: dropping packet - %s\n", __func__, msg);
+       net_warn_ratelimited("%s: dropping packet - %s\n", __func__, msg);
        dev_kfree_skb_any(skb);
        ndev->stats.tx_errors++;
        ndev->stats.tx_dropped++;
                }
                if (count < 3) {
                        if (clksrc == 1) { /* explicitly asked for PLL hence bail out */
-                               IRDA_ERROR("%s: no PLL or failed to lock!\n",
-                                          __func__);
+                               net_err_ratelimited("%s: no PLL or failed to lock!\n",
+                                                   __func__);
                                clkctl = CLKCTL_CLKSTP;
                                pci_write_config_byte(pdev, VLSI_PCI_CLKCTL, clkctl);
                                return -1;
        /* start the clock and clean the registers */
 
        if (vlsi_start_clock(pdev)) {
-               IRDA_ERROR("%s: no valid clock source\n", __func__);
+               net_err_ratelimited("%s: no valid clock source\n", __func__);
                return -1;
        }
        iobase = ndev->base_addr;
                idev->new_baud = idev->baud;            /* keep current baudrate */
 
        if (vlsi_start_hw(idev))
-               IRDA_ERROR("%s: failed to restart hw - %s(%s) unusable!\n",
-                          __func__, pci_name(idev->pdev), ndev->name);
+               net_err_ratelimited("%s: failed to restart hw - %s(%s) unusable!\n",
+                                   __func__, pci_name(idev->pdev), ndev->name);
        else
                netif_start_queue(ndev);
 }
                        irq->ifr_receiving = (fifocnt!=0) ? 1 : 0;
                        break;
                default:
-                       IRDA_WARNING("%s: notsupp - cmd=%04x\n",
-                                    __func__, cmd);
+                       net_warn_ratelimited("%s: notsupp - cmd=%04x\n",
+                                            __func__, cmd);
                        ret = -EOPNOTSUPP;
        }       
        
        spin_unlock_irqrestore(&idev->lock,flags);
 
        if (boguscount <= 0)
-               IRDA_MESSAGE("%s: too much work in interrupt!\n",
-                            __func__);
+               net_info_ratelimited("%s: too much work in interrupt!\n",
+                                    __func__);
        return IRQ_RETVAL(handled);
 }
 
        char    hwname[32];
 
        if (pci_request_regions(idev->pdev, drivername)) {
-               IRDA_WARNING("%s: io resource busy\n", __func__);
+               net_warn_ratelimited("%s: io resource busy\n", __func__);
                goto errout;
        }
        ndev->base_addr = pci_resource_start(idev->pdev,0);
 
        if (request_irq(ndev->irq, vlsi_interrupt, IRQF_SHARED,
                        drivername, ndev)) {
-               IRDA_WARNING("%s: couldn't get IRQ: %d\n",
-                            __func__, ndev->irq);
+               net_warn_ratelimited("%s: couldn't get IRQ: %d\n",
+                                    __func__, ndev->irq);
                goto errout_io;
        }
 
 
        netif_start_queue(ndev);
 
-       IRDA_MESSAGE("%s: device %s operational\n", __func__, ndev->name);
+       net_info_ratelimited("%s: device %s operational\n",
+                            __func__, ndev->name);
 
        return 0;
 
 
        pci_release_regions(idev->pdev);
 
-       IRDA_MESSAGE("%s: device %s stopped\n", __func__, ndev->name);
+       net_info_ratelimited("%s: device %s stopped\n", __func__, ndev->name);
 
        return 0;
 }
 
        if (pci_set_dma_mask(pdev,DMA_MASK_USED_BY_HW) ||
            pci_set_dma_mask(pdev,DMA_MASK_MSTRPAGE)) {
-               IRDA_ERROR("%s: aborting due to PCI BM-DMA address limitations\n", __func__);
+               net_err_ratelimited("%s: aborting due to PCI BM-DMA address limitations\n",
+                                   __func__);
                return -1;
        }
 
        else
                pdev->current_state = 0; /* hw must be running now */
 
-       IRDA_MESSAGE("%s: IrDA PCI controller %s detected\n",
-                    drivername, pci_name(pdev));
+       net_info_ratelimited("%s: IrDA PCI controller %s detected\n",
+                            drivername, pci_name(pdev));
 
        if ( !pci_resource_start(pdev,0) ||
             !(pci_resource_flags(pdev,0) & IORESOURCE_IO) ) {
-               IRDA_ERROR("%s: bar 0 invalid", __func__);
+               net_err_ratelimited("%s: bar 0 invalid", __func__);
                goto out_disable;
        }
 
        ndev = alloc_irdadev(sizeof(*idev));
        if (ndev==NULL) {
-               IRDA_ERROR("%s: Unable to allocate device memory.\n",
-                          __func__);
+               net_err_ratelimited("%s: Unable to allocate device memory.\n",
+                                   __func__);
                goto out_disable;
        }
 
                goto out_freedev;
 
        if (register_netdev(ndev) < 0) {
-               IRDA_ERROR("%s: register_netdev failed\n", __func__);
+               net_err_ratelimited("%s: register_netdev failed\n", __func__);
                goto out_freedev;
        }
 
                ent = proc_create_data(ndev->name, S_IFREG|S_IRUGO,
                                       vlsi_proc_root, VLSI_PROC_FOPS, ndev);
                if (!ent) {
-                       IRDA_WARNING("%s: failed to create proc entry\n",
-                                    __func__);
+                       net_warn_ratelimited("%s: failed to create proc entry\n",
+                                            __func__);
                } else {
                        proc_set_size(ent, 0);
                }
                idev->proc_entry = ent;
        }
-       IRDA_MESSAGE("%s: registered device %s\n", drivername, ndev->name);
+       net_info_ratelimited("%s: registered device %s\n",
+                            drivername, ndev->name);
 
        pci_set_drvdata(pdev, ndev);
        mutex_unlock(&idev->mtx);
        vlsi_irda_dev_t *idev;
 
        if (!ndev) {
-               IRDA_ERROR("%s: lost netdevice?\n", drivername);
+               net_err_ratelimited("%s: lost netdevice?\n", drivername);
                return;
        }
 
 
        free_netdev(ndev);
 
-       IRDA_MESSAGE("%s: %s removed\n", drivername, pci_name(pdev));
+       net_info_ratelimited("%s: %s removed\n", drivername, pci_name(pdev));
 }
 
 #ifdef CONFIG_PM
        vlsi_irda_dev_t *idev;
 
        if (!ndev) {
-               IRDA_ERROR("%s - %s: no netdevice\n",
-                          __func__, pci_name(pdev));
+               net_err_ratelimited("%s - %s: no netdevice\n",
+                                   __func__, pci_name(pdev));
                return 0;
        }
        idev = netdev_priv(ndev);
                        pdev->current_state = state.event;
                }
                else
-                       IRDA_ERROR("%s - %s: invalid suspend request %u -> %u\n", __func__, pci_name(pdev), pdev->current_state, state.event);
+                       net_err_ratelimited("%s - %s: invalid suspend request %u -> %u\n",
+                                           __func__, pci_name(pdev),
+                                           pdev->current_state, state.event);
                mutex_unlock(&idev->mtx);
                return 0;
        }
        vlsi_irda_dev_t *idev;
 
        if (!ndev) {
-               IRDA_ERROR("%s - %s: no netdevice\n",
-                          __func__, pci_name(pdev));
+               net_err_ratelimited("%s - %s: no netdevice\n",
+                                   __func__, pci_name(pdev));
                return 0;
        }
        idev = netdev_priv(ndev);
        mutex_lock(&idev->mtx);
        if (pdev->current_state == 0) {
                mutex_unlock(&idev->mtx);
-               IRDA_WARNING("%s - %s: already resumed\n",
-                            __func__, pci_name(pdev));
+               net_warn_ratelimited("%s - %s: already resumed\n",
+                                    __func__, pci_name(pdev));
                return 0;
        }
        
                 * now we explicitly set pdev->current_state = 0 after enabling the
                 * device and independently resume_ok should catch any garbage config.
                 */
-               IRDA_WARNING("%s - hm, nothing to resume?\n", __func__);
+               net_warn_ratelimited("%s - hm, nothing to resume?\n", __func__);
                mutex_unlock(&idev->mtx);
                return 0;
        }
        int     i, ret;
 
        if (clksrc < 0  ||  clksrc > 3) {
-               IRDA_ERROR("%s: invalid clksrc=%d\n", drivername, clksrc);
+               net_err_ratelimited("%s: invalid clksrc=%d\n",
+                                   drivername, clksrc);
                return -1;
        }
 
                        case 64:
                                break;
                        default:
-                               IRDA_WARNING("%s: invalid %s ringsize %d, using default=8", drivername, (i)?"rx":"tx", ringsize[i]);
+                               net_warn_ratelimited("%s: invalid %s ringsize %d, using default=8\n",
+                                                    drivername,
+                                                    i ? "rx" : "tx",
+                                                    ringsize[i]);
                                ringsize[i] = 8;
                                break;
                }
 
         */
 
        if ((a & ~DMA_MASK_MSTRPAGE)>>24 != MSTRPAGE_VALUE) {
-               IRDA_ERROR("%s: pci busaddr inconsistency!\n", __func__);
+               net_err_ratelimited("%s: pci busaddr inconsistency!\n",
+                                   __func__);
                dump_stack();
                return;
        }
 
 
        err = register_netdev(dev);
        if (err) {
-               IRDA_ERROR("%s(), register_netdevice() failed!\n", __func__);
+               net_err_ratelimited("%s(), register_netdevice() failed!\n",
+                                   __func__);
                goto err_out3;
        }
-       IRDA_MESSAGE("IrDA: Registered device %s\n", dev->name);
+       net_info_ratelimited("IrDA: Registered device %s\n", dev->name);
 
        /* Need to store self somewhere */
        dev_self[i] = self;
                        switch_bank(iobase, SET7);
                        outb(0x40, iobase+7);
                        
-                       IRDA_MESSAGE("W83977AF (IR) driver loaded. "
-                                    "Version: 0x%02x\n", version);
+                       net_info_ratelimited("W83977AF (IR) driver loaded. Version: 0x%02x\n",
+                                            version);
                        
                        return 0;
                } else {
 
 #define IRDA_ASSERT_LABEL(label)
 #endif /* CONFIG_IRDA_DEBUG */
 
-#define IRDA_ERROR             net_err_ratelimited
-#define IRDA_WARNING           net_warn_ratelimited
-#define IRDA_MESSAGE           net_info_ratelimited
-
 /*
  *  Magic numbers used by Linux-IrDA. Random numbers which must be unique to 
  *  give the best protection
 
        switch (sk->sk_type) {
        case SOCK_STREAM:
                if (max_sdu_size != 0) {
-                       IRDA_ERROR("%s: max_sdu_size must be 0\n",
-                                  __func__);
+                       net_err_ratelimited("%s: max_sdu_size must be 0\n",
+                                           __func__);
                        return;
                }
                self->max_data_size = irttp_get_max_seg_size(self->tsap);
                break;
        case SOCK_SEQPACKET:
                if (max_sdu_size == 0) {
-                       IRDA_ERROR("%s: max_sdu_size cannot be 0\n",
-                                  __func__);
+                       net_err_ratelimited("%s: max_sdu_size cannot be 0\n",
+                                           __func__);
                        return;
                }
                self->max_data_size = max_sdu_size;
        switch (sk->sk_type) {
        case SOCK_STREAM:
                if (max_sdu_size != 0) {
-                       IRDA_ERROR("%s: max_sdu_size must be 0\n",
-                                  __func__);
+                       net_err_ratelimited("%s: max_sdu_size must be 0\n",
+                                           __func__);
                        kfree_skb(skb);
                        return;
                }
                break;
        case SOCK_SEQPACKET:
                if (max_sdu_size == 0) {
-                       IRDA_ERROR("%s: max_sdu_size cannot be 0\n",
-                                  __func__);
+                       net_err_ratelimited("%s: max_sdu_size cannot be 0\n",
+                                           __func__);
                        kfree_skb(skb);
                        return;
                }
 
        self = priv;
        if (!self) {
-               IRDA_WARNING("%s: lost myself!\n", __func__);
+               net_warn_ratelimited("%s: lost myself!\n", __func__);
                return;
        }
 
 
        self = priv;
        if (!self) {
-               IRDA_WARNING("%s: lost myself!\n", __func__);
+               net_warn_ratelimited("%s: lost myself!\n", __func__);
                return;
        }
 
        notify_t notify;
 
        if (self->lsap) {
-               IRDA_WARNING("%s(), busy!\n", __func__);
+               net_warn_ratelimited("%s(), busy!\n", __func__);
                return -EBUSY;
        }
 
        IRDA_DEBUG(2, "%s(%p, %s)\n", __func__, self, name);
 
        if (self->iriap) {
-               IRDA_WARNING("%s(): busy with a previous query\n",
-                            __func__);
+               net_warn_ratelimited("%s(): busy with a previous query\n",
+                                    __func__);
                return -EBUSY;
        }
 
                                   __func__, opt);
                        self->max_sdu_size_rx = opt;
                } else {
-                       IRDA_WARNING("%s: not allowed to set MAXSDUSIZE for this socket type!\n",
-                                    __func__);
+                       net_warn_ratelimited("%s: not allowed to set MAXSDUSIZE for this socket type!\n",
+                                            __func__);
                        err = -ENOPROTOOPT;
                        goto out;
                }
 
                /* Check that we can proceed with IAP */
                if (self->iriap) {
-                       IRDA_WARNING("%s: busy with a previous query\n",
-                                    __func__);
+                       net_warn_ratelimited("%s: busy with a previous query\n",
+                                            __func__);
                        kfree(ias_opt);
                        err = -EBUSY;
                        goto out;
 
 {
        ircomm = hashbin_new(HB_LOCK);
        if (ircomm == NULL) {
-               IRDA_ERROR("%s(), can't allocate hashbin!\n", __func__);
+               net_err_ratelimited("%s(), can't allocate hashbin!\n",
+                                   __func__);
                return -ENOMEM;
        }
 
        }
 #endif /* CONFIG_PROC_FS */
 
-       IRDA_MESSAGE("IrCOMM protocol (Dag Brattli)\n");
+       net_info_ratelimited("IrCOMM protocol (Dag Brattli)\n");
 
        return 0;
 }
 
        }
        ret = irlmp_data_request(self->lsap, skb);
        if (ret) {
-               IRDA_ERROR("%s(), failed\n", __func__);
+               net_err_ratelimited("%s(), failed\n", __func__);
                /* irlmp_data_request already free the packet */
        }
 
 
        count = irda_param_insert(self, pi, skb_tail_pointer(skb),
                                  skb_tailroom(skb), &ircomm_param_info);
        if (count < 0) {
-               IRDA_WARNING("%s(), no room for parameter!\n", __func__);
+               net_warn_ratelimited("%s(), no room for parameter!\n",
+                                    __func__);
                spin_unlock_irqrestore(&self->spinlock, flags);
                return -1;
        }
 
 
        ret = irttp_data_request(self->tsap, skb);
        if (ret) {
-               IRDA_ERROR("%s(), failed\n", __func__);
+               net_err_ratelimited("%s(), failed\n", __func__);
                /* irttp_data_request already free the packet */
        }
 
        IRDA_ASSERT(qos != NULL, goto out;);
 
        if (max_sdu_size != TTP_SAR_DISABLE) {
-               IRDA_ERROR("%s(), SAR not allowed for IrCOMM!\n",
-                          __func__);
+               net_err_ratelimited("%s(), SAR not allowed for IrCOMM!\n",
+                                   __func__);
                goto out;
        }
 
        IRDA_ASSERT(qos != NULL, goto out;);
 
        if (max_sdu_size != TTP_SAR_DISABLE) {
-               IRDA_ERROR("%s(), SAR not allowed for IrCOMM!\n",
-                          __func__);
+               net_err_ratelimited("%s(), SAR not allowed for IrCOMM!\n",
+                                   __func__);
                goto out;
        }
 
 
                return -ENOMEM;
        ircomm_tty = hashbin_new(HB_LOCK);
        if (ircomm_tty == NULL) {
-               IRDA_ERROR("%s(), can't allocate hashbin!\n", __func__);
+               net_err_ratelimited("%s(), can't allocate hashbin!\n",
+                                   __func__);
                put_tty_driver(driver);
                return -ENOMEM;
        }
        driver->flags           = TTY_DRIVER_REAL_RAW;
        tty_set_operations(driver, &ops);
        if (tty_register_driver(driver)) {
-               IRDA_ERROR("%s(): Couldn't register serial driver\n",
-                          __func__);
+               net_err_ratelimited("%s(): Couldn't register serial driver\n",
+                                   __func__);
                put_tty_driver(driver);
                return -1;
        }
 
        ret = tty_unregister_driver(driver);
        if (ret) {
-               IRDA_ERROR("%s(), failed to unregister driver\n",
-                          __func__);
+               net_err_ratelimited("%s(), failed to unregister driver\n",
+                                   __func__);
                return;
        }
 
        /* Connect IrCOMM link with remote device */
        ret = ircomm_tty_attach_cable(self);
        if (ret < 0) {
-               IRDA_ERROR("%s(), error attaching cable!\n", __func__);
+               net_err_ratelimited("%s(), error attaching cable!\n", __func__);
                goto err;
        }
 
        if (!self) {
                /* No, so make new instance */
                self = kzalloc(sizeof(struct ircomm_tty_cb), GFP_KERNEL);
-               if (self == NULL) {
-                       IRDA_ERROR("%s(), kmalloc failed!\n", __func__);
+               if (self == NULL)
                        return -ENOMEM;
-               }
 
                tty_port_init(&self->port);
                self->port.ops = &ircomm_port_ops;
 
                if (wait_event_interruptible(self->port.close_wait,
                                !test_bit(ASYNCB_CLOSING, &self->port.flags))) {
-                       IRDA_WARNING("%s - got signal while blocking on ASYNC_CLOSING!\n",
-                                    __func__);
+                       net_warn_ratelimited("%s - got signal while blocking on ASYNC_CLOSING!\n",
+                                            __func__);
                        return -ERESTARTSYS;
                }
 
 
                self->saddr = info->saddr;
 
                if (self->iriap) {
-                       IRDA_WARNING("%s(), busy with a previous query\n",
-                                    __func__);
+                       net_warn_ratelimited("%s(), busy with a previous query\n",
+                                            __func__);
                        return -EBUSY;
                }
 
                self->saddr = info->saddr;
 
                if (self->iriap) {
-                       IRDA_WARNING("%s(), busy with a previous query\n",
-                                    __func__);
+                       net_warn_ratelimited("%s(), busy with a previous query\n",
+                                            __func__);
                        return -EBUSY;
                }
 
        switch (event) {
        case IRCOMM_TTY_GOT_PARAMETERS:
                if (self->iriap) {
-                       IRDA_WARNING("%s(), busy with a previous query\n",
-                                    __func__);
+                       net_warn_ratelimited("%s(), busy with a previous query\n",
+                                            __func__);
                        return -EBUSY;
                }
 
 
                self->settings.flow_control |= IRCOMM_RTS_CTS_IN;
                /* This got me. Bummer. Jean II */
                if (self->service_type == IRCOMM_3_WIRE_RAW)
-                       IRDA_WARNING("%s(), enabling RTS/CTS on link that doesn't support it (3-wire-raw)\n", __func__);
+                       net_warn_ratelimited("%s(), enabling RTS/CTS on link that doesn't support it (3-wire-raw)\n",
+                                            __func__);
        } else {
                self->port.flags &= ~ASYNC_CTS_FLOW;
                self->settings.flow_control &= ~IRCOMM_RTS_CTS_IN;
 
 {
        dongles = hashbin_new(HB_NOLOCK);
        if (dongles == NULL) {
-               IRDA_WARNING("IrDA: Can't allocate dongles hashbin!\n");
+               net_warn_ratelimited("IrDA: Can't allocate dongles hashbin!\n");
                return -ENOMEM;
        }
        spin_lock_init(&dongles->hb_spinlock);
 
        tasks = hashbin_new(HB_LOCK);
        if (tasks == NULL) {
-               IRDA_WARNING("IrDA: Can't allocate tasks hashbin!\n");
+               net_warn_ratelimited("IrDA: Can't allocate tasks hashbin!\n");
                hashbin_delete(dongles, NULL);
                return -ENOMEM;
        }
 static void leftover_dongle(void *arg)
 {
        struct dongle_reg *reg = arg;
-       IRDA_WARNING("IrDA: Dongle type %x not unregistered\n",
-                    reg->type);
+       net_warn_ratelimited("IrDA: Dongle type %x not unregistered\n",
+                            reg->type);
 }
 
 void irda_device_cleanup(void)
        IRDA_DEBUG(2, "%s()\n", __func__);
 
        if (!dev->netdev_ops->ndo_do_ioctl) {
-               IRDA_ERROR("%s: do_ioctl not impl. by device driver\n",
-                          __func__);
+               net_err_ratelimited("%s: do_ioctl not impl. by device driver\n",
+                                   __func__);
                return -1;
        }
 
        do {
                timeout = task->function(task);
                if (count++ > 100) {
-                       IRDA_ERROR("%s: error in task handler!\n",
-                                  __func__);
+                       net_err_ratelimited("%s: error in task handler!\n",
+                                           __func__);
                        irda_task_delete(task);
                        return TRUE;
                }
        } while ((timeout == 0) && (task->state != IRDA_TASK_DONE));
 
        if (timeout < 0) {
-               IRDA_ERROR("%s: Error executing task!\n", __func__);
+               net_err_ratelimited("%s: Error executing task!\n", __func__);
                irda_task_delete(task);
                return TRUE;
        }
 
        /* Object repository - defined in irias_object.c */
        irias_objects = hashbin_new(HB_LOCK);
        if (!irias_objects) {
-               IRDA_WARNING("%s: Can't allocate irias_objects hashbin!\n",
-                            __func__);
+               net_warn_ratelimited("%s: Can't allocate irias_objects hashbin!\n",
+                                    __func__);
                hashbin_delete(iriap, NULL);
                return -ENOMEM;
        }
        IRDA_DEBUG(2, "%s()\n", __func__);
 
        self = kzalloc(sizeof(*self), GFP_ATOMIC);
-       if (!self) {
-               IRDA_WARNING("%s: Unable to kmalloc!\n", __func__);
+       if (!self)
                return NULL;
-       }
 
        /*
         *  Initialize instance
 
        self->lsap = irlmp_open_lsap(slsap_sel, ¬ify, 0);
        if (self->lsap == NULL) {
-               IRDA_ERROR("%s: Unable to allocated LSAP!\n", __func__);
+               net_err_ratelimited("%s: Unable to allocated LSAP!\n",
+                                   __func__);
                return -1;
        }
        self->slsap_sel = self->lsap->slsap_sel;
        }
        opcode = frame[0];
        if (~opcode & IAP_LST) {
-               IRDA_WARNING("%s:, IrIAS multiframe commands or "
-                            "results is not implemented yet!\n",
-                            __func__);
+               net_warn_ratelimited("%s:, IrIAS multiframe commands or results is not implemented yet!\n",
+                                    __func__);
                goto out;
        }
 
 
        opcode = fp[0];
        if (~opcode & 0x80) {
-               IRDA_WARNING("%s: IrIAS multiframe commands or results "
-                            "is not implemented yet!\n", __func__);
+               net_warn_ratelimited("%s: IrIAS multiframe commands or results is not implemented yet!\n",
+                                    __func__);
                return;
        }
        opcode &= 0x7f; /* Mask away LST bit */
 
        switch (opcode) {
        case GET_INFO_BASE:
-               IRDA_WARNING("%s: GetInfoBaseDetails not implemented yet!\n",
-                            __func__);
+               net_warn_ratelimited("%s: GetInfoBaseDetails not implemented yet!\n",
+                                    __func__);
                break;
        case GET_VALUE_BY_CLASS:
                iriap_getvaluebyclass_indication(self, skb);
 
        switch (event) {
        case IAP_LM_CONNECT_INDICATION:
                tx_skb = alloc_skb(LMP_MAX_HEADER, GFP_ATOMIC);
-               if (tx_skb == NULL) {
-                       IRDA_WARNING("%s: unable to malloc!\n", __func__);
+               if (tx_skb == NULL)
                        return;
-               }
 
                /* Reserve space for MUX_CONTROL and LAP header */
                skb_reserve(tx_skb, LMP_MAX_HEADER);
 
 
        obj = kzalloc(sizeof(struct ias_object), GFP_ATOMIC);
        if (obj == NULL) {
-               IRDA_WARNING("%s(), Unable to allocate object!\n",
-                            __func__);
+               net_warn_ratelimited("%s(), Unable to allocate object!\n",
+                                    __func__);
                return NULL;
        }
 
        obj->magic = IAS_OBJECT_MAGIC;
        obj->name = kstrndup(name, IAS_MAX_CLASSNAME, GFP_ATOMIC);
        if (!obj->name) {
-               IRDA_WARNING("%s(), Unable to allocate name!\n",
-                            __func__);
+               net_warn_ratelimited("%s(), Unable to allocate name!\n",
+                                    __func__);
                kfree(obj);
                return NULL;
        }
        obj->attribs = hashbin_new(HB_LOCK);
 
        if (obj->attribs == NULL) {
-               IRDA_WARNING("%s(), Unable to allocate attribs!\n",
-                            __func__);
+               net_warn_ratelimited("%s(), Unable to allocate attribs!\n",
+                                    __func__);
                kfree(obj->name);
                kfree(obj);
                return NULL;
        /* Find object */
        obj = hashbin_lock_find(irias_objects, 0, obj_name);
        if (obj == NULL) {
-               IRDA_WARNING("%s: Unable to find object: %s\n", __func__,
-                            obj_name);
+               net_warn_ratelimited("%s: Unable to find object: %s\n",
+                                    __func__, obj_name);
                return -1;
        }
 
        /* Find attribute */
        attrib = hashbin_find(obj->attribs, 0, attrib_name);
        if (attrib == NULL) {
-               IRDA_WARNING("%s: Unable to find attribute: %s\n",
-                            __func__, attrib_name);
+               net_warn_ratelimited("%s: Unable to find attribute: %s\n",
+                                    __func__, attrib_name);
                spin_unlock_irqrestore(&obj->attribs->hb_spinlock, flags);
                return -1;
        }
 
        attrib = kzalloc(sizeof(struct ias_attrib), GFP_ATOMIC);
        if (attrib == NULL) {
-               IRDA_WARNING("%s: Unable to allocate attribute!\n",
-                            __func__);
+               net_warn_ratelimited("%s: Unable to allocate attribute!\n",
+                                    __func__);
                return;
        }
 
        /* Insert value */
        attrib->value = irias_new_integer_value(value);
        if (!attrib->name || !attrib->value) {
-               IRDA_WARNING("%s: Unable to allocate attribute!\n",
-                            __func__);
+               net_warn_ratelimited("%s: Unable to allocate attribute!\n",
+                                    __func__);
                if (attrib->value)
                        irias_delete_value(attrib->value);
                kfree(attrib->name);
 
        attrib = kzalloc(sizeof(struct ias_attrib), GFP_ATOMIC);
        if (attrib == NULL) {
-               IRDA_WARNING("%s: Unable to allocate attribute!\n",
-                            __func__);
+               net_warn_ratelimited("%s: Unable to allocate attribute!\n",
+                                    __func__);
                return;
        }
 
 
        attrib->value = irias_new_octseq_value( octets, len);
        if (!attrib->name || !attrib->value) {
-               IRDA_WARNING("%s: Unable to allocate attribute!\n",
-                            __func__);
+               net_warn_ratelimited("%s: Unable to allocate attribute!\n",
+                                    __func__);
                if (attrib->value)
                        irias_delete_value(attrib->value);
                kfree(attrib->name);
 
        attrib = kzalloc(sizeof( struct ias_attrib), GFP_ATOMIC);
        if (attrib == NULL) {
-               IRDA_WARNING("%s: Unable to allocate attribute!\n",
-                            __func__);
+               net_warn_ratelimited("%s: Unable to allocate attribute!\n",
+                                    __func__);
                return;
        }
 
 
        attrib->value = irias_new_string_value(value);
        if (!attrib->name || !attrib->value) {
-               IRDA_WARNING("%s: Unable to allocate attribute!\n",
-                            __func__);
+               net_warn_ratelimited("%s: Unable to allocate attribute!\n",
+                                    __func__);
                if (attrib->value)
                        irias_delete_value(attrib->value);
                kfree(attrib->name);
        struct ias_value *value;
 
        value = kzalloc(sizeof(struct ias_value), GFP_ATOMIC);
-       if (value == NULL) {
-               IRDA_WARNING("%s: Unable to kmalloc!\n", __func__);
+       if (value == NULL)
                return NULL;
-       }
 
        value->type = IAS_INTEGER;
        value->len = 4;
        struct ias_value *value;
 
        value = kzalloc(sizeof(struct ias_value), GFP_ATOMIC);
-       if (value == NULL) {
-               IRDA_WARNING("%s: Unable to kmalloc!\n", __func__);
+       if (value == NULL)
                return NULL;
-       }
 
        value->type = IAS_STRING;
        value->charset = CS_ASCII;
        value->t.string = kstrndup(string, IAS_MAX_STRING, GFP_ATOMIC);
        if (!value->t.string) {
-               IRDA_WARNING("%s: Unable to kmalloc!\n", __func__);
+               net_warn_ratelimited("%s: Unable to kmalloc!\n", __func__);
                kfree(value);
                return NULL;
        }
        struct ias_value *value;
 
        value = kzalloc(sizeof(struct ias_value), GFP_ATOMIC);
-       if (value == NULL) {
-               IRDA_WARNING("%s: Unable to kmalloc!\n", __func__);
+       if (value == NULL)
                return NULL;
-       }
 
        value->type = IAS_OCT_SEQ;
        /* Check length */
 
        value->t.oct_seq = kmemdup(octseq, len, GFP_ATOMIC);
        if (value->t.oct_seq == NULL){
-               IRDA_WARNING("%s: Unable to kmalloc!\n", __func__);
+               net_warn_ratelimited("%s: Unable to kmalloc!\n", __func__);
                kfree(value);
                return NULL;
        }
        struct ias_value *value;
 
        value = kzalloc(sizeof(struct ias_value), GFP_ATOMIC);
-       if (value == NULL) {
-               IRDA_WARNING("%s: Unable to kmalloc!\n", __func__);
+       if (value == NULL)
                return NULL;
-       }
 
        value->type = IAS_MISSING;
 
 
                printk(KERN_INFO "Success\n");
                break;
        case 1:
-               IRDA_WARNING("IrLAN: Insufficient resources\n");
+               net_warn_ratelimited("IrLAN: Insufficient resources\n");
                break;
        case 2:
-               IRDA_WARNING("IrLAN: Invalid command format\n");
+               net_warn_ratelimited("IrLAN: Invalid command format\n");
                break;
        case 3:
-               IRDA_WARNING("IrLAN: Command not supported\n");
+               net_warn_ratelimited("IrLAN: Command not supported\n");
                break;
        case 4:
-               IRDA_WARNING("IrLAN: Parameter not supported\n");
+               net_warn_ratelimited("IrLAN: Parameter not supported\n");
                break;
        case 5:
-               IRDA_WARNING("IrLAN: Value not supported\n");
+               net_warn_ratelimited("IrLAN: Value not supported\n");
                break;
        case 6:
-               IRDA_WARNING("IrLAN: Not open\n");
+               net_warn_ratelimited("IrLAN: Not open\n");
                break;
        case 7:
-               IRDA_WARNING("IrLAN: Authentication required\n");
+               net_warn_ratelimited("IrLAN: Authentication required\n");
                break;
        case 8:
-               IRDA_WARNING("IrLAN: Invalid password\n");
+               net_warn_ratelimited("IrLAN: Invalid password\n");
                break;
        case 9:
-               IRDA_WARNING("IrLAN: Protocol error\n");
+               net_warn_ratelimited("IrLAN: Protocol error\n");
                break;
        case 255:
-               IRDA_WARNING("IrLAN: Asynchronous status\n");
+               net_warn_ratelimited("IrLAN: Asynchronous status\n");
                break;
        }
 }
        IRDA_ASSERT(self->magic == IRLAN_MAGIC, return;);
 
        if (!skb) {
-               IRDA_ERROR("%s(), Got NULL skb!\n", __func__);
+               net_err_ratelimited("%s(), Got NULL skb!\n", __func__);
                return;
        }
        frame = skb->data;
 
        switch (event) {
        case IRLAN_DISCOVERY_INDICATION:
                if (self->client.iriap) {
-                       IRDA_WARNING("%s(), busy with a previous query\n",
-                                    __func__);
+                       net_warn_ratelimited("%s(), busy with a previous query\n",
+                                            __func__);
                        return -EBUSY;
                }
 
 
                IRDA_DEBUG(2, "%s(), IrLMP connect failed\n", __func__ );
                break;
        default:
-               IRDA_ERROR("%s(), Unknown disconnect reason\n", __func__);
+               net_err_ratelimited("%s(), Unknown disconnect reason\n",
+                                   __func__);
                break;
        }
 
 
 
        if (dev->flags & IFF_PROMISC) {
                /* Enable promiscuous mode */
-               IRDA_WARNING("Promiscuous mode not implemented by IrLAN!\n");
+               net_warn_ratelimited("Promiscuous mode not implemented by IrLAN!\n");
        } else if ((dev->flags & IFF_ALLMULTI) ||
                 netdev_mc_count(dev) > HW_MAX_ADDRS) {
                /* Disable promiscuous mode, use normal mode. */
 
        /* Allocate master array */
        irlap = hashbin_new(HB_LOCK);
        if (irlap == NULL) {
-               IRDA_ERROR("%s: can't allocate irlap hashbin!\n",
-                          __func__);
+               net_err_ratelimited("%s: can't allocate irlap hashbin!\n",
+                                   __func__);
                return -ENOMEM;
        }
 
                                                 reason, NULL);
                break;
        default:
-               IRDA_ERROR("%s: Unknown reason %d\n", __func__, reason);
+               net_err_ratelimited("%s: Unknown reason %d\n",
+                                   __func__, reason);
        }
 }
 
        self->discovery_log = hashbin_new(HB_NOLOCK);
 
        if (self->discovery_log == NULL) {
-               IRDA_WARNING("%s(), Unable to allocate discovery log!\n",
-                            __func__);
+               net_warn_ratelimited("%s(), Unable to allocate discovery log!\n",
+                                    __func__);
                return;
        }
 
 {
        switch (quality_of_link) {
        case STATUS_NO_ACTIVITY:
-               IRDA_MESSAGE("IrLAP, no activity on link!\n");
+               net_info_ratelimited("IrLAP, no activity on link!\n");
                break;
        case STATUS_NOISY:
-               IRDA_MESSAGE("IrLAP, noisy link!\n");
+               net_info_ratelimited("IrLAP, noisy link!\n");
                break;
        default:
                break;
 
                           info->discovery->data.daddr);
 
                if (!self->discovery_log) {
-                       IRDA_WARNING("%s: discovery log is gone! "
-                                    "maybe the discovery timeout has been set"
-                                    " too short?\n", __func__);
+                       net_warn_ratelimited("%s: discovery log is gone! maybe the discovery timeout has been set too short?\n",
+                                            __func__);
                        break;
                }
                hashbin_insert(self->discovery_log,
 
        IRDA_ASSERT(self->magic == LAP_MAGIC, return;);
 
        if (!pskb_may_pull(skb, sizeof(struct xid_frame))) {
-               IRDA_ERROR("%s: frame too short!\n", __func__);
+               net_err_ratelimited("%s: frame too short!\n", __func__);
                return;
        }
 
        }
 
        if ((discovery = kzalloc(sizeof(discovery_t), GFP_ATOMIC)) == NULL) {
-               IRDA_WARNING("%s: kmalloc failed!\n", __func__);
+               net_warn_ratelimited("%s: kmalloc failed!\n", __func__);
                return;
        }
 
        char *text;
 
        if (!pskb_may_pull(skb, sizeof(struct xid_frame))) {
-               IRDA_ERROR("%s: frame too short!\n", __func__);
+               net_err_ratelimited("%s: frame too short!\n", __func__);
                return;
        }
 
                /* Check if things are sane at this point... */
                if((discovery_info == NULL) ||
                   !pskb_may_pull(skb, 3)) {
-                       IRDA_ERROR("%s: discovery frame too short!\n",
-                                  __func__);
+                       net_err_ratelimited("%s: discovery frame too short!\n",
+                                           __func__);
                        return;
                }
 
                 *  We now have some discovery info to deliver!
                 */
                discovery = kzalloc(sizeof(discovery_t), GFP_ATOMIC);
-               if (!discovery) {
-                       IRDA_WARNING("%s: unable to malloc!\n", __func__);
+               if (!discovery)
                        return;
-               }
 
                discovery->data.daddr = info->daddr;
                discovery->data.saddr = self->saddr;
        IRDA_ASSERT(info != NULL, return;);
 
        if (!pskb_may_pull(skb, 4)) {
-               IRDA_ERROR("%s: frame too short!\n", __func__);
+               net_err_ratelimited("%s: frame too short!\n", __func__);
                return;
        }
 
        IRDA_DEBUG(2, "%s()\n", __func__);
 
        if (!pskb_may_pull(skb, sizeof(*frame))) {
-               IRDA_ERROR("%s: frame too short!\n", __func__);
+               net_err_ratelimited("%s: frame too short!\n", __func__);
                return;
        }
        frame = (struct test_frame *) skb->data;
         * share and non linear skbs. This should never happen, so
         * we don't need to be clever about it. Jean II */
        if ((skb = skb_share_check(skb, GFP_ATOMIC)) == NULL) {
-               IRDA_ERROR("%s: can't clone shared skb!\n", __func__);
+               net_err_ratelimited("%s: can't clone shared skb!\n", __func__);
                goto err;
        }
 
        /* Check if frame is large enough for parsing */
        if (!pskb_may_pull(skb, 2)) {
-               IRDA_ERROR("%s: frame too short!\n", __func__);
+               net_err_ratelimited("%s: frame too short!\n", __func__);
                goto err;
        }
 
                        irlap_recv_srej_frame(self, skb, &info, command);
                        break;
                default:
-                       IRDA_WARNING("%s: Unknown S-frame %02x received!\n",
-                               __func__, info.control);
+                       net_warn_ratelimited("%s: Unknown S-frame %02x received!\n",
+                                            __func__, info.control);
                        break;
                }
                goto out;
                irlap_recv_ui_frame(self, skb, &info);
                break;
        default:
-               IRDA_WARNING("%s: Unknown frame %02x received!\n",
-                               __func__, info.control);
+               net_warn_ratelimited("%s: Unknown frame %02x received!\n",
+                                    __func__, info.control);
                break;
        }
 out:
 
 
        /* Allocate new instance of a LSAP connection */
        self = kzalloc(sizeof(struct lsap_cb), GFP_ATOMIC);
-       if (self == NULL) {
-               IRDA_ERROR("%s: can't allocate memory\n", __func__);
+       if (self == NULL)
                return NULL;
-       }
 
        self->magic = LMP_LSAP_MAGIC;
        self->slsap_sel = slsap_sel;
         *  Allocate new instance of a LSAP connection
         */
        lap = kzalloc(sizeof(struct lap_cb), GFP_KERNEL);
-       if (lap == NULL) {
-               IRDA_ERROR("%s: unable to kmalloc\n", __func__);
+       if (lap == NULL)
                return;
-       }
 
        lap->irlap = irlap;
        lap->magic = LMP_LAP_MAGIC;
 #endif
        lap->lsaps = hashbin_new(HB_LOCK);
        if (lap->lsaps == NULL) {
-               IRDA_WARNING("%s(), unable to kmalloc lsaps\n", __func__);
+               net_warn_ratelimited("%s(), unable to kmalloc lsaps\n",
+                                    __func__);
                kfree(lap);
                return;
        }
 
        /* Make sure the value is sane */
        if ((nslots != 1) && (nslots != 6) && (nslots != 8) && (nslots != 16)){
-               IRDA_WARNING("%s: invalid value for number of slots!\n",
-                            __func__);
+               net_warn_ratelimited("%s: invalid value for number of slots!\n",
+                                    __func__);
                nslots = sysctl_discovery_slots = 8;
        }
 
 
                        /* Make sure we terminate the loop */
                        if (wrapped++) {
-                               IRDA_ERROR("%s: no more free LSAPs !\n",
-                                          __func__);
+                               net_err_ratelimited("%s: no more free LSAPs !\n",
+                                                   __func__);
                                return 0;
                        }
                }
 
                IRDA_DEBUG(4, "%s(), LM_CONNECT_REQUEST\n", __func__);
 
                if (self->conn_skb) {
-                       IRDA_WARNING("%s: busy with another request!\n",
-                                    __func__);
+                       net_warn_ratelimited("%s: busy with another request!\n",
+                                            __func__);
                        return -EBUSY;
                }
                /* Don't forget to refcount it (see irlmp_connect_request()) */
                break;
        case LM_CONNECT_INDICATION:
                if (self->conn_skb) {
-                       IRDA_WARNING("%s: busy with another request!\n",
-                                    __func__);
+                       net_warn_ratelimited("%s: busy with another request!\n",
+                                            __func__);
                        return -EBUSY;
                }
                /* Don't forget to refcount it (see irlap_driver_rcv()) */
 
 
        irttp->tsaps = hashbin_new(HB_LOCK);
        if (!irttp->tsaps) {
-               IRDA_ERROR("%s: can't allocate IrTTP hashbin!\n",
-                          __func__);
+               net_err_ratelimited("%s: can't allocate IrTTP hashbin!\n",
+                                   __func__);
                kfree(irttp);
                return -ENOMEM;
        }
        if (self->connected) {
                /* Check if disconnect is not pending */
                if (!test_bit(0, &self->disconnect_pend)) {
-                       IRDA_WARNING("%s: TSAP still connected!\n",
-                                    __func__);
+                       net_warn_ratelimited("%s: TSAP still connected!\n",
+                                            __func__);
                        irttp_disconnect_request(self, NULL, P_NORMAL);
                }
                self->close_pend = TRUE;
 
        /* Check that nothing bad happens */
        if (!self->connected) {
-               IRDA_WARNING("%s(), Not connected\n", __func__);
+               net_warn_ratelimited("%s(), Not connected\n", __func__);
                ret = -ENOTCONN;
                goto err;
        }
 
        if (skb->len > self->max_seg_size) {
-               IRDA_ERROR("%s(), UData is too large for IrLAP!\n", __func__);
+               net_err_ratelimited("%s(), UData is too large for IrLAP!\n",
+                                   __func__);
                ret = -EMSGSIZE;
                goto err;
        }
 
        /* Check that nothing bad happens */
        if (!self->connected) {
-               IRDA_WARNING("%s: Not connected\n", __func__);
+               net_warn_ratelimited("%s: Not connected\n", __func__);
                ret = -ENOTCONN;
                goto err;
        }
         *  inside an IrLAP frame
         */
        if ((self->tx_max_sdu_size == 0) && (skb->len > self->max_seg_size)) {
-               IRDA_ERROR("%s: SAR disabled, and data is too large for IrLAP!\n",
-                          __func__);
+               net_err_ratelimited("%s: SAR disabled, and data is too large for IrLAP!\n",
+                                   __func__);
                ret = -EMSGSIZE;
                goto err;
        }
        if ((self->tx_max_sdu_size != 0) &&
            (self->tx_max_sdu_size != TTP_SAR_UNBOUND) &&
            (skb->len > self->tx_max_sdu_size)) {
-               IRDA_ERROR("%s: SAR enabled, but data is larger than TxMaxSduSize!\n",
-                          __func__);
+               net_err_ratelimited("%s: SAR enabled, but data is larger than TxMaxSduSize!\n",
+                                   __func__);
                ret = -EMSGSIZE;
                goto err;
        }
 
                /* Any errors in the parameter list? */
                if (ret < 0) {
-                       IRDA_WARNING("%s: error extracting parameters\n",
-                                    __func__);
+                       net_warn_ratelimited("%s: error extracting parameters\n",
+                                            __func__);
                        dev_kfree_skb(skb);
 
                        /* Do not accept this connection attempt */
 
                /* Any errors in the parameter list? */
                if (ret < 0) {
-                       IRDA_WARNING("%s: error extracting parameters\n",
-                                    __func__);
+                       net_warn_ratelimited("%s: error extracting parameters\n",
+                                            __func__);
                        dev_kfree_skb(skb);
 
                        /* Do not accept this connection attempt */
 
        }
        /* Check if buffer is long enough for insertion */
        if (len < (2+p.pl)) {
-               IRDA_WARNING("%s: buffer too short for insertion!\n",
-                            __func__);
+               net_warn_ratelimited("%s: buffer too short for insertion!\n",
+                                    __func__);
                return -1;
        }
        IRDA_DEBUG(2, "%s(), pi=%#x, pl=%d, pi=%d\n", __func__,
 
                break;
        default:
-               IRDA_WARNING("%s: length %d not supported\n",
-                            __func__, p.pl);
+               net_warn_ratelimited("%s: length %d not supported\n",
+                                    __func__, p.pl);
                /* Skip parameter */
                return -1;
        }
 
        /* Check if buffer is long enough for parsing */
        if (len < (2+p.pl)) {
-               IRDA_WARNING("%s: buffer too short for parsing! "
-                            "Need %d bytes, but len is only %d\n",
-                            __func__, p.pl, len);
+               net_warn_ratelimited("%s: buffer too short for parsing! Need %d bytes, but len is only %d\n",
+                                    __func__, p.pl, len);
                return -1;
        }
 
         * PV_INTEGER means that the handler is flexible.
         */
        if (((type & PV_MASK) != PV_INTEGER) && ((type & PV_MASK) != p.pl)) {
-               IRDA_ERROR("%s: invalid parameter length! "
-                          "Expected %d bytes, but value had %d bytes!\n",
-                          __func__, type & PV_MASK, p.pl);
+               net_err_ratelimited("%s: invalid parameter length! Expected %d bytes, but value had %d bytes!\n",
+                                   __func__, type & PV_MASK, p.pl);
 
                /* Most parameters are bit/byte fields or little endian,
                 * so it's ok to only extract a subset of it (the subset
                        le32_to_cpus(&p.pv.i);
                break;
        default:
-               IRDA_WARNING("%s: length %d not supported\n",
-                            __func__, p.pl);
+               net_warn_ratelimited("%s: length %d not supported\n",
+                                    __func__, p.pl);
 
                /* Skip parameter */
                return p.pl+2;
 
        /* Check if buffer is long enough for parsing */
        if (len < (2+p.pl)) {
-               IRDA_WARNING("%s: buffer too short for parsing! "
-                            "Need %d bytes, but len is only %d\n",
-                            __func__, p.pl, len);
+               net_warn_ratelimited("%s: buffer too short for parsing! Need %d bytes, but len is only %d\n",
+                                    __func__, p.pl, len);
                return -1;
        }
 
 
        /* Check if buffer is long enough for parsing */
        if (len < (2+p.pl)) {
-               IRDA_WARNING("%s: buffer too short for parsing! "
-                            "Need %d bytes, but len is only %d\n",
-                            __func__, p.pl, len);
+               net_warn_ratelimited("%s: buffer too short for parsing! Need %d bytes, but len is only %d\n",
+                                    __func__, p.pl, len);
                return -1;
        }
 
 
        /*  Check if handler has been implemented */
        if (!pi_minor_info->func) {
-               IRDA_MESSAGE("%s: no handler for pi=%#x\n", __func__, pi);
+               net_info_ratelimited("%s: no handler for pi=%#x\n",
+                                    __func__, pi);
                /* Skip this parameter */
                return -1;
        }
 
        /*  Check if handler has been implemented */
        if (!pi_minor_info->func) {
-               IRDA_MESSAGE("%s: no handler for pi=%#x\n",
-                            __func__, buf[n]);
+               net_info_ratelimited("%s: no handler for pi=%#x\n",
+                                    __func__, buf[n]);
                /* Skip this parameter */
                return 2 + buf[n + 1]; /* Continue */
        }
 
         * able to check precisely what's going on. If a end user sees this,
         * it's very likely the peer. - Jean II */
        if (word == 0) {
-               IRDA_WARNING("%s(), Detected buggy peer, adjust null PV to 0x1!\n",
-                        __func__);
+               net_warn_ratelimited("%s(), Detected buggy peer, adjust null PV to 0x1!\n",
+                                    __func__);
                /* The only safe choice (we don't know the array size) */
                word = 0x1;
        }
        if (sysctl_min_tx_turn_time > qos->min_turn_time.value) {
                int i;
 
-               IRDA_WARNING("%s(), Detected buggy peer, adjust mtt to %dus!\n",
-                        __func__, sysctl_min_tx_turn_time);
+               net_warn_ratelimited("%s(), Detected buggy peer, adjust mtt to %dus!\n",
+                                    __func__, sysctl_min_tx_turn_time);
 
                /* We don't really need bits, but easier this way */
                i = value_highest_bit(sysctl_min_tx_turn_time, min_turn_times,
                        IRDA_DEBUG(2, "%s(), reducing data size to %d\n",
                                   __func__, qos->data_size.value);
                } else {
-                       IRDA_WARNING("%s(), nothing more we can do!\n",
-                                    __func__);
+                       net_warn_ratelimited("%s(), nothing more we can do!\n",
+                                            __func__);
                }
        }
 #endif /* CONFIG_IRDA_DYNAMIC_WINDOW */
 
                 *  transmitted after this point is 5.
                 */
                if(n >= (buffsize-5)) {
-                       IRDA_ERROR("%s(), tx buffer overflow (n=%d)\n",
-                                  __func__, n);
+                       net_err_ratelimited("%s(), tx buffer overflow (n=%d)\n",
+                                           __func__, n);
                        return n;
                }
 
                break;
 
        case LINK_ESCAPE:
-               IRDA_WARNING("%s: state not defined\n", __func__);
+               net_warn_ratelimited("%s: state not defined\n", __func__);
                break;
 
        case BEGIN_FRAME: