linux-next: manual merge of the net-next tree with Linus' tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi all,

Today's linux-next merge of the net-next tree got a conflict in
net/batman-adv/bat_iv_ogm.c between commit 7c24bbbeab41 ("batman-adv:
forward late OGMs from best next hop") from Linus' tree and commit
24a5deeb8a19 ("batman-adv: move ring_buffer helper functions in
bat_iv_ogm") from the net-next tree.

I fixed it up (as specified in your email (thanks) - see below) and can
carry the fix as necessary (no action is required).

-- 
Cheers,
Stephen Rothwell                    sfr@xxxxxxxxxxxxxxxx

diff --cc net/batman-adv/bat_iv_ogm.c
index f680ee1,d07323b..0000000
--- a/net/batman-adv/bat_iv_ogm.c
+++ b/net/batman-adv/bat_iv_ogm.c
@@@ -30,20 -29,47 +29,63 @@@
  #include "network-coding.h"
  
  /**
 + * batadv_dup_status - duplicate status
 + * @BATADV_NO_DUP: the packet is a duplicate
 + * @BATADV_ORIG_DUP: OGM is a duplicate in the originator (but not for the
 + *  neighbor)
 + * @BATADV_NEIGH_DUP: OGM is a duplicate for the neighbor
 + * @BATADV_PROTECTED: originator is currently protected (after reboot)
 + */
 +enum batadv_dup_status {
 +	BATADV_NO_DUP = 0,
 +	BATADV_ORIG_DUP,
 +	BATADV_NEIGH_DUP,
 +	BATADV_PROTECTED,
 +};
 +
++/**
+  * batadv_ring_buffer_set - update the ring buffer with the given value
+  * @lq_recv: pointer to the ring buffer
+  * @lq_index: index to store the value at
+  * @value: value to store in the ring buffer
+  */
+ static void batadv_ring_buffer_set(uint8_t lq_recv[], uint8_t *lq_index,
+ 				   uint8_t value)
+ {
+ 	lq_recv[*lq_index] = value;
+ 	*lq_index = (*lq_index + 1) % BATADV_TQ_GLOBAL_WINDOW_SIZE;
+ }
+ 
+ /**
+  * batadv_ring_buffer_set - compute the average of all non-zero values stored
+  * in the given ring buffer
+  * @lq_recv: pointer to the ring buffer
+  *
+  * Returns computed average value.
+  */
+ static uint8_t batadv_ring_buffer_avg(const uint8_t lq_recv[])
+ {
+ 	const uint8_t *ptr;
+ 	uint16_t count = 0, i = 0, sum = 0;
+ 
+ 	ptr = lq_recv;
+ 
+ 	while (i < BATADV_TQ_GLOBAL_WINDOW_SIZE) {
+ 		if (*ptr != 0) {
+ 			count++;
+ 			sum += *ptr;
+ 		}
+ 
+ 		i++;
+ 		ptr++;
+ 	}
+ 
+ 	if (count == 0)
+ 		return 0;
+ 
+ 	return (uint8_t)(sum / count);
+ }
++
  static struct batadv_neigh_node *
  batadv_iv_ogm_neigh_new(struct batadv_hard_iface *hard_iface,
  			const uint8_t *neigh_addr,
@@@ -1013,11 -1062,10 +1085,11 @@@ static void batadv_iv_ogm_process(cons
  	struct batadv_neigh_node *orig_neigh_router = NULL;
  	int has_directlink_flag;
  	int is_my_addr = 0, is_my_orig = 0, is_my_oldorig = 0;
- 	int is_broadcast = 0, is_bidirect;
+ 	int is_bidirect;
  	bool is_single_hop_neigh = false;
  	bool is_from_best_next_hop = false;
 -	int is_duplicate, sameseq, simlar_ttl;
 +	int sameseq, similar_ttl;
 +	enum batadv_dup_status dup_status;
  	uint32_t if_incoming_seqno;
  	uint8_t *prev_sender;
  

Attachment: pgpGUwsDYRQZP.pgp
Description: PGP signature


[Index of Archives]     [Linux Kernel]     [Linux USB Development]     [Yosemite News]     [Linux SCSI]

  Powered by Linux