hc
2024-10-22 8ac6c7a54ed1b98d142dce24b11c6de6a1e239a5
kernel/net/netlabel/netlabel_unlabeled.c
....@@ -1,3 +1,4 @@
1
+// SPDX-License-Identifier: GPL-2.0-or-later
12 /*
23 * NetLabel Unlabeled Support
34 *
....@@ -6,25 +7,10 @@
67 * mappings for network protocols such as CIPSO and RIPSO.
78 *
89 * Author: Paul Moore <paul@paul-moore.com>
9
- *
1010 */
1111
1212 /*
1313 * (c) Copyright Hewlett-Packard Development Company, L.P., 2006 - 2008
14
- *
15
- * This program is free software; you can redistribute it and/or modify
16
- * it under the terms of the GNU General Public License as published by
17
- * the Free Software Foundation; either version 2 of the License, or
18
- * (at your option) any later version.
19
- *
20
- * This program is distributed in the hope that it will be useful,
21
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
22
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See
23
- * the GNU General Public License for more details.
24
- *
25
- * You should have received a copy of the GNU General Public License
26
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
27
- *
2814 */
2915
3016 #include <linux/types.h>
....@@ -221,7 +207,8 @@
221207
222208 bkt = netlbl_unlhsh_hash(ifindex);
223209 bkt_list = &netlbl_unlhsh_rcu_deref(netlbl_unlhsh)->tbl[bkt];
224
- list_for_each_entry_rcu(iter, bkt_list, list)
210
+ list_for_each_entry_rcu(iter, bkt_list, list,
211
+ lockdep_is_held(&netlbl_unlhsh_lock))
225212 if (iter->valid && iter->ifindex == ifindex)
226213 return iter;
227214
....@@ -1321,60 +1308,60 @@
13211308 * NetLabel Generic NETLINK Command Definitions
13221309 */
13231310
1324
-static const struct genl_ops netlbl_unlabel_genl_ops[] = {
1311
+static const struct genl_small_ops netlbl_unlabel_genl_ops[] = {
13251312 {
13261313 .cmd = NLBL_UNLABEL_C_STATICADD,
1314
+ .validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
13271315 .flags = GENL_ADMIN_PERM,
1328
- .policy = netlbl_unlabel_genl_policy,
13291316 .doit = netlbl_unlabel_staticadd,
13301317 .dumpit = NULL,
13311318 },
13321319 {
13331320 .cmd = NLBL_UNLABEL_C_STATICREMOVE,
1321
+ .validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
13341322 .flags = GENL_ADMIN_PERM,
1335
- .policy = netlbl_unlabel_genl_policy,
13361323 .doit = netlbl_unlabel_staticremove,
13371324 .dumpit = NULL,
13381325 },
13391326 {
13401327 .cmd = NLBL_UNLABEL_C_STATICLIST,
1328
+ .validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
13411329 .flags = 0,
1342
- .policy = netlbl_unlabel_genl_policy,
13431330 .doit = NULL,
13441331 .dumpit = netlbl_unlabel_staticlist,
13451332 },
13461333 {
13471334 .cmd = NLBL_UNLABEL_C_STATICADDDEF,
1335
+ .validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
13481336 .flags = GENL_ADMIN_PERM,
1349
- .policy = netlbl_unlabel_genl_policy,
13501337 .doit = netlbl_unlabel_staticadddef,
13511338 .dumpit = NULL,
13521339 },
13531340 {
13541341 .cmd = NLBL_UNLABEL_C_STATICREMOVEDEF,
1342
+ .validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
13551343 .flags = GENL_ADMIN_PERM,
1356
- .policy = netlbl_unlabel_genl_policy,
13571344 .doit = netlbl_unlabel_staticremovedef,
13581345 .dumpit = NULL,
13591346 },
13601347 {
13611348 .cmd = NLBL_UNLABEL_C_STATICLISTDEF,
1349
+ .validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
13621350 .flags = 0,
1363
- .policy = netlbl_unlabel_genl_policy,
13641351 .doit = NULL,
13651352 .dumpit = netlbl_unlabel_staticlistdef,
13661353 },
13671354 {
13681355 .cmd = NLBL_UNLABEL_C_ACCEPT,
1356
+ .validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
13691357 .flags = GENL_ADMIN_PERM,
1370
- .policy = netlbl_unlabel_genl_policy,
13711358 .doit = netlbl_unlabel_accept,
13721359 .dumpit = NULL,
13731360 },
13741361 {
13751362 .cmd = NLBL_UNLABEL_C_LIST,
1363
+ .validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
13761364 .flags = 0,
1377
- .policy = netlbl_unlabel_genl_policy,
13781365 .doit = netlbl_unlabel_list,
13791366 .dumpit = NULL,
13801367 },
....@@ -1385,9 +1372,10 @@
13851372 .name = NETLBL_NLTYPE_UNLABELED_NAME,
13861373 .version = NETLBL_PROTO_VERSION,
13871374 .maxattr = NLBL_UNLABEL_A_MAX,
1375
+ .policy = netlbl_unlabel_genl_policy,
13881376 .module = THIS_MODULE,
1389
- .ops = netlbl_unlabel_genl_ops,
1390
- .n_ops = ARRAY_SIZE(netlbl_unlabel_genl_ops),
1377
+ .small_ops = netlbl_unlabel_genl_ops,
1378
+ .n_small_ops = ARRAY_SIZE(netlbl_unlabel_genl_ops),
13911379 };
13921380
13931381 /*