dma-debug: add add checking for map/unmap_sg
[safe/jmp/linux-2.6] / lib / dynamic_printk.c
index d640f87..165a197 100644 (file)
@@ -135,7 +135,7 @@ int unregister_dynamic_debug_module(char *mod_name)
        nr_entries--;
 out:
        up(&debug_list_mutex);
-       return 0;
+       return ret;
 }
 EXPORT_SYMBOL_GPL(unregister_dynamic_debug_module);
 
@@ -277,40 +277,34 @@ static ssize_t pr_debug_write(struct file *file, const char __user *buf,
                                dynamic_enabled = DYNAMIC_ENABLED_NONE;
                        }
                        err = 0;
-               } else {
-                       if (elem) {
-                               if (value && (elem->enable == 0)) {
-                                       dynamic_printk_enabled |=
-                                                       (1LL << elem->hash1);
-                                       dynamic_printk_enabled2 |=
-                                                       (1LL << elem->hash2);
-                                       elem->enable = 1;
-                                       num_enabled++;
-                                       dynamic_enabled = DYNAMIC_ENABLED_SOME;
-                                       err = 0;
-                                       printk(KERN_DEBUG
-                                              "debugging enabled for module %s",
-                                              elem->name);
-                               } else if (!value && (elem->enable == 1)) {
-                                       elem->enable = 0;
-                                       num_enabled--;
-                                       if (disabled_hash(elem->hash1, true))
-                                               dynamic_printk_enabled &=
+               } else if (elem) {
+                       if (value && (elem->enable == 0)) {
+                               dynamic_printk_enabled |= (1LL << elem->hash1);
+                               dynamic_printk_enabled2 |= (1LL << elem->hash2);
+                               elem->enable = 1;
+                               num_enabled++;
+                               dynamic_enabled = DYNAMIC_ENABLED_SOME;
+                               err = 0;
+                               printk(KERN_DEBUG
+                                       "debugging enabled for module %s\n",
+                                       elem->name);
+                       } else if (!value && (elem->enable == 1)) {
+                               elem->enable = 0;
+                               num_enabled--;
+                               if (disabled_hash(elem->hash1, true))
+                                       dynamic_printk_enabled &=
                                                        ~(1LL << elem->hash1);
-                                       if (disabled_hash(elem->hash2, false))
-                                               dynamic_printk_enabled2 &=
+                               if (disabled_hash(elem->hash2, false))
+                                       dynamic_printk_enabled2 &=
                                                        ~(1LL << elem->hash2);
-                                       if (num_enabled)
-                                               dynamic_enabled =
-                                                       DYNAMIC_ENABLED_SOME;
-                                       else
-                                               dynamic_enabled =
-                                                       DYNAMIC_ENABLED_NONE;
-                                       err = 0;
-                                       printk(KERN_DEBUG
-                                              "debugging disabled for module "
-                                              "%s", elem->name);
-                               }
+                               if (num_enabled)
+                                       dynamic_enabled = DYNAMIC_ENABLED_SOME;
+                               else
+                                       dynamic_enabled = DYNAMIC_ENABLED_NONE;
+                               err = 0;
+                               printk(KERN_DEBUG
+                                       "debugging disabled for module %s\n",
+                                       elem->name);
                        }
                }
        }
@@ -402,6 +396,8 @@ static int __init dynamic_printk_init(void)
                                iter->logical_modname,
                                iter->flag_names, iter->hash, iter->hash2);
        }
+       if (dynamic_enabled == DYNAMIC_ENABLED_ALL)
+               set_all(true);
        return 0;
 }
 module_init(dynamic_printk_init);
@@ -411,7 +407,7 @@ static int __init dynamic_printk_setup(char *str)
 {
        if (str)
                return -ENOENT;
-       set_all(true);
+       dynamic_enabled = DYNAMIC_ENABLED_ALL;
        return 0;
 }
 /* Use early_param(), so we can get debug output as early as possible */