/* handle the interrupt(s) */
                sdma_engine_interrupt(sde, status);
        } else {
-               dd_dev_err(dd, "SDMA engine %u interrupt, but no status bits set\n",
-                          sde->this_idx);
+               dd_dev_err_ratelimited(dd, "SDMA engine %u interrupt, but no status bits set\n",
+                                      sde->this_idx);
        }
        return IRQ_HANDLED;
 }
 
 #define dd_dev_emerg(dd, fmt, ...) \
        dev_emerg(&(dd)->pcidev->dev, "%s: " fmt, \
                  get_unit_name((dd)->unit), ##__VA_ARGS__)
+
 #define dd_dev_err(dd, fmt, ...) \
        dev_err(&(dd)->pcidev->dev, "%s: " fmt, \
                        get_unit_name((dd)->unit), ##__VA_ARGS__)
+
+#define dd_dev_err_ratelimited(dd, fmt, ...) \
+       dev_err_ratelimited(&(dd)->pcidev->dev, "%s: " fmt, \
+                       get_unit_name((dd)->unit), ##__VA_ARGS__)
+
 #define dd_dev_warn(dd, fmt, ...) \
        dev_warn(&(dd)->pcidev->dev, "%s: " fmt, \
                        get_unit_name((dd)->unit), ##__VA_ARGS__)