Commit d78c68ef authored by David S. Miller's avatar David S. Miller

Merge branch 'for-david' of git://git.open-mesh.org/ecsv/linux-merge

parents 16c0f936 aa0adb1a
...@@ -151,9 +151,9 @@ int debug_log(struct bat_priv *bat_priv, char *fmt, ...); ...@@ -151,9 +151,9 @@ int debug_log(struct bat_priv *bat_priv, char *fmt, ...);
} \ } \
while (0) while (0)
#else /* !CONFIG_BATMAN_ADV_DEBUG */ #else /* !CONFIG_BATMAN_ADV_DEBUG */
static inline void bat_dbg(char type __attribute__((unused)), static inline void bat_dbg(char type __always_unused,
struct bat_priv *bat_priv __attribute__((unused)), struct bat_priv *bat_priv __always_unused,
char *fmt __attribute__((unused)), ...) char *fmt __always_unused, ...)
{ {
} }
#endif #endif
......
...@@ -63,7 +63,7 @@ struct batman_packet { ...@@ -63,7 +63,7 @@ struct batman_packet {
uint8_t num_hna; uint8_t num_hna;
uint8_t gw_flags; /* flags related to gateway class */ uint8_t gw_flags; /* flags related to gateway class */
uint8_t align; uint8_t align;
} __attribute__((packed)); } __packed;
#define BAT_PACKET_LEN sizeof(struct batman_packet) #define BAT_PACKET_LEN sizeof(struct batman_packet)
...@@ -76,7 +76,7 @@ struct icmp_packet { ...@@ -76,7 +76,7 @@ struct icmp_packet {
uint8_t orig[6]; uint8_t orig[6];
uint16_t seqno; uint16_t seqno;
uint8_t uid; uint8_t uid;
} __attribute__((packed)); } __packed;
#define BAT_RR_LEN 16 #define BAT_RR_LEN 16
...@@ -93,14 +93,14 @@ struct icmp_packet_rr { ...@@ -93,14 +93,14 @@ struct icmp_packet_rr {
uint8_t uid; uint8_t uid;
uint8_t rr_cur; uint8_t rr_cur;
uint8_t rr[BAT_RR_LEN][ETH_ALEN]; uint8_t rr[BAT_RR_LEN][ETH_ALEN];
} __attribute__((packed)); } __packed;
struct unicast_packet { struct unicast_packet {
uint8_t packet_type; uint8_t packet_type;
uint8_t version; /* batman version field */ uint8_t version; /* batman version field */
uint8_t dest[6]; uint8_t dest[6];
uint8_t ttl; uint8_t ttl;
} __attribute__((packed)); } __packed;
struct unicast_frag_packet { struct unicast_frag_packet {
uint8_t packet_type; uint8_t packet_type;
...@@ -110,7 +110,7 @@ struct unicast_frag_packet { ...@@ -110,7 +110,7 @@ struct unicast_frag_packet {
uint8_t flags; uint8_t flags;
uint8_t orig[6]; uint8_t orig[6];
uint16_t seqno; uint16_t seqno;
} __attribute__((packed)); } __packed;
struct bcast_packet { struct bcast_packet {
uint8_t packet_type; uint8_t packet_type;
...@@ -118,7 +118,7 @@ struct bcast_packet { ...@@ -118,7 +118,7 @@ struct bcast_packet {
uint8_t orig[6]; uint8_t orig[6];
uint8_t ttl; uint8_t ttl;
uint32_t seqno; uint32_t seqno;
} __attribute__((packed)); } __packed;
struct vis_packet { struct vis_packet {
uint8_t packet_type; uint8_t packet_type;
...@@ -131,6 +131,6 @@ struct vis_packet { ...@@ -131,6 +131,6 @@ struct vis_packet {
* neighbors */ * neighbors */
uint8_t target_orig[6]; /* who should receive this packet */ uint8_t target_orig[6]; /* who should receive this packet */
uint8_t sender_orig[6]; /* who sent or rebroadcasted this packet */ uint8_t sender_orig[6]; /* who sent or rebroadcasted this packet */
} __attribute__((packed)); } __packed;
#endif /* _NET_BATMAN_ADV_PACKET_H_ */ #endif /* _NET_BATMAN_ADV_PACKET_H_ */
...@@ -246,13 +246,13 @@ struct vis_info { ...@@ -246,13 +246,13 @@ struct vis_info {
/* this packet might be part of the vis send queue. */ /* this packet might be part of the vis send queue. */
struct sk_buff *skb_packet; struct sk_buff *skb_packet;
/* vis_info may follow here*/ /* vis_info may follow here*/
} __attribute__((packed)); } __packed;
struct vis_info_entry { struct vis_info_entry {
uint8_t src[ETH_ALEN]; uint8_t src[ETH_ALEN];
uint8_t dest[ETH_ALEN]; uint8_t dest[ETH_ALEN];
uint8_t quality; /* quality = 0 means HNA */ uint8_t quality; /* quality = 0 means HNA */
} __attribute__((packed)); } __packed;
struct recvlist_node { struct recvlist_node {
struct list_head list; struct list_head list;
......
...@@ -229,10 +229,12 @@ int frag_send_skb(struct sk_buff *skb, struct bat_priv *bat_priv, ...@@ -229,10 +229,12 @@ int frag_send_skb(struct sk_buff *skb, struct bat_priv *bat_priv,
if (!bat_priv->primary_if) if (!bat_priv->primary_if)
goto dropped; goto dropped;
unicast_packet = (struct unicast_packet *) skb->data; frag_skb = dev_alloc_skb(data_len - (data_len / 2) + ucf_hdr_len);
if (!frag_skb)
goto dropped;
unicast_packet = (struct unicast_packet *) skb->data;
memcpy(&tmp_uc, unicast_packet, uc_hdr_len); memcpy(&tmp_uc, unicast_packet, uc_hdr_len);
frag_skb = dev_alloc_skb(data_len - (data_len / 2) + ucf_hdr_len);
skb_split(skb, frag_skb, data_len / 2); skb_split(skb, frag_skb, data_len / 2);
if (my_skb_head_push(skb, ucf_hdr_len - uc_hdr_len) < 0 || if (my_skb_head_push(skb, ucf_hdr_len - uc_hdr_len) < 0 ||
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment