From: Jesse Gross Date: Mon, 13 Dec 2010 23:21:28 +0000 (-0800) Subject: datapath: Correctly return error if percpu allocation fails. X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=94947cd83a796c4bf5a77fdf488662d0a0681c18;p=openvswitch datapath: Correctly return error if percpu allocation fails. If the allocation of percpu stats fails when creating a new datapath, we currently don't return the correct error code. Since we don't explicitly set it when the allocation fails it will keep the value from the previous call. This means we will return success when the creation actually failed. Signed-off-by: Jesse Gross Acked-by: Ben Pfaff --- diff --git a/datapath/datapath.c b/datapath/datapath.c index 0205fd26..fded95ce 100644 --- a/datapath/datapath.c +++ b/datapath/datapath.c @@ -270,8 +270,10 @@ static int create_dp(int dp_idx, const char __user *devnamep) dp->drop_frags = 0; dp->stats_percpu = alloc_percpu(struct dp_stats_percpu); - if (!dp->stats_percpu) + if (!dp->stats_percpu) { + err = -ENOMEM; goto err_destroy_local_port; + } rcu_assign_pointer(dps[dp_idx], dp); dp_sysfs_add_dp(dp);