From: Ido Schimmel <ido...@mellanox.com>

Currently, the number of supported options is capped at 32 which is a
problem given we are about to add a few more and go over the limit.

Increase the limit to 64 options.

Signed-off-by: Ido Schimmel <ido...@mellanox.com>
Acked-by: Jiri Pirko <j...@mellanox.com>
---
 devlink/devlink.c | 24 ++++++++++++------------
 1 file changed, 12 insertions(+), 12 deletions(-)

diff --git a/devlink/devlink.c b/devlink/devlink.c
index 559f624e3666..f631c8241a24 100644
--- a/devlink/devlink.c
+++ b/devlink/devlink.c
@@ -213,7 +213,7 @@ static void ifname_map_free(struct ifname_map *ifname_map)
 #define DL_OPT_HEALTH_REPORTER_AUTO_RECOVER    BIT(28)
 
 struct dl_opts {
-       uint32_t present; /* flags of present items */
+       uint64_t present; /* flags of present items */
        char *bus_name;
        char *dev_name;
        uint32_t port_index;
@@ -713,7 +713,7 @@ static int dl_argv_handle_port(struct dl *dl, char 
**p_bus_name,
 
 static int dl_argv_handle_both(struct dl *dl, char **p_bus_name,
                               char **p_dev_name, uint32_t *p_port_index,
-                              uint32_t *p_handle_bit)
+                              uint64_t *p_handle_bit)
 {
        char *str = dl_argv_next(dl);
        unsigned int slash_count;
@@ -993,7 +993,7 @@ static int param_cmode_get(const char *cmodestr,
 }
 
 struct dl_args_metadata {
-       uint32_t o_flag;
+       uint64_t o_flag;
        char err_msg[DL_ARGS_REQUIRED_MAX_ERR_LEN];
 };
 
@@ -1020,10 +1020,10 @@ static const struct dl_args_metadata dl_args_required[] 
= {
        {DL_OPT_HEALTH_REPORTER_NAME, "Reporter's name is expected."},
 };
 
-static int dl_args_finding_required_validate(uint32_t o_required,
-                                            uint32_t o_found)
+static int dl_args_finding_required_validate(uint64_t o_required,
+                                            uint64_t o_found)
 {
-       uint32_t o_flag;
+       uint64_t o_flag;
        int i;
 
        for (i = 0; i < ARRAY_SIZE(dl_args_required); i++) {
@@ -1036,16 +1036,16 @@ static int dl_args_finding_required_validate(uint32_t 
o_required,
        return 0;
 }
 
-static int dl_argv_parse(struct dl *dl, uint32_t o_required,
-                        uint32_t o_optional)
+static int dl_argv_parse(struct dl *dl, uint64_t o_required,
+                        uint64_t o_optional)
 {
        struct dl_opts *opts = &dl->opts;
-       uint32_t o_all = o_required | o_optional;
-       uint32_t o_found = 0;
+       uint64_t o_all = o_required | o_optional;
+       uint64_t o_found = 0;
        int err;
 
        if (o_required & DL_OPT_HANDLE && o_required & DL_OPT_HANDLEP) {
-               uint32_t handle_bit;
+               uint64_t handle_bit;
 
                err = dl_argv_handle_both(dl, &opts->bus_name, &opts->dev_name,
                                          &opts->port_index, &handle_bit);
@@ -1424,7 +1424,7 @@ static void dl_opts_put(struct nlmsghdr *nlh, struct dl 
*dl)
 }
 
 static int dl_argv_parse_put(struct nlmsghdr *nlh, struct dl *dl,
-                            uint32_t o_required, uint32_t o_optional)
+                            uint64_t o_required, uint64_t o_optional)
 {
        int err;
 
-- 
2.20.1

Reply via email to