FAIL("procDirRoot cannot be NULL!", 0);
        if (name == NULL || name[0] == NULL)
                FAIL("name must contain at least 1 node name!", 0);
-       type = kmalloc(sizeof(MYPROCTYPE), GFP_KERNEL|__GFP_NORETRY);
+       type = kzalloc(sizeof(MYPROCTYPE), GFP_KERNEL | __GFP_NORETRY);
        if (type == NULL)
                FAIL("out of memory", 0);
-       memset(type, 0, sizeof(MYPROCTYPE));
        type->name = name;
        type->propertyNames = propertyNames;
        type->nProperties = 0;
                        type->nProperties++;
        while (type->name[type->nNames] != NULL)
                type->nNames++;
-       type->procDirs = kmalloc((type->nNames+1)*
+       type->procDirs = kzalloc((type->nNames + 1) *
                                 sizeof(struct proc_dir_entry *),
-                                GFP_KERNEL|__GFP_NORETRY);
+                                GFP_KERNEL | __GFP_NORETRY);
        if (type->procDirs == NULL)
                FAIL("out of memory", 0);
-       memset(type->procDirs, 0, (type->nNames + 1) *
-              sizeof(struct proc_dir_entry *));
        parent = procDirRoot;
        for (i = 0; i < type->nNames; i++) {
                type->procDirs[i] = createProcDir(type->name[i], parent);
 
        if (type == NULL)
                FAIL("type cannot be NULL", 0);
-       obj = kmalloc(sizeof(MYPROCOBJECT), GFP_KERNEL | __GFP_NORETRY);
+       obj = kzalloc(sizeof(MYPROCOBJECT), GFP_KERNEL | __GFP_NORETRY);
        if (obj == NULL)
                FAIL("out of memory", 0);
-       memset(obj, 0, sizeof(MYPROCOBJECT));
        obj->type = type;
        obj->context = context;
        if (name == NULL) {
                        RETPTR(NULL);
        }
        obj->procDirPropertyContexts =
-               kmalloc((type->nProperties+1)*sizeof(PROCDIRENTRYCONTEXT),
-                       GFP_KERNEL|__GFP_NORETRY);
+               kzalloc((type->nProperties + 1) * sizeof(PROCDIRENTRYCONTEXT),
+                       GFP_KERNEL | __GFP_NORETRY);
        if (obj->procDirPropertyContexts == NULL)
                FAIL("out of memory", 0);
-       memset(obj->procDirPropertyContexts, 0,
-              (type->nProperties+1)*sizeof(PROCDIRENTRYCONTEXT));
        obj->procDirProperties =
-               kmalloc((type->nProperties+1) * sizeof(struct proc_dir_entry *),
-                       GFP_KERNEL|__GFP_NORETRY);
+               kzalloc((type->nProperties + 1) * sizeof(struct proc_dir_entry *),
+                       GFP_KERNEL | __GFP_NORETRY);
        if (obj->procDirProperties == NULL)
                FAIL("out of memory", 0);
-       memset(obj->procDirProperties, 0,
-              (type->nProperties+1) * sizeof(struct proc_dir_entry *));
        for (i = 0; i < type->nProperties; i++) {
                obj->procDirPropertyContexts[i].procObject = obj;
                obj->procDirPropertyContexts[i].propertyIndex = i;