You've already forked linux-apfs
mirror of
https://github.com/linux-apfs/linux-apfs.git
synced 2026-05-01 15:00:59 -07:00
Merge branch 'batman-adv/next' of git://git.open-mesh.org/linux-merge
This commit is contained in:
@@ -200,15 +200,16 @@ abled during run time. Following log_levels are defined:
|
||||
|
||||
0 - All debug output disabled
|
||||
1 - Enable messages related to routing / flooding / broadcasting
|
||||
2 - Enable route or tt entry added / changed / deleted
|
||||
3 - Enable all messages
|
||||
2 - Enable messages related to route added / changed / deleted
|
||||
4 - Enable messages related to translation table operations
|
||||
7 - Enable all messages
|
||||
|
||||
The debug output can be changed at runtime using the file
|
||||
/sys/class/net/bat0/mesh/log_level. e.g.
|
||||
|
||||
# echo 2 > /sys/class/net/bat0/mesh/log_level
|
||||
|
||||
will enable debug messages for when routes or TTs change.
|
||||
will enable debug messages for when routes change.
|
||||
|
||||
|
||||
BATCTL
|
||||
|
||||
@@ -695,7 +695,7 @@ bool gw_out_of_range(struct bat_priv *bat_priv,
|
||||
}
|
||||
|
||||
neigh_old = find_router(bat_priv, orig_dst_node, NULL);
|
||||
if (!!neigh_old)
|
||||
if (!neigh_old)
|
||||
goto out;
|
||||
|
||||
if (curr_tq_avg - neigh_old->tq_avg > GW_THRESHOLD)
|
||||
|
||||
@@ -136,10 +136,9 @@ static ssize_t bat_socket_read(struct file *file, char __user *buf,
|
||||
|
||||
spin_unlock_bh(&socket_client->lock);
|
||||
|
||||
error = __copy_to_user(buf, &socket_packet->icmp_packet,
|
||||
socket_packet->icmp_len);
|
||||
packet_len = min(count, socket_packet->icmp_len);
|
||||
error = copy_to_user(buf, &socket_packet->icmp_packet, packet_len);
|
||||
|
||||
packet_len = socket_packet->icmp_len;
|
||||
kfree(socket_packet);
|
||||
|
||||
if (error)
|
||||
@@ -187,12 +186,7 @@ static ssize_t bat_socket_write(struct file *file, const char __user *buff,
|
||||
skb_reserve(skb, sizeof(struct ethhdr));
|
||||
icmp_packet = (struct icmp_packet_rr *)skb_put(skb, packet_len);
|
||||
|
||||
if (!access_ok(VERIFY_READ, buff, packet_len)) {
|
||||
len = -EFAULT;
|
||||
goto free_skb;
|
||||
}
|
||||
|
||||
if (__copy_from_user(icmp_packet, buff, packet_len)) {
|
||||
if (copy_from_user(icmp_packet, buff, packet_len)) {
|
||||
len = -EFAULT;
|
||||
goto free_skb;
|
||||
}
|
||||
@@ -217,7 +211,7 @@ static ssize_t bat_socket_write(struct file *file, const char __user *buff,
|
||||
|
||||
if (icmp_packet->version != COMPAT_VERSION) {
|
||||
icmp_packet->msg_type = PARAMETER_PROBLEM;
|
||||
icmp_packet->ttl = COMPAT_VERSION;
|
||||
icmp_packet->version = COMPAT_VERSION;
|
||||
bat_socket_add_packet(socket_client, icmp_packet, packet_len);
|
||||
goto free_skb;
|
||||
}
|
||||
|
||||
@@ -627,8 +627,7 @@ int recv_tt_query(struct sk_buff *skb, struct hard_iface *recv_if)
|
||||
|
||||
/* Ensure we have all the claimed data */
|
||||
if (unlikely(skb_headlen(skb) <
|
||||
sizeof(struct tt_query_packet) +
|
||||
tt_len))
|
||||
sizeof(struct tt_query_packet) + tt_len))
|
||||
goto out;
|
||||
|
||||
handle_tt_response(bat_priv, tt_query);
|
||||
|
||||
@@ -874,7 +874,7 @@ unreg_debugfs:
|
||||
unreg_sysfs:
|
||||
sysfs_del_meshif(soft_iface);
|
||||
unreg_soft_iface:
|
||||
unregister_netdev(soft_iface);
|
||||
unregister_netdevice(soft_iface);
|
||||
return NULL;
|
||||
|
||||
free_soft_iface:
|
||||
|
||||
+195
-141
File diff suppressed because it is too large
Load Diff
@@ -222,24 +222,24 @@ struct socket_packet {
|
||||
struct icmp_packet_rr icmp_packet;
|
||||
};
|
||||
|
||||
struct tt_local_entry {
|
||||
struct tt_common_entry {
|
||||
uint8_t addr[ETH_ALEN];
|
||||
struct hlist_node hash_entry;
|
||||
unsigned long last_seen;
|
||||
uint16_t flags;
|
||||
atomic_t refcount;
|
||||
struct rcu_head rcu;
|
||||
};
|
||||
|
||||
struct tt_local_entry {
|
||||
struct tt_common_entry common;
|
||||
unsigned long last_seen;
|
||||
};
|
||||
|
||||
struct tt_global_entry {
|
||||
uint8_t addr[ETH_ALEN];
|
||||
struct hlist_node hash_entry; /* entry in the global table */
|
||||
struct tt_common_entry common;
|
||||
struct orig_node *orig_node;
|
||||
uint8_t ttvn;
|
||||
uint16_t flags; /* only TT_GLOBAL_ROAM is used */
|
||||
unsigned long roam_at; /* time at which TT_GLOBAL_ROAM was set */
|
||||
atomic_t refcount;
|
||||
struct rcu_head rcu;
|
||||
};
|
||||
|
||||
struct tt_change_node {
|
||||
|
||||
@@ -609,7 +609,7 @@ static int generate_vis_packet(struct bat_priv *bat_priv)
|
||||
struct vis_info *info = bat_priv->my_vis_info;
|
||||
struct vis_packet *packet = (struct vis_packet *)info->skb_packet->data;
|
||||
struct vis_info_entry *entry;
|
||||
struct tt_local_entry *tt_local_entry;
|
||||
struct tt_common_entry *tt_common_entry;
|
||||
int best_tq = -1;
|
||||
uint32_t i;
|
||||
|
||||
@@ -672,13 +672,13 @@ next:
|
||||
head = &hash->table[i];
|
||||
|
||||
rcu_read_lock();
|
||||
hlist_for_each_entry_rcu(tt_local_entry, node, head,
|
||||
hlist_for_each_entry_rcu(tt_common_entry, node, head,
|
||||
hash_entry) {
|
||||
entry = (struct vis_info_entry *)
|
||||
skb_put(info->skb_packet,
|
||||
sizeof(*entry));
|
||||
memset(entry->src, 0, ETH_ALEN);
|
||||
memcpy(entry->dest, tt_local_entry->addr, ETH_ALEN);
|
||||
memcpy(entry->dest, tt_common_entry->addr, ETH_ALEN);
|
||||
entry->quality = 0; /* 0 means TT */
|
||||
packet->entries++;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user