author | Rich Burridge <rich.burridge@oracle.com> |
Thu, 10 Dec 2015 12:35:02 -0800 | |
changeset 5179 | 07d5ad88cb1d |
parent 5090 | 5f131162e136 |
child 5730 | cca4aa297e68 |
permissions | -rw-r--r-- |
5090
5f131162e136
PSARC/2015/311 Open vSwitch (OVS)
Mark Haywood <Mark.Haywood@Oracle.COM>
parents:
diff
changeset
|
1 |
This patch fixes a bug in ovsthread_key_destruct__. |
5f131162e136
PSARC/2015/311 Open vSwitch (OVS)
Mark Haywood <Mark.Haywood@Oracle.COM>
parents:
diff
changeset
|
2 |
|
5f131162e136
PSARC/2015/311 Open vSwitch (OVS)
Mark Haywood <Mark.Haywood@Oracle.COM>
parents:
diff
changeset
|
3 |
This patch has not been proposed upstream but will be proposed for 2.4. |
5f131162e136
PSARC/2015/311 Open vSwitch (OVS)
Mark Haywood <Mark.Haywood@Oracle.COM>
parents:
diff
changeset
|
4 |
|
5f131162e136
PSARC/2015/311 Open vSwitch (OVS)
Mark Haywood <Mark.Haywood@Oracle.COM>
parents:
diff
changeset
|
5 |
diff --git a/lib/ovs-thread.c b/lib/ovs-thread.c |
5f131162e136
PSARC/2015/311 Open vSwitch (OVS)
Mark Haywood <Mark.Haywood@Oracle.COM>
parents:
diff
changeset
|
6 |
index 529756f..11735f9 100644 |
5f131162e136
PSARC/2015/311 Open vSwitch (OVS)
Mark Haywood <Mark.Haywood@Oracle.COM>
parents:
diff
changeset
|
7 |
--- a/lib/ovs-thread.c |
5f131162e136
PSARC/2015/311 Open vSwitch (OVS)
Mark Haywood <Mark.Haywood@Oracle.COM>
parents:
diff
changeset
|
8 |
+++ b/lib/ovs-thread.c |
5f131162e136
PSARC/2015/311 Open vSwitch (OVS)
Mark Haywood <Mark.Haywood@Oracle.COM>
parents:
diff
changeset
|
9 |
@@ -641,8 +641,10 @@ ovsthread_key_destruct__(void *slots_) |
5f131162e136
PSARC/2015/311 Open vSwitch (OVS)
Mark Haywood <Mark.Haywood@Oracle.COM>
parents:
diff
changeset
|
10 |
n = n_keys; |
5f131162e136
PSARC/2015/311 Open vSwitch (OVS)
Mark Haywood <Mark.Haywood@Oracle.COM>
parents:
diff
changeset
|
11 |
ovs_mutex_unlock(&key_mutex); |
5f131162e136
PSARC/2015/311 Open vSwitch (OVS)
Mark Haywood <Mark.Haywood@Oracle.COM>
parents:
diff
changeset
|
12 |
|
5f131162e136
PSARC/2015/311 Open vSwitch (OVS)
Mark Haywood <Mark.Haywood@Oracle.COM>
parents:
diff
changeset
|
13 |
- for (i = 0; i < n / L2_SIZE; i++) { |
5f131162e136
PSARC/2015/311 Open vSwitch (OVS)
Mark Haywood <Mark.Haywood@Oracle.COM>
parents:
diff
changeset
|
14 |
- free(slots->p1[i]); |
5f131162e136
PSARC/2015/311 Open vSwitch (OVS)
Mark Haywood <Mark.Haywood@Oracle.COM>
parents:
diff
changeset
|
15 |
+ if (n > 0) { |
5f131162e136
PSARC/2015/311 Open vSwitch (OVS)
Mark Haywood <Mark.Haywood@Oracle.COM>
parents:
diff
changeset
|
16 |
+ for (i = 0; i <= (n - 1) / L2_SIZE; i++) { |
5f131162e136
PSARC/2015/311 Open vSwitch (OVS)
Mark Haywood <Mark.Haywood@Oracle.COM>
parents:
diff
changeset
|
17 |
+ free(slots->p1[i]); |
5f131162e136
PSARC/2015/311 Open vSwitch (OVS)
Mark Haywood <Mark.Haywood@Oracle.COM>
parents:
diff
changeset
|
18 |
+ } |
5f131162e136
PSARC/2015/311 Open vSwitch (OVS)
Mark Haywood <Mark.Haywood@Oracle.COM>
parents:
diff
changeset
|
19 |
} |
5f131162e136
PSARC/2015/311 Open vSwitch (OVS)
Mark Haywood <Mark.Haywood@Oracle.COM>
parents:
diff
changeset
|
20 |
free(slots); |
5f131162e136
PSARC/2015/311 Open vSwitch (OVS)
Mark Haywood <Mark.Haywood@Oracle.COM>
parents:
diff
changeset
|
21 |
} |