Signed-off-by: Ilya V. Matveychikov <matvejchi...@gmail.com>
---
 net/core/dev.c | 20 ++++++++------------
 1 file changed, 8 insertions(+), 12 deletions(-)

diff --git a/net/core/dev.c b/net/core/dev.c
index 8515f8f..acda9ac 100644
--- a/net/core/dev.c
+++ b/net/core/dev.c
@@ -144,6 +144,7 @@
 #include <linux/netfilter_ingress.h>
 #include <linux/crash_dump.h>
 #include <linux/sctp.h>
+#include <linux/small_array.h>

 #include "net-sysfs.h"

@@ -645,23 +646,18 @@ unsigned long netdev_boot_base(const char *prefix, int 
unit)
  */
 int __init netdev_boot_setup(char *str)
 {
-       int ints[5];
-       struct ifmap map;
+       struct ifmap map = { 0 };
+       KSA_DECLARE(ints, int, 4);

-       str = get_options(str, ARRAY_SIZE(ints), ints);
+       str = ksa_parse_ints(str, KSA(&ints));
        if (!str || !*str)
                return 0;

        /* Save settings */
-       memset(&map, 0, sizeof(map));
-       if (ints[0] > 0)
-               map.irq = ints[1];
-       if (ints[0] > 1)
-               map.base_addr = ints[2];
-       if (ints[0] > 2)
-               map.mem_start = ints[3];
-       if (ints[0] > 3)
-               map.mem_end = ints[4];
+       map.irq = KSA_GET(&ints, 0, 0);
+       map.base_addr = KSA_GET(&ints, 1, 0);
+       map.mem_start = KSA_GET(&ints, 2, 0);
+       map.mem_end = KSA_GET(&ints, 3, 0);

        /* Add new entry to the list */
        return netdev_boot_setup_add(str, &map);
--
2.7.4

Reply via email to