|
|
|
@ -255,24 +255,25 @@ void aa_free_profile_kref(struct kref *kref) |
|
|
|
|
/**
|
|
|
|
|
* aa_alloc_profile - allocate, initialize and return a new profile |
|
|
|
|
* @hname: name of the profile (NOT NULL) |
|
|
|
|
* @gfp: allocation type |
|
|
|
|
* |
|
|
|
|
* Returns: refcount profile or NULL on failure |
|
|
|
|
*/ |
|
|
|
|
struct aa_profile *aa_alloc_profile(const char *hname) |
|
|
|
|
struct aa_profile *aa_alloc_profile(const char *hname, gfp_t gfp) |
|
|
|
|
{ |
|
|
|
|
struct aa_profile *profile; |
|
|
|
|
|
|
|
|
|
/* freed by free_profile - usually through aa_put_profile */ |
|
|
|
|
profile = kzalloc(sizeof(*profile), GFP_KERNEL); |
|
|
|
|
profile = kzalloc(sizeof(*profile), gfp); |
|
|
|
|
if (!profile) |
|
|
|
|
return NULL; |
|
|
|
|
|
|
|
|
|
profile->proxy = kzalloc(sizeof(struct aa_proxy), GFP_KERNEL); |
|
|
|
|
profile->proxy = kzalloc(sizeof(struct aa_proxy), gfp); |
|
|
|
|
if (!profile->proxy) |
|
|
|
|
goto fail; |
|
|
|
|
kref_init(&profile->proxy->count); |
|
|
|
|
|
|
|
|
|
if (!aa_policy_init(&profile->base, NULL, hname, GFP_KERNEL)) |
|
|
|
|
if (!aa_policy_init(&profile->base, NULL, hname, gfp)) |
|
|
|
|
goto fail; |
|
|
|
|
kref_init(&profile->count); |
|
|
|
|
|
|
|
|
@ -312,7 +313,7 @@ struct aa_profile *aa_new_null_profile(struct aa_profile *parent, int hat) |
|
|
|
|
goto fail; |
|
|
|
|
sprintf(name, "%s//null-%x", parent->base.hname, uniq); |
|
|
|
|
|
|
|
|
|
profile = aa_alloc_profile(name); |
|
|
|
|
profile = aa_alloc_profile(name, GFP_KERNEL); |
|
|
|
|
kfree(name); |
|
|
|
|
if (!profile) |
|
|
|
|
goto fail; |
|
|
|
|