Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 5983fe2b authored by Linus Torvalds's avatar Linus Torvalds
Browse files
* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net: (73 commits)
  netfilter: Remove ADVANCED dependency from NF_CONNTRACK_NETBIOS_NS
  ipv4: flush route cache after change accept_local
  sch_red: fix red_change
  Revert "udp: remove redundant variable"
  bridge: master device stuck in no-carrier state forever when in user-stp mode
  ipv4: Perform peer validation on cached route lookup.
  net/core: fix rollback handler in register_netdevice_notifier
  sch_red: fix red_calc_qavg_from_idle_time
  bonding: only use primary address for ARP
  ipv4: fix lockdep splat in rt_cache_seq_show
  sch_teql: fix lockdep splat
  net: fec: Select the FEC driver by default for i.MX SoCs
  isdn: avoid copying too long drvid
  isdn: make sure strings are null terminated
  netlabel: Fix build problems when IPv6 is not enabled
  sctp: better integer overflow check in sctp_auth_create_key()
  sctp: integer overflow in sctp_auth_create_key()
  ipv6: Set mcast_hops to IPV6_DEFAULT_MCASTHOPS when -1 was given.
  net: Fix corruption in /proc/*/net/dev_mcast
  mac80211: fix race between the AGG SM and the Tx data path
  ...
parents 5611cc45 3ced1be5
Loading
Loading
Loading
Loading
+6 −0
Original line number Original line Diff line number Diff line
@@ -242,6 +242,12 @@ static int isdn_divert_ioctl_unlocked(struct file *file, uint cmd, ulong arg)
		case IIOCDOCFINT:
		case IIOCDOCFINT:
			if (!divert_if.drv_to_name(dioctl.cf_ctrl.drvid))
			if (!divert_if.drv_to_name(dioctl.cf_ctrl.drvid))
				return (-EINVAL);	/* invalid driver */
				return (-EINVAL);	/* invalid driver */
			if (strnlen(dioctl.cf_ctrl.msn, sizeof(dioctl.cf_ctrl.msn)) ==
					sizeof(dioctl.cf_ctrl.msn))
				return -EINVAL;
			if (strnlen(dioctl.cf_ctrl.fwd_nr, sizeof(dioctl.cf_ctrl.fwd_nr)) ==
					sizeof(dioctl.cf_ctrl.fwd_nr))
				return -EINVAL;
			if ((i = cf_command(dioctl.cf_ctrl.drvid,
			if ((i = cf_command(dioctl.cf_ctrl.drvid,
					    (cmd == IIOCDOCFACT) ? 1 : (cmd == IIOCDOCFDIS) ? 0 : 2,
					    (cmd == IIOCDOCFACT) ? 1 : (cmd == IIOCDOCFDIS) ? 0 : 2,
					    dioctl.cf_ctrl.cfproc,
					    dioctl.cf_ctrl.cfproc,
+3 −0
Original line number Original line Diff line number Diff line
@@ -2756,6 +2756,9 @@ isdn_net_setcfg(isdn_net_ioctl_cfg * cfg)
			char *c,
			char *c,
			*e;
			*e;


			if (strnlen(cfg->drvid, sizeof(cfg->drvid)) ==
					sizeof(cfg->drvid))
				return -EINVAL;
			drvidx = -1;
			drvidx = -1;
			chidx = -1;
			chidx = -1;
			strcpy(drvid, cfg->drvid);
			strcpy(drvid, cfg->drvid);
+1 −1
Original line number Original line Diff line number Diff line
@@ -4,7 +4,7 @@


menuconfig ARCNET
menuconfig ARCNET
	depends on NETDEVICES && (ISA || PCI || PCMCIA)
	depends on NETDEVICES && (ISA || PCI || PCMCIA)
	bool "ARCnet support"
	tristate "ARCnet support"
	---help---
	---help---
	  If you have a network card of this type, say Y and check out the
	  If you have a network card of this type, say Y and check out the
	  (arguably) beautiful poetry in
	  (arguably) beautiful poetry in
+6 −27
Original line number Original line Diff line number Diff line
@@ -2553,30 +2553,6 @@ void bond_mii_monitor(struct work_struct *work)
	}
	}
}
}


static __be32 bond_glean_dev_ip(struct net_device *dev)
{
	struct in_device *idev;
	struct in_ifaddr *ifa;
	__be32 addr = 0;

	if (!dev)
		return 0;

	rcu_read_lock();
	idev = __in_dev_get_rcu(dev);
	if (!idev)
		goto out;

	ifa = idev->ifa_list;
	if (!ifa)
		goto out;

	addr = ifa->ifa_local;
out:
	rcu_read_unlock();
	return addr;
}

static int bond_has_this_ip(struct bonding *bond, __be32 ip)
static int bond_has_this_ip(struct bonding *bond, __be32 ip)
{
{
	struct vlan_entry *vlan;
	struct vlan_entry *vlan;
@@ -3322,6 +3298,10 @@ static int bond_inetaddr_event(struct notifier_block *this, unsigned long event,
	struct bonding *bond;
	struct bonding *bond;
	struct vlan_entry *vlan;
	struct vlan_entry *vlan;


	/* we only care about primary address */
	if(ifa->ifa_flags & IFA_F_SECONDARY)
		return NOTIFY_DONE;

	list_for_each_entry(bond, &bn->dev_list, bond_list) {
	list_for_each_entry(bond, &bn->dev_list, bond_list) {
		if (bond->dev == event_dev) {
		if (bond->dev == event_dev) {
			switch (event) {
			switch (event) {
@@ -3329,7 +3309,7 @@ static int bond_inetaddr_event(struct notifier_block *this, unsigned long event,
				bond->master_ip = ifa->ifa_local;
				bond->master_ip = ifa->ifa_local;
				return NOTIFY_OK;
				return NOTIFY_OK;
			case NETDEV_DOWN:
			case NETDEV_DOWN:
				bond->master_ip = bond_glean_dev_ip(bond->dev);
				bond->master_ip = 0;
				return NOTIFY_OK;
				return NOTIFY_OK;
			default:
			default:
				return NOTIFY_DONE;
				return NOTIFY_DONE;
@@ -3345,8 +3325,7 @@ static int bond_inetaddr_event(struct notifier_block *this, unsigned long event,
					vlan->vlan_ip = ifa->ifa_local;
					vlan->vlan_ip = ifa->ifa_local;
					return NOTIFY_OK;
					return NOTIFY_OK;
				case NETDEV_DOWN:
				case NETDEV_DOWN:
					vlan->vlan_ip =
					vlan->vlan_ip = 0;
						bond_glean_dev_ip(vlan_dev);
					return NOTIFY_OK;
					return NOTIFY_OK;
				default:
				default:
					return NOTIFY_DONE;
					return NOTIFY_DONE;
+0 −1
Original line number Original line Diff line number Diff line
@@ -20,7 +20,6 @@
 */
 */


#include <linux/kernel.h>
#include <linux/kernel.h>
#include <linux/version.h>
#include <linux/module.h>
#include <linux/module.h>
#include <linux/interrupt.h>
#include <linux/interrupt.h>
#include <linux/netdevice.h>
#include <linux/netdevice.h>
Loading