u8 *d, _d;
 
                        if (!offset_valid(skb, hoffset + tkey->at)) {
-                               pr_info("tc action pedit 'at' offset %d out of bounds\n",
-                                       hoffset + tkey->at);
+                               pr_info_ratelimited("tc action pedit 'at' offset %d out of bounds\n",
+                                                   hoffset + tkey->at);
                                goto bad;
                        }
                        d = skb_header_pointer(skb, hoffset + tkey->at,
 
                        offset += (*d & tkey->offmask) >> tkey->shift;
                        if (offset % 4) {
-                               pr_info("tc action pedit offset must be on 32 bit boundaries\n");
+                               pr_info_ratelimited("tc action pedit offset must be on 32 bit boundaries\n");
                                goto bad;
                        }
                }
 
                if (!offset_valid(skb, hoffset + offset)) {
-                       pr_info("tc action pedit offset %d out of bounds\n",
-                               hoffset + offset);
+                       pr_info_ratelimited("tc action pedit offset %d out of bounds\n", hoffset + offset);
                        goto bad;
                }
 
                        val = (*ptr + tkey->val) & ~tkey->mask;
                        break;
                default:
-                       pr_info("tc action pedit bad command (%d)\n",
-                               cmd);
+                       pr_info_ratelimited("tc action pedit bad command (%d)\n", cmd);
                        goto bad;
                }