On Wednesday 13 November 2013 17:38:00 Antonio Quartulli wrote:
@@ -692,6 +692,8 @@ static int batadv_softif_init_late(struct net_device *dev)> #endif
bat_priv->tt.last_changeset = NULL; bat_priv->tt.last_changeset_len = 0;
bat_priv->isolation_mark = 0;
bat_priv->isolation_mark_mask = 0; /* randomize initial seqno to avoid collision */ get_random_bytes(&random_seqno, sizeof(random_seqno));
Wasn't the plan to initialize isolation_mark_mask with something useful like 0xFFFFFFFF ?
+/**
- batadv_store_isolation_mark - parse and store the isolation mark/mask
entered by + * the user
- @kobj: kobject representing the private mesh sysfs directory
- @attr: the batman-adv attribute the user is interacting with
- @buf: the buffer containing the user data
- @count: number of bytes in the buffer
- Returns 'count' on success or a negative error code in case of failure
- */
+static ssize_t batadv_store_isolation_mark(struct kobject *kobj,
struct attribute *attr, char *buff,
size_t count)
+{
- struct net_device *net_dev = batadv_kobj_to_netdev(kobj);
- struct batadv_priv *bat_priv = netdev_priv(net_dev);
- uint32_t mark, mask = UINT_MAX;
- char *mask_ptr;
- /* parse the mask if it has been specified */
- mask_ptr = strchr(buff, '/');
- if (mask_ptr) {
*mask_ptr = '\0';
mask_ptr++;
/* the mask must be entered in hex base as it is going to be a
* bitmask and not a prefix length
*/
if (kstrtou32(mask_ptr, 16, &mask) < 0)
return -EINVAL;
- }
- /* the mark can be entered in any base */
- if (kstrtou32(buff, 0, &mark) < 0)
return -EINVAL;
- bat_priv->isolation_mark_mask = mask;
- /* erase bits not covered by the mask */
- bat_priv->isolation_mark = mark & bat_priv->isolation_mark_mask;
- batadv_info(net_dev,
"New skb mark for extended isolation: %#.8x/%#.8x\n",
bat_priv->isolation_mark, bat_priv->isolation_mark_mask);
- return count;
+}
+/**
- batadv_show_isolation_mark - print the current isolation mark/mask
- @kobj: kobject representing the private mesh sysfs directory
- @attr: the batman-adv attribute the user is interacting with
- @buf: the buffer that will contain the data to send back to the user
- Returns the number of bytes written into 'buf' on success or a negative
error + * code in case of failure
- */
+static ssize_t batadv_show_isolation_mark(struct kobject *kobj,
struct attribute *attr, char *buff)
+{
- struct batadv_priv *bat_priv = batadv_kobj_to_batpriv(kobj);
- return sprintf(buff, "%#.8x/%#.8x\n", bat_priv->isolation_mark,
bat_priv->isolation_mark_mask);
+}
We always have 'show' before 'store' in the sysfs.c file. Please keep the order.
Where is the sysfs documentation update ?
Cheers, Marek