net: introduce and use netdev_features_t for device features sets
v2: add couple missing conversions in drivers split unexporting netdev_fix_features() implemented %pNF convert sock::sk_route_(no?)caps Signed-off-by: Michał Mirosław <mirq-linux@rere.qmqm.pl> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:

committed by
David S. Miller

parent
a59e2ecb85
commit
c8f44affb7
@@ -777,6 +777,18 @@ char *uuid_string(char *buf, char *end, const u8 *addr,
|
||||
return string(buf, end, uuid, spec);
|
||||
}
|
||||
|
||||
static
|
||||
char *netdev_feature_string(char *buf, char *end, const u8 *addr,
|
||||
struct printf_spec spec)
|
||||
{
|
||||
spec.flags |= SPECIAL | SMALL | ZEROPAD;
|
||||
if (spec.field_width == -1)
|
||||
spec.field_width = 2 + 2 * sizeof(netdev_features_t);
|
||||
spec.base = 16;
|
||||
|
||||
return number(buf, end, *(const netdev_features_t *)addr, spec);
|
||||
}
|
||||
|
||||
int kptr_restrict __read_mostly;
|
||||
|
||||
/*
|
||||
@@ -824,6 +836,7 @@ int kptr_restrict __read_mostly;
|
||||
* Do not use this feature without some mechanism to verify the
|
||||
* correctness of the format string and va_list arguments.
|
||||
* - 'K' For a kernel pointer that should be hidden from unprivileged users
|
||||
* - 'NF' For a netdev_features_t
|
||||
*
|
||||
* Note: The difference between 'S' and 'F' is that on ia64 and ppc64
|
||||
* function pointers are really function descriptors, which contain a
|
||||
@@ -896,6 +909,12 @@ char *pointer(const char *fmt, char *buf, char *end, void *ptr,
|
||||
has_capability_noaudit(current, CAP_SYSLOG))))
|
||||
ptr = NULL;
|
||||
break;
|
||||
case 'N':
|
||||
switch (fmt[1]) {
|
||||
case 'F':
|
||||
return netdev_feature_string(buf, end, ptr, spec);
|
||||
}
|
||||
break;
|
||||
}
|
||||
spec.flags |= SMALL;
|
||||
if (spec.field_width == -1) {
|
||||
|
Reference in New Issue
Block a user