summaryrefslogtreecommitdiff
path: root/net/core/dev.c
diff options
context:
space:
mode:
authorSrinivasarao P <spathi@codeaurora.org>2018-10-22 13:59:43 +0530
committerSrinivasarao P <spathi@codeaurora.org>2018-10-22 14:00:26 +0530
commit392854fb08079416d260c2c5ba6369391eda11d3 (patch)
tree42285ec908a4198122132b01300a4daf0e4e0dcb /net/core/dev.c
parent02d722f11f25bf90751ea82888850501cc255629 (diff)
parent3eb8e735195577476e7de568bd11c2832b47d1ad (diff)
Merge android-4.4.162 (3eb8e73) into msm-4.4
* refs/heads/tmp-3eb8e73 Linux 4.4.162 HV: properly delay KVP packets when negotiation is in progress Drivers: hv: kvp: fix IP Failover Drivers: hv: util: Pass the channel information during the init call Drivers: hv: utils: Invoke the poll function after handshake usb: gadget: serial: fix oops when data rx'd after close ARC: build: Get rid of toolchain check powerpc/tm: Avoid possible userspace r1 corruption on reclaim powerpc/tm: Fix userspace r13 corruption net/mlx4: Use cpumask_available for eq->affinity_mask Input: atakbd - fix Atari CapsLock behaviour Input: atakbd - fix Atari keymap clocksource/drivers/ti-32k: Add CLOCK_SOURCE_SUSPEND_NONSTOP flag for non-am43 SoCs media: af9035: prevent buffer overflow on write x86/fpu: Finish excising 'eagerfpu' x86/fpu: Remove struct fpu::counter x86/fpu: Remove use_eager_fpu() KVM: x86: remove eager_fpu field of struct kvm_vcpu_arch rtnl: limit IFLA_NUM_TX_QUEUES and IFLA_NUM_RX_QUEUES to 4096 net: systemport: Fix wake-up interrupt race during resume net: mvpp2: Extract the correct ethtype from the skb for tx csum offload team: Forbid enslaving team device to itself qlcnic: fix Tx descriptor corruption on 82xx devices net/usb: cancel pending work when unbinding smsc75xx netlabel: check for IPV4MASK in addrinfo_get net/ipv6: Display all addresses in output of /proc/net/if_inet6 net: ipv4: update fnhe_pmtu when first hop's MTU changes ipv4: fix use-after-free in ip_cmsg_recv_dstaddr() ip_tunnel: be careful when accessing the inner header ip6_tunnel: be careful when accessing the inner header bonding: avoid possible dead-lock bnxt_en: Fix TX timeout during netpoll. jffs2: return -ERANGE when xattr buffer is too small xhci: Don't print a warning when setting link state for disabled ports i2c: i2c-scmi: fix for i2c_smbus_write_block_data perf script python: Fix export-to-postgresql.py occasional failure mach64: detect the dot clock divider correctly on sparc mm/vmstat.c: fix outdated vmstat_text ext4: add corruption check in ext4_xattr_set_entry() drm/amdgpu: Fix SDMA HQD destroy error on gfx_v7 ARM: dts: at91: add new compatibility string for macb on sama5d3 net: macb: disable scatter-gather for macb on sama5d3 stmmac: fix valid numbers of unicast filter entries sound: enable interrupt after dma buffer initialization mfd: omap-usb-host: Fix dts probe of children selftests/efivarfs: add required kernel configs ASoC: sigmadsp: safeload should not have lower byte limit ASoC: wm8804: Add ACPI support ANDROID: usb: gadget: f_mtp: Return error if count is negative ANDROID: x86_64_cuttlefish_defconfig: disable CONFIG_MEMORY_STATE_TIME Change-Id: Ie69fd3f90302d1ebe0c1217b46d8033fec4180a5 Signed-off-by: Srinivasarao P <spathi@codeaurora.org>
Diffstat (limited to 'net/core/dev.c')
-rw-r--r--net/core/dev.c28
1 files changed, 26 insertions, 2 deletions
diff --git a/net/core/dev.c b/net/core/dev.c
index a2e903cee5c6..18035fa4db61 100644
--- a/net/core/dev.c
+++ b/net/core/dev.c
@@ -1662,6 +1662,28 @@ int call_netdevice_notifiers(unsigned long val, struct net_device *dev)
}
EXPORT_SYMBOL(call_netdevice_notifiers);
+/**
+ * call_netdevice_notifiers_mtu - call all network notifier blocks
+ * @val: value passed unmodified to notifier function
+ * @dev: net_device pointer passed unmodified to notifier function
+ * @arg: additional u32 argument passed to the notifier function
+ *
+ * Call all network notifier blocks. Parameters and return value
+ * are as for raw_notifier_call_chain().
+ */
+static int call_netdevice_notifiers_mtu(unsigned long val,
+ struct net_device *dev, u32 arg)
+{
+ struct netdev_notifier_info_ext info = {
+ .info.dev = dev,
+ .ext.mtu = arg,
+ };
+
+ BUILD_BUG_ON(offsetof(struct netdev_notifier_info_ext, info) != 0);
+
+ return call_netdevice_notifiers_info(val, dev, &info.info);
+}
+
#ifdef CONFIG_NET_INGRESS
static struct static_key ingress_needed __read_mostly;
@@ -6170,14 +6192,16 @@ int dev_set_mtu(struct net_device *dev, int new_mtu)
err = __dev_set_mtu(dev, new_mtu);
if (!err) {
- err = call_netdevice_notifiers(NETDEV_CHANGEMTU, dev);
+ err = call_netdevice_notifiers_mtu(NETDEV_CHANGEMTU, dev,
+ orig_mtu);
err = notifier_to_errno(err);
if (err) {
/* setting mtu back and notifying everyone again,
* so that they have a chance to revert changes.
*/
__dev_set_mtu(dev, orig_mtu);
- call_netdevice_notifiers(NETDEV_CHANGEMTU, dev);
+ call_netdevice_notifiers_mtu(NETDEV_CHANGEMTU, dev,
+ new_mtu);
}
}
return err;