diff
 error:
+    if (new_coalesce.rules) {
         for (i = 0; i < new_coalesce.n_rules; i++) {
             tmp_rule = &new_coalesce.rules[i];
             for (j = 0; j < tmp_rule->n_patterns; j++)
                 kfree(tmp_rule->patterns[j].mask);
             kfree(tmp_rule->patterns);
         }
         kfree(new_coalesce.rules);
+    }
