Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
80 commits
Select commit Hold shift + click to select a range
6200d5c
MAINTAINERS: Update XDP and AF_XDP entries
netoptimizer Nov 20, 2020
537cf4e
xsk: Fix umem cleanup bug at socket destruct
magnus-karlsson Nov 20, 2020
1786489
xsk: Fix incorrect netdev reference count
alardam Nov 20, 2020
36ccdf8
net, xsk: Avoid taking multiple skbuff references
Nov 23, 2020
68878a5
bpftool: Fix error return value in build_btf_type_table
Nov 24, 2020
9a44bc9
bpf: Add MAINTAINERS entry for BPF LSM
sinkap Nov 25, 2020
68ad89d
netfilter: ipset: prevent uninit-value in hash_ip6_add
edumazet Nov 19, 2020
c0700df
netfilter: nf_tables: avoid false-postive lockdep splat
Nov 19, 2020
4ca23e2
batman-adv: Consider fragmentation for needed_headroom
ecsv Nov 26, 2020
c5cbfc8
batman-adv: Reserve needed_*room for fragments
ecsv Nov 25, 2020
992b03b
batman-adv: Don't always reallocate the fragmentation skb head
ecsv Nov 26, 2020
4bc3c8d
ipvs: fix possible memory leak in ip_vs_control_net_init
Nov 24, 2020
3c78e9e
netfilter: nftables_offload: set address type in control dissector
ummakynes Nov 25, 2020
a5d45bc
netfilter: nftables_offload: build mask based from the matching bytes
ummakynes Nov 25, 2020
44f64f2
netfilter: bridge: reset skb->pkt_type after NF_INET_POST_ROUTING tra…
atenart Nov 23, 2020
28d35ad
Merge tag 'batadv-net-pullrequest-20201127' of git://git.open-mesh.or…
kuba-moo Nov 28, 2020
3771b82
Merge https://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf
kuba-moo Nov 28, 2020
1ebf179
ipv4: Fix tos mask in inet_rtm_getroute()
Nov 26, 2020
e14038a
selftests: tc-testing: enable CONFIG_NET_SCH_RED as a module
dcaratti Nov 26, 2020
bd2d5c5
Merge git://git.kernel.org/pub/scm/linux/kernel/git/pablo/nf
kuba-moo Nov 28, 2020
31d6b40
ibmvnic: handle inconsistent login with reset
Nov 26, 2020
18f141b
ibmvnic: stop free_all_rwi on failed reset
Nov 26, 2020
9281cf2
ibmvnic: avoid memset null scrq msgs
Nov 26, 2020
0cb4bc6
ibmvnic: restore adapter state on failed reset
Nov 26, 2020
f15fde9
ibmvnic: delay next reset if hard reset fails
sukadev Nov 26, 2020
76cdc5c
ibmvnic: track pending login
sukadev Nov 26, 2020
c98d9cc
ibmvnic: send_login should check for crq errors
Nov 26, 2020
a86d5c6
ibmvnic: no reset timeout for 5 seconds after reset
Nov 26, 2020
98c41f0
ibmvnic: reduce wait for completion time
Nov 26, 2020
6548755
Merge branch 'ibmvnic-assorted-bug-fixes'
kuba-moo Nov 28, 2020
4d52194
dt-bindings: net: correct interrupt flags in examples
krzk Oct 26, 2020
ad1f5e8
can: m_can: tcan4x5x_can_probe(): fix error path: remove erroneous cl…
marckleinebudde Nov 27, 2020
bd0ccb9
can: sja1000: sja1000_err(): don't count arbitration lose as an error
jhofstee Nov 27, 2020
c2d095e
can: sun4i_can: sun4i_can_err(): don't count arbitration lose as an e…
jhofstee Nov 27, 2020
44cef0c
can: c_can: c_can_power_up(): fix error handling
Nov 28, 2020
13a84cf
can: kvaser_pciefd: kvaser_pciefd_open(): fix error handling
Nov 28, 2020
e3d5e97
chelsio/chtls: fix panic during unload reload chtls
vinaychelsio Nov 25, 2020
0a35dc4
vxlan: Add needed_headroom for lower device
ecsv Nov 26, 2020
a5e7402
vxlan: Copy needed_tailroom from lowerdev
ecsv Nov 26, 2020
237f977
Merge tag 'linux-can-fixes-for-5.10-20201130' of git://git.kernel.org…
kuba-moo Dec 1, 2020
cf03f31
fs: 9p: add generic splice_read file operations
tohojo Dec 1, 2020
b71ec95
ibmvnic: Ensure that SCRQ entry reads are correctly ordered
tlfalcon Dec 1, 2020
ba246c1
ibmvnic: Fix TX completion error handling
tlfalcon Dec 1, 2020
de7b3f8
Merge branch 'ibmvnic-Bug-fixes-for-queue-descriptor-processing'
davem330 Dec 1, 2020
14483cb
net: broadcom CNIC: requires MMU
rddunlap Nov 29, 2020
960f4f8
fs: 9p: add generic splice_write file operation
martinetd Dec 1, 2020
0643334
tipc: fix incompatible mtu of transmission
Nov 30, 2020
2867e1e
inet_ecn: Fix endianness of checksum update when setting ECT(1)
tohojo Nov 30, 2020
4179b00
geneve: pull IP header before ECN decapsulation
edumazet Dec 1, 2020
a2bd409
s390/pci: fix CPU address in MSI for directed IRQ
Nov 26, 2020
b1cae1f
s390: fix irq state tracing
hcahca Dec 2, 2020
abfccc3
iwlwifi: update MAINTAINERS entry
jmberg-intel Nov 29, 2020
5febcde
iwlwifi: pcie: add one missing entry for AX210
lucacoelho Dec 2, 2020
568d343
iwlwifi: pcie: invert values of NO_160 device config entries
lucacoelho Dec 2, 2020
9b15596
iwlwifi: pcie: add some missing entries for AX210
golanIntel Dec 2, 2020
8079820
mt76: usb: fix crash on device removal
sgruszka Nov 26, 2020
832ba59
net: ip6_gre: set dev->hard_header_len when using header_ops
atenart Nov 30, 2020
07500a6
dpaa_eth: copy timestamp fields to new skb in A-050385 workaround
yangbolu1991 Dec 1, 2020
6ee50c8
net/x25: prevent a couple of overflows
Dec 1, 2020
ff99248
cxgb3: fix error return code in t3_sge_alloc_qset()
Dec 2, 2020
aba8487
net: pasemi: fix error return code in pasemi_mac_open()
Dec 2, 2020
832e097
vxlan: fix error return code in __vxlan_dev_create()
Dec 2, 2020
74a8c81
rtw88: debug: Fix uninitialized memory in debugfs code
Dec 3, 2020
4f134b8
lib/syscall: fix syscall registers retrieval on 32-bit platforms
wtarreau Nov 30, 2020
062c9cd
pwm: sl28cpld: fix getting driver data in pwm callbacks
Dec 3, 2020
72d1249
uapi: fix statx attribute value overlap for DAX & MOUNT_ROOT
Dec 1, 2020
391119f
chelsio/chtls: fix a double free in chtls_setkey()
Dec 3, 2020
82a10dc
net: mvpp2: Fix error return code in mvpp2_open()
Dec 3, 2020
6392b5b
Merge tag 'wireless-drivers-2020-12-03' of git://git.kernel.org/pub/s…
kuba-moo Dec 3, 2020
13de4ed
net: skbuff: ensure LSE is pullable before decrementing the MPLS ttl
dcaratti Dec 3, 2020
43c1360
net: openvswitch: ensure LSE is pullable before reading it
dcaratti Dec 3, 2020
9608fa6
net/sched: act_mpls: ensure LSE is pullable before reading it
dcaratti Dec 3, 2020
1d2bb5a
net/mlx5: Fix wrong address reclaim when command interface is down
eranbe-nbu Dec 3, 2020
8a78a44
net: mlx5e: fix fs_tcp.c build when IPV6 is not enabled
rddunlap Dec 3, 2020
b336e6b
net/mlx5e: kTLS, Enforce HW TX csum offload with kTLS
Dec 3, 2020
d421e46
net/mlx5: DR, Proper handling of unsupported Connect-X6DX SW steering
kliteyn Dec 3, 2020
6f076ce
Merge branch 'mlx5-fixes-2020-12-01'
kuba-moo Dec 3, 2020
c82a505
Merge tag '9p-for-5.10-rc7' of git://github.com/martinetd/linux
torvalds Dec 3, 2020
fee5be1
Merge tag 's390-5.10-6' of git://git.kernel.org/pub/scm/linux/kernel/…
torvalds Dec 3, 2020
bbe2ba0
Merge tag 'net-5.10-rc7' of git://git.kernel.org/pub/scm/linux/kernel…
torvalds Dec 3, 2020
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion Documentation/devicetree/bindings/net/can/tcan4x5x.txt
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ tcan4x5x: tcan4x5x@0 {
spi-max-frequency = <10000000>;
bosch,mram-cfg = <0x0 0 0 32 0 0 1 1>;
interrupt-parent = <&gpio1>;
interrupts = <14 GPIO_ACTIVE_LOW>;
interrupts = <14 IRQ_TYPE_LEVEL_LOW>;
device-state-gpios = <&gpio3 21 GPIO_ACTIVE_HIGH>;
device-wake-gpios = <&gpio1 15 GPIO_ACTIVE_HIGH>;
reset-gpios = <&gpio1 27 GPIO_ACTIVE_HIGH>;
Expand Down
2 changes: 1 addition & 1 deletion Documentation/devicetree/bindings/net/nfc/nxp-nci.txt
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ Example (for ARM-based BeagleBone with NPC100 NFC controller on I2C2):
clock-frequency = <100000>;

interrupt-parent = <&gpio1>;
interrupts = <29 GPIO_ACTIVE_HIGH>;
interrupts = <29 IRQ_TYPE_LEVEL_HIGH>;

enable-gpios = <&gpio0 30 GPIO_ACTIVE_HIGH>;
firmware-gpios = <&gpio0 31 GPIO_ACTIVE_HIGH>;
Expand Down
2 changes: 1 addition & 1 deletion Documentation/devicetree/bindings/net/nfc/pn544.txt
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ Example (for ARM-based BeagleBone with PN544 on I2C2):
clock-frequency = <400000>;

interrupt-parent = <&gpio1>;
interrupts = <17 GPIO_ACTIVE_HIGH>;
interrupts = <17 IRQ_TYPE_LEVEL_HIGH>;

enable-gpios = <&gpio3 21 GPIO_ACTIVE_HIGH>;
firmware-gpios = <&gpio3 19 GPIO_ACTIVE_HIGH>;
Expand Down
26 changes: 21 additions & 5 deletions MAINTAINERS
Original file line number Diff line number Diff line change
Expand Up @@ -3357,6 +3357,17 @@ S: Supported
F: arch/x86/net/
X: arch/x86/net/bpf_jit_comp32.c

BPF LSM (Security Audit and Enforcement using BPF)
M: KP Singh <kpsingh@chromium.org>
R: Florent Revest <revest@chromium.org>
R: Brendan Jackman <jackmanb@chromium.org>
L: bpf@vger.kernel.org
S: Maintained
F: Documentation/bpf/bpf_lsm.rst
F: include/linux/bpf_lsm.h
F: kernel/bpf/bpf_lsm.c
F: security/bpf/

BROADCOM B44 10/100 ETHERNET DRIVER
M: Michael Chan <michael.chan@broadcom.com>
L: netdev@vger.kernel.org
Expand Down Expand Up @@ -9069,10 +9080,7 @@ S: Supported
F: drivers/net/wireless/intel/iwlegacy/

INTEL WIRELESS WIFI LINK (iwlwifi)
M: Johannes Berg <johannes.berg@intel.com>
M: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
M: Luca Coelho <luciano.coelho@intel.com>
M: Intel Linux Wireless <linuxwifi@intel.com>
L: linux-wireless@vger.kernel.org
S: Supported
W: https://wireless.wiki.kernel.org/en/users/drivers/iwlwifi
Expand Down Expand Up @@ -19114,12 +19122,17 @@ L: netdev@vger.kernel.org
L: bpf@vger.kernel.org
S: Supported
F: include/net/xdp.h
F: include/net/xdp_priv.h
F: include/trace/events/xdp.h
F: kernel/bpf/cpumap.c
F: kernel/bpf/devmap.c
F: net/core/xdp.c
N: xdp
K: xdp
F: samples/bpf/xdp*
F: tools/testing/selftests/bpf/*xdp*
F: tools/testing/selftests/bpf/*/*xdp*
F: drivers/net/ethernet/*/*/*/*/*xdp*
F: drivers/net/ethernet/*/*/*xdp*
K: (?:\b|_)xdp(?:\b|_)

XDP SOCKETS (AF_XDP)
M: Björn Töpel <bjorn.topel@intel.com>
Expand All @@ -19128,9 +19141,12 @@ R: Jonathan Lemon <jonathan.lemon@gmail.com>
L: netdev@vger.kernel.org
L: bpf@vger.kernel.org
S: Maintained
F: Documentation/networking/af_xdp.rst
F: include/net/xdp_sock*
F: include/net/xsk_buff_pool.h
F: include/uapi/linux/if_xdp.h
F: include/uapi/linux/xdp_diag.h
F: include/net/netns/xdp.h
F: net/xdp/
F: samples/bpf/xdpsock*
F: tools/lib/bpf/xsk*
Expand Down
15 changes: 0 additions & 15 deletions arch/s390/kernel/entry.S
Original file line number Diff line number Diff line change
Expand Up @@ -763,12 +763,7 @@ ENTRY(io_int_handler)
xc __PT_FLAGS(8,%r11),__PT_FLAGS(%r11)
TSTMSK __LC_CPU_FLAGS,_CIF_IGNORE_IRQ
jo .Lio_restore
#if IS_ENABLED(CONFIG_TRACE_IRQFLAGS)
tmhh %r8,0x300
jz 1f
TRACE_IRQS_OFF
1:
#endif
xc __SF_BACKCHAIN(8,%r15),__SF_BACKCHAIN(%r15)
.Lio_loop:
lgr %r2,%r11 # pass pointer to pt_regs
Expand All @@ -791,12 +786,7 @@ ENTRY(io_int_handler)
TSTMSK __LC_CPU_FLAGS,_CIF_WORK
jnz .Lio_work
.Lio_restore:
#if IS_ENABLED(CONFIG_TRACE_IRQFLAGS)
tm __PT_PSW(%r11),3
jno 0f
TRACE_IRQS_ON
0:
#endif
mvc __LC_RETURN_PSW(16),__PT_PSW(%r11)
tm __PT_PSW+1(%r11),0x01 # returning to user ?
jno .Lio_exit_kernel
Expand Down Expand Up @@ -976,12 +966,7 @@ ENTRY(ext_int_handler)
xc __PT_FLAGS(8,%r11),__PT_FLAGS(%r11)
TSTMSK __LC_CPU_FLAGS,_CIF_IGNORE_IRQ
jo .Lio_restore
#if IS_ENABLED(CONFIG_TRACE_IRQFLAGS)
tmhh %r8,0x300
jz 1f
TRACE_IRQS_OFF
1:
#endif
xc __SF_BACKCHAIN(8,%r15),__SF_BACKCHAIN(%r15)
lgr %r2,%r11 # pass pointer to pt_regs
lghi %r3,EXT_INTERRUPT
Expand Down
5 changes: 2 additions & 3 deletions arch/s390/lib/delay.c
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ EXPORT_SYMBOL(__delay);

static void __udelay_disabled(unsigned long long usecs)
{
unsigned long cr0, cr0_new, psw_mask, flags;
unsigned long cr0, cr0_new, psw_mask;
struct s390_idle_data idle;
u64 end;

Expand All @@ -45,9 +45,8 @@ static void __udelay_disabled(unsigned long long usecs)
psw_mask = __extract_psw() | PSW_MASK_EXT | PSW_MASK_WAIT;
set_clock_comparator(end);
set_cpu_flag(CIF_IGNORE_IRQ);
local_irq_save(flags);
psw_idle(&idle, psw_mask);
local_irq_restore(flags);
trace_hardirqs_off();
clear_cpu_flag(CIF_IGNORE_IRQ);
set_clock_comparator(S390_lowcore.clock_comparator);
__ctl_load(cr0, 0, 0);
Expand Down
14 changes: 11 additions & 3 deletions arch/s390/pci/pci_irq.c
Original file line number Diff line number Diff line change
Expand Up @@ -103,9 +103,10 @@ static int zpci_set_irq_affinity(struct irq_data *data, const struct cpumask *de
{
struct msi_desc *entry = irq_get_msi_desc(data->irq);
struct msi_msg msg = entry->msg;
int cpu_addr = smp_cpu_get_cpu_address(cpumask_first(dest));

msg.address_lo &= 0xff0000ff;
msg.address_lo |= (cpumask_first(dest) << 8);
msg.address_lo |= (cpu_addr << 8);
pci_write_msi_msg(data->irq, &msg);

return IRQ_SET_MASK_OK;
Expand Down Expand Up @@ -238,6 +239,7 @@ int arch_setup_msi_irqs(struct pci_dev *pdev, int nvec, int type)
unsigned long bit;
struct msi_desc *msi;
struct msi_msg msg;
int cpu_addr;
int rc, irq;

zdev->aisb = -1UL;
Expand Down Expand Up @@ -287,9 +289,15 @@ int arch_setup_msi_irqs(struct pci_dev *pdev, int nvec, int type)
handle_percpu_irq);
msg.data = hwirq - bit;
if (irq_delivery == DIRECTED) {
if (msi->affinity)
cpu = cpumask_first(&msi->affinity->mask);
else
cpu = 0;
cpu_addr = smp_cpu_get_cpu_address(cpu);

msg.address_lo = zdev->msi_addr & 0xff0000ff;
msg.address_lo |= msi->affinity ?
(cpumask_first(&msi->affinity->mask) << 8) : 0;
msg.address_lo |= (cpu_addr << 8);

for_each_possible_cpu(cpu) {
airq_iv_set_data(zpci_ibv[cpu], hwirq, irq);
}
Expand Down
18 changes: 14 additions & 4 deletions drivers/net/can/c_can/c_can.c
Original file line number Diff line number Diff line change
Expand Up @@ -1295,12 +1295,22 @@ int c_can_power_up(struct net_device *dev)
time_after(time_out, jiffies))
cpu_relax();

if (time_after(jiffies, time_out))
return -ETIMEDOUT;
if (time_after(jiffies, time_out)) {
ret = -ETIMEDOUT;
goto err_out;
}

ret = c_can_start(dev);
if (!ret)
c_can_irq_control(priv, true);
if (ret)
goto err_out;

c_can_irq_control(priv, true);

return 0;

err_out:
c_can_reset_ram(priv, false);
c_can_pm_runtime_put_sync(priv);

return ret;
}
Expand Down
4 changes: 3 additions & 1 deletion drivers/net/can/kvaser_pciefd.c
Original file line number Diff line number Diff line change
Expand Up @@ -692,8 +692,10 @@ static int kvaser_pciefd_open(struct net_device *netdev)
return err;

err = kvaser_pciefd_bus_on(can);
if (err)
if (err) {
close_candev(netdev);
return err;
}

return 0;
}
Expand Down
11 changes: 3 additions & 8 deletions drivers/net/can/m_can/tcan4x5x.c
Original file line number Diff line number Diff line change
Expand Up @@ -489,18 +489,18 @@ static int tcan4x5x_can_probe(struct spi_device *spi)
spi->bits_per_word = 32;
ret = spi_setup(spi);
if (ret)
goto out_clk;
goto out_m_can_class_free_dev;

priv->regmap = devm_regmap_init(&spi->dev, &tcan4x5x_bus,
&spi->dev, &tcan4x5x_regmap);
if (IS_ERR(priv->regmap)) {
ret = PTR_ERR(priv->regmap);
goto out_clk;
goto out_m_can_class_free_dev;
}

ret = tcan4x5x_power_enable(priv->power, 1);
if (ret)
goto out_clk;
goto out_m_can_class_free_dev;

ret = tcan4x5x_parse_config(mcan_class);
if (ret)
Expand All @@ -519,11 +519,6 @@ static int tcan4x5x_can_probe(struct spi_device *spi)

out_power:
tcan4x5x_power_enable(priv->power, 0);
out_clk:
if (!IS_ERR(mcan_class->cclk)) {
clk_disable_unprepare(mcan_class->cclk);
clk_disable_unprepare(mcan_class->hclk);
}
out_m_can_class_free_dev:
m_can_class_free_dev(mcan_class->net);
dev_err(&spi->dev, "Probe failed, err=%d\n", ret);
Expand Down
1 change: 0 additions & 1 deletion drivers/net/can/sja1000/sja1000.c
Original file line number Diff line number Diff line change
Expand Up @@ -474,7 +474,6 @@ static int sja1000_err(struct net_device *dev, uint8_t isrc, uint8_t status)
netdev_dbg(dev, "arbitration lost interrupt\n");
alc = priv->read_reg(priv, SJA1000_ALC);
priv->can.can_stats.arbitration_lost++;
stats->tx_errors++;
cf->can_id |= CAN_ERR_LOSTARB;
cf->data[0] = alc & 0x1f;
}
Expand Down
1 change: 0 additions & 1 deletion drivers/net/can/sun4i_can.c
Original file line number Diff line number Diff line change
Expand Up @@ -604,7 +604,6 @@ static int sun4i_can_err(struct net_device *dev, u8 isrc, u8 status)
netdev_dbg(dev, "arbitration lost interrupt\n");
alc = readl(priv->base + SUN4I_REG_STA_ADDR);
priv->can.can_stats.arbitration_lost++;
stats->tx_errors++;
if (likely(skb)) {
cf->can_id |= CAN_ERR_LOSTARB;
cf->data[0] = (alc >> 8) & 0x1f;
Expand Down
1 change: 1 addition & 0 deletions drivers/net/ethernet/broadcom/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -88,6 +88,7 @@ config BNX2
config CNIC
tristate "QLogic CNIC support"
depends on PCI && (IPV6 || IPV6=n)
depends on MMU
select BNX2
select UIO
help
Expand Down
1 change: 1 addition & 0 deletions drivers/net/ethernet/chelsio/cxgb3/sge.c
Original file line number Diff line number Diff line change
Expand Up @@ -3175,6 +3175,7 @@ int t3_sge_alloc_qset(struct adapter *adapter, unsigned int id, int nports,
GFP_KERNEL | __GFP_COMP);
if (!avail) {
CH_ALERT(adapter, "free list queue 0 initialization failed\n");
ret = -ENOMEM;
goto err;
}
if (avail < q->fl[0].size)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -1206,6 +1206,7 @@ static struct sock *chtls_recv_sock(struct sock *lsk,
sk_setup_caps(newsk, dst);
ctx = tls_get_ctx(lsk);
newsk->sk_destruct = ctx->sk_destruct;
newsk->sk_prot_creator = lsk->sk_prot_creator;
csk->sk = newsk;
csk->passive_reap_next = oreq;
csk->tx_chan = cxgb4_port_chan(ndev);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -391,6 +391,7 @@ int chtls_setkey(struct chtls_sock *csk, u32 keylen,
csk->wr_unacked += DIV_ROUND_UP(len, 16);
enqueue_wr(csk, skb);
cxgb4_ofld_send(csk->egress_dev, skb);
skb = NULL;

chtls_set_scmd(csk);
/* Clear quiesce for Rx key */
Expand Down
10 changes: 9 additions & 1 deletion drivers/net/ethernet/freescale/dpaa/dpaa_eth.c
Original file line number Diff line number Diff line change
Expand Up @@ -2120,14 +2120,22 @@ static int dpaa_a050385_wa(struct net_device *net_dev, struct sk_buff **s)
skb_copy_header(new_skb, skb);
new_skb->dev = skb->dev;

/* Copy relevant timestamp info from the old skb to the new */
if (priv->tx_tstamp) {
skb_shinfo(new_skb)->tx_flags = skb_shinfo(skb)->tx_flags;
skb_shinfo(new_skb)->hwtstamps = skb_shinfo(skb)->hwtstamps;
skb_shinfo(new_skb)->tskey = skb_shinfo(skb)->tskey;
if (skb->sk)
skb_set_owner_w(new_skb, skb->sk);
}

/* We move the headroom when we align it so we have to reset the
* network and transport header offsets relative to the new data
* pointer. The checksum offload relies on these offsets.
*/
skb_set_network_header(new_skb, skb_network_offset(skb));
skb_set_transport_header(new_skb, skb_transport_offset(skb));

/* TODO: does timestamping need the result in the old skb? */
dev_kfree_skb(skb);
*s = new_skb;

Expand Down
Loading