Messages in this thread | | | Date | Thu, 22 Mar 2012 07:58:36 +0800 | From | Wanlong Gao <> | Subject | Re: [PATCH 2/2] selinux:avc:remove the useless fields in avc_add_callback |
| |
Any comments?
> avc_add_callback now just used for registering reset functions > in initcalls, and the callback functions just did reset operations. > So, reducing the arguments to only one event is enough now. > > Signed-off-by: Wanlong Gao <gaowanlong@cn.fujitsu.com> > --- > security/selinux/avc.c | 32 ++++++-------------------------- > security/selinux/include/avc.h | 6 +----- > security/selinux/netif.c | 6 ++---- > security/selinux/netnode.c | 6 ++---- > security/selinux/netport.c | 6 ++---- > security/selinux/ss/services.c | 6 ++---- > 6 files changed, 15 insertions(+), 47 deletions(-) > > diff --git a/security/selinux/avc.c b/security/selinux/avc.c > index c301679..fc8acaa 100644 > --- a/security/selinux/avc.c > +++ b/security/selinux/avc.c > @@ -65,14 +65,8 @@ struct avc_cache { > }; > > struct avc_callback_node { > - int (*callback) (u32 event, u32 ssid, u32 tsid, > - u16 tclass, u32 perms, > - u32 *out_retained); > + int (*callback) (u32 event); > u32 events; > - u32 ssid; > - u32 tsid; > - u16 tclass; > - u32 perms; > struct avc_callback_node *next; > }; > > @@ -546,22 +540,12 @@ int avc_audit(u32 ssid, u32 tsid, > * avc_add_callback - Register a callback for security events. > * @callback: callback function > * @events: security events > - * @ssid: source security identifier or %SECSID_WILD > - * @tsid: target security identifier or %SECSID_WILD > - * @tclass: target security class > - * @perms: permissions > * > - * Register a callback function for events in the set @events > - * related to the SID pair (@ssid, @tsid) > - * and the permissions @perms, interpreting > - * @perms based on @tclass. Returns %0 on success or > - * -%ENOMEM if insufficient memory exists to add the callback. > + * Register a callback function for events in the set @events. > + * Returns %0 on success or -%ENOMEM if insufficient memory > + * exists to add the callback. > */ > -int __init avc_add_callback(int (*callback)(u32 event, u32 ssid, u32 tsid, > - u16 tclass, u32 perms, > - u32 *out_retained), > - u32 events, u32 ssid, u32 tsid, > - u16 tclass, u32 perms) > +int __init avc_add_callback(int (*callback)(u32 event), u32 events) > { > struct avc_callback_node *c; > int rc = 0; > @@ -574,9 +558,6 @@ int __init avc_add_callback(int (*callback)(u32 event, u32 ssid, u32 tsid, > > c->callback = callback; > c->events = events; > - c->ssid = ssid; > - c->tsid = tsid; > - c->perms = perms; > c->next = avc_callbacks; > avc_callbacks = c; > out: > @@ -716,8 +697,7 @@ int avc_ss_reset(u32 seqno) > > for (c = avc_callbacks; c; c = c->next) { > if (c->events & AVC_CALLBACK_RESET) { > - tmprc = c->callback(AVC_CALLBACK_RESET, > - 0, 0, 0, 0, NULL); > + tmprc = c->callback(AVC_CALLBACK_RESET); > /* save the first error encountered for the return > value and continue processing the callbacks */ > if (!rc) > diff --git a/security/selinux/include/avc.h b/security/selinux/include/avc.h > index 47fda96..0ac5c26 100644 > --- a/security/selinux/include/avc.h > +++ b/security/selinux/include/avc.h > @@ -88,11 +88,7 @@ u32 avc_policy_seqno(void); > #define AVC_CALLBACK_AUDITDENY_ENABLE 64 > #define AVC_CALLBACK_AUDITDENY_DISABLE 128 > > -int avc_add_callback(int (*callback)(u32 event, u32 ssid, u32 tsid, > - u16 tclass, u32 perms, > - u32 *out_retained), > - u32 events, u32 ssid, u32 tsid, > - u16 tclass, u32 perms); > +int avc_add_callback(int (*callback)(u32 event), u32 events); > > /* Exported to selinuxfs */ > int avc_get_hash_stats(char *page); > diff --git a/security/selinux/netif.c b/security/selinux/netif.c > index 326f22c..47a49d1 100644 > --- a/security/selinux/netif.c > +++ b/security/selinux/netif.c > @@ -252,8 +252,7 @@ static void sel_netif_flush(void) > spin_unlock_bh(&sel_netif_lock); > } > > -static int sel_netif_avc_callback(u32 event, u32 ssid, u32 tsid, > - u16 class, u32 perms, u32 *retained) > +static int sel_netif_avc_callback(u32 event) > { > if (event == AVC_CALLBACK_RESET) { > sel_netif_flush(); > @@ -292,8 +291,7 @@ static __init int sel_netif_init(void) > > register_netdevice_notifier(&sel_netif_netdev_notifier); > > - err = avc_add_callback(sel_netif_avc_callback, AVC_CALLBACK_RESET, > - SECSID_NULL, SECSID_NULL, SECCLASS_NULL, 0); > + err = avc_add_callback(sel_netif_avc_callback, AVC_CALLBACK_RESET); > if (err) > panic("avc_add_callback() failed, error %d\n", err); > > diff --git a/security/selinux/netnode.c b/security/selinux/netnode.c > index 8636585..28f911c 100644 > --- a/security/selinux/netnode.c > +++ b/security/selinux/netnode.c > @@ -297,8 +297,7 @@ static void sel_netnode_flush(void) > spin_unlock_bh(&sel_netnode_lock); > } > > -static int sel_netnode_avc_callback(u32 event, u32 ssid, u32 tsid, > - u16 class, u32 perms, u32 *retained) > +static int sel_netnode_avc_callback(u32 event) > { > if (event == AVC_CALLBACK_RESET) { > sel_netnode_flush(); > @@ -320,8 +319,7 @@ static __init int sel_netnode_init(void) > sel_netnode_hash[iter].size = 0; > } > > - ret = avc_add_callback(sel_netnode_avc_callback, AVC_CALLBACK_RESET, > - SECSID_NULL, SECSID_NULL, SECCLASS_NULL, 0); > + ret = avc_add_callback(sel_netnode_avc_callback, AVC_CALLBACK_RESET); > if (ret != 0) > panic("avc_add_callback() failed, error %d\n", ret); > > diff --git a/security/selinux/netport.c b/security/selinux/netport.c > index 7b9eb1f..d353797 100644 > --- a/security/selinux/netport.c > +++ b/security/selinux/netport.c > @@ -234,8 +234,7 @@ static void sel_netport_flush(void) > spin_unlock_bh(&sel_netport_lock); > } > > -static int sel_netport_avc_callback(u32 event, u32 ssid, u32 tsid, > - u16 class, u32 perms, u32 *retained) > +static int sel_netport_avc_callback(u32 event) > { > if (event == AVC_CALLBACK_RESET) { > sel_netport_flush(); > @@ -257,8 +256,7 @@ static __init int sel_netport_init(void) > sel_netport_hash[iter].size = 0; > } > > - ret = avc_add_callback(sel_netport_avc_callback, AVC_CALLBACK_RESET, > - SECSID_NULL, SECSID_NULL, SECCLASS_NULL, 0); > + ret = avc_add_callback(sel_netport_avc_callback, AVC_CALLBACK_RESET); > if (ret != 0) > panic("avc_add_callback() failed, error %d\n", ret); > > diff --git a/security/selinux/ss/services.c b/security/selinux/ss/services.c > index 185f849..08123cd 100644 > --- a/security/selinux/ss/services.c > +++ b/security/selinux/ss/services.c > @@ -3018,8 +3018,7 @@ out: > > static int (*aurule_callback)(void) = audit_update_lsm_rules; > > -static int aurule_avc_callback(u32 event, u32 ssid, u32 tsid, > - u16 class, u32 perms, u32 *retained) > +static int aurule_avc_callback(u32 event) > { > int err = 0; > > @@ -3032,8 +3031,7 @@ static int __init aurule_init(void) > { > int err; > > - err = avc_add_callback(aurule_avc_callback, AVC_CALLBACK_RESET, > - SECSID_NULL, SECSID_NULL, SECCLASS_NULL, 0); > + err = avc_add_callback(aurule_avc_callback, AVC_CALLBACK_RESET); > if (err) > panic("avc_add_callback() failed, error %d\n", err); >
| |