fragmentation.c (a02001086bbfb4da35d1228bebc2f1b442db455f) fragmentation.c (5b6698b0e4a37053de35cc24ee695b98a7eb712b)
1/* Copyright (C) 2013-2014 B.A.T.M.A.N. contributors:
2 *
3 * Martin Hundebøll <martin@hundeboll.net>
4 *
5 * This program is free software; you can redistribute it and/or
6 * modify it under the terms of version 2 of the GNU General Public
7 * License as published by the Free Software Foundation.
8 *

--- 237 unchanged lines hidden (view full) ---

246 * fragments.
247 */
248 entry = hlist_entry(chain->first, struct batadv_frag_list_entry, list);
249 hlist_del(&entry->list);
250 skb_out = entry->skb;
251 kfree(entry);
252
253 /* Make room for the rest of the fragments. */
1/* Copyright (C) 2013-2014 B.A.T.M.A.N. contributors:
2 *
3 * Martin Hundebøll <martin@hundeboll.net>
4 *
5 * This program is free software; you can redistribute it and/or
6 * modify it under the terms of version 2 of the GNU General Public
7 * License as published by the Free Software Foundation.
8 *

--- 237 unchanged lines hidden (view full) ---

246 * fragments.
247 */
248 entry = hlist_entry(chain->first, struct batadv_frag_list_entry, list);
249 hlist_del(&entry->list);
250 skb_out = entry->skb;
251 kfree(entry);
252
253 /* Make room for the rest of the fragments. */
254 if (pskb_expand_head(skb_out, 0, size - skb->len, GFP_ATOMIC) < 0) {
254 if (pskb_expand_head(skb_out, 0, size - skb_out->len, GFP_ATOMIC) < 0) {
255 kfree_skb(skb_out);
256 skb_out = NULL;
257 goto free;
258 }
259
260 /* Move the existing MAC header to just before the payload. (Override
261 * the fragment header.)
262 */

--- 236 unchanged lines hidden ---
255 kfree_skb(skb_out);
256 skb_out = NULL;
257 goto free;
258 }
259
260 /* Move the existing MAC header to just before the payload. (Override
261 * the fragment header.)
262 */

--- 236 unchanged lines hidden ---