Skip to content

Commit

Permalink
IPVS: ip_vs_{un,}bind_scheduler NULL arguments
Browse files Browse the repository at this point in the history
In general NULL arguments aren't passed by the few callers that exist,
so don't test for them.

The exception is to make passing NULL to ip_vs_unbind_scheduler() a noop.

Signed-off-by: Simon Horman <horms@verge.net.au>
Acked-by: Julian Anastasov <ja@ssi.bg>
  • Loading branch information
Simon Horman committed Oct 4, 2010
1 parent 6e08bfb commit 2fabf35
Show file tree
Hide file tree
Showing 2 changed files with 4 additions and 22 deletions.
3 changes: 1 addition & 2 deletions net/netfilter/ipvs/ip_vs_ctl.c
Original file line number Diff line number Diff line change
Expand Up @@ -1206,8 +1206,7 @@ ip_vs_add_service(struct ip_vs_service_user_kern *u,

out_err:
if (svc != NULL) {
if (svc->scheduler)
ip_vs_unbind_scheduler(svc);
ip_vs_unbind_scheduler(svc);
if (svc->inc) {
local_bh_disable();
ip_vs_app_inc_put(svc->inc);
Expand Down
23 changes: 3 additions & 20 deletions net/netfilter/ipvs/ip_vs_sched.c
Original file line number Diff line number Diff line change
Expand Up @@ -46,15 +46,6 @@ int ip_vs_bind_scheduler(struct ip_vs_service *svc,
{
int ret;

if (svc == NULL) {
pr_err("%s(): svc arg NULL\n", __func__);
return -EINVAL;
}
if (scheduler == NULL) {
pr_err("%s(): scheduler arg NULL\n", __func__);
return -EINVAL;
}

svc->scheduler = scheduler;

if (scheduler->init_service) {
Expand All @@ -74,18 +65,10 @@ int ip_vs_bind_scheduler(struct ip_vs_service *svc,
*/
int ip_vs_unbind_scheduler(struct ip_vs_service *svc)
{
struct ip_vs_scheduler *sched;
struct ip_vs_scheduler *sched = svc->scheduler;

if (svc == NULL) {
pr_err("%s(): svc arg NULL\n", __func__);
return -EINVAL;
}

sched = svc->scheduler;
if (sched == NULL) {
pr_err("%s(): svc isn't bound\n", __func__);
return -EINVAL;
}
if (!sched)
return 0;

if (sched->done_service) {
if (sched->done_service(svc) != 0) {
Expand Down

0 comments on commit 2fabf35

Please sign in to comment.