On Fri, 2014-01-17 at 13:02 +0000, Venkata Duvvuru wrote: > This ethtool patch will primarily implement the parser for the options provided by the user for set and get hashkey before invoking the ioctl. > This patch also has Ethtool man page changes which describes the Usage of set and get hashkey options. I'd prefer to have this combined with the -x/-X options (and add new long options to reflect that they cover the key as well). [...] > diff --git a/ethtool.c b/ethtool.c > index b06dfa3..4b05b0c 100644 > --- a/ethtool.c > +++ b/ethtool.c > @@ -471,6 +471,59 @@ static int rxflow_str_to_type(const char *str) > return flow_type; > } > > +static inline int is_hkey_char_valid(const char rss_hkey_string) { A char is not a string. > + /* Are there any invalid characters in the string */ > + return ((rss_hkey_string >= '0' && rss_hkey_string <= '9') || > + (rss_hkey_string >= 'a' && rss_hkey_string <= 'f') || > + (rss_hkey_string >= 'A' && rss_hkey_string <= 'F')); } Braces are in the wrong places. And the whole function is redundant with isxdigit() anyway. > +static int convert_string_to_hashkey(struct ethtool_rss_hkey *rss_hkey, > + const char *rss_hkey_string) > +{ > + int i = 0; > + int hex_byte; > + > + do { > + if (i > (RSS_HASH_KEY_LEN - 1)) { Comparing with the wrong limit. [...] > +static int get_hashkey(struct cmd_context *ctx) { Brace in the wrong place. [...] > + for (i = 0; i < RSS_HASH_KEY_LEN; i++) { > + if (i == (RSS_HASH_KEY_LEN - 1)) Wrong length. > + printf("%02x\n", rss_hkey->data[i]); > + else > + printf("%02x:", rss_hkey->data[i]); > + } > + > +done: > + free(rss_hkey); > + return rc; > +} [...] -- Ben Hutchings friends: People who know you well, but like you anyway.