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

Commit 6e158d21 authored by Linus Torvalds's avatar Linus Torvalds
Browse files
* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6: (40 commits)
  pxa168_eth: fix race in transmit path.
  ipv4, ping: Remove duplicate icmp.h include
  netxen: fix race in skb->len access
  sgi-xp: fix a use after free
  hp100: fix an skb->len race
  netpoll: copy dev name of slaves to struct netpoll
  ipv4: fix multicast losses
  r8169: fix static initializers.
  inet_diag: fix inet_diag_bc_audit()
  gigaset: call module_put before restart of if_open()
  farsync: add module_put to error path in fst_open()
  net: rfs: enable RFS before first data packet is received
  fs_enet: fix freescale FCC ethernet dp buffer alignment
  netdev: bfin_mac: fix memory leak when freeing dma descriptors
  vlan: don't call ndo_vlan_rx_register on hardware that doesn't have vlan support
  caif: Bugfix - XOFF removed channel from caif-mux
  tun: teach the tun/tap driver to support netpoll
  dp83640: drop PHY status frames in the driver.
  dp83640: fix phy status frame event parsing
  phylib: Allow BCM63XX PHY to be selected only on BCM63XX.
  ...
parents 36698206 38442040
Loading
Loading
Loading
Loading
+1 −2
Original line number Original line Diff line number Diff line
@@ -2291,8 +2291,7 @@ F: drivers/scsi/eata_pio.*


EBTABLES
EBTABLES
M:	Bart De Schuymer <bart.de.schuymer@pandora.be>
M:	Bart De Schuymer <bart.de.schuymer@pandora.be>
L:	ebtables-user@lists.sourceforge.net
L:	netfilter-devel@vger.kernel.org
L:	ebtables-devel@lists.sourceforge.net
W:	http://ebtables.sourceforge.net/
W:	http://ebtables.sourceforge.net/
S:	Maintained
S:	Maintained
F:	include/linux/netfilter_bridge/ebt_*.h
F:	include/linux/netfilter_bridge/ebt_*.h
+12 −0
Original line number Original line Diff line number Diff line
@@ -64,6 +64,8 @@ static ssize_t btmrvl_hscfgcmd_write(struct file *file,
		return -EFAULT;
		return -EFAULT;


	ret = strict_strtol(buf, 10, &result);
	ret = strict_strtol(buf, 10, &result);
	if (ret)
		return ret;


	priv->btmrvl_dev.hscfgcmd = result;
	priv->btmrvl_dev.hscfgcmd = result;


@@ -108,6 +110,8 @@ static ssize_t btmrvl_psmode_write(struct file *file, const char __user *ubuf,
		return -EFAULT;
		return -EFAULT;


	ret = strict_strtol(buf, 10, &result);
	ret = strict_strtol(buf, 10, &result);
	if (ret)
		return ret;


	priv->btmrvl_dev.psmode = result;
	priv->btmrvl_dev.psmode = result;


@@ -147,6 +151,8 @@ static ssize_t btmrvl_pscmd_write(struct file *file, const char __user *ubuf,
		return -EFAULT;
		return -EFAULT;


	ret = strict_strtol(buf, 10, &result);
	ret = strict_strtol(buf, 10, &result);
	if (ret)
		return ret;


	priv->btmrvl_dev.pscmd = result;
	priv->btmrvl_dev.pscmd = result;


@@ -191,6 +197,8 @@ static ssize_t btmrvl_gpiogap_write(struct file *file, const char __user *ubuf,
		return -EFAULT;
		return -EFAULT;


	ret = strict_strtol(buf, 16, &result);
	ret = strict_strtol(buf, 16, &result);
	if (ret)
		return ret;


	priv->btmrvl_dev.gpio_gap = result;
	priv->btmrvl_dev.gpio_gap = result;


@@ -230,6 +238,8 @@ static ssize_t btmrvl_hscmd_write(struct file *file, const char __user *ubuf,
		return -EFAULT;
		return -EFAULT;


	ret = strict_strtol(buf, 10, &result);
	ret = strict_strtol(buf, 10, &result);
	if (ret)
		return ret;


	priv->btmrvl_dev.hscmd = result;
	priv->btmrvl_dev.hscmd = result;
	if (priv->btmrvl_dev.hscmd) {
	if (priv->btmrvl_dev.hscmd) {
@@ -272,6 +282,8 @@ static ssize_t btmrvl_hsmode_write(struct file *file, const char __user *ubuf,
		return -EFAULT;
		return -EFAULT;


	ret = strict_strtol(buf, 10, &result);
	ret = strict_strtol(buf, 10, &result);
	if (ret)
		return ret;


	priv->btmrvl_dev.hsmode = result;
	priv->btmrvl_dev.hsmode = result;


+3 −1
Original line number Original line Diff line number Diff line
@@ -156,8 +156,10 @@ static int if_open(struct tty_struct *tty, struct file *filp)
	if (!cs || !try_module_get(cs->driver->owner))
	if (!cs || !try_module_get(cs->driver->owner))
		return -ENODEV;
		return -ENODEV;


	if (mutex_lock_interruptible(&cs->mutex))
	if (mutex_lock_interruptible(&cs->mutex)) {
		module_put(cs->driver->owner);
		return -ERESTARTSYS;
		return -ERESTARTSYS;
	}
	tty->driver_data = cs;
	tty->driver_data = cs;


	++cs->open_count;
	++cs->open_count;
+3 −3
Original line number Original line Diff line number Diff line
@@ -495,14 +495,14 @@ xpnet_dev_hard_start_xmit(struct sk_buff *skb, struct net_device *dev)
		}
		}
	}
	}


	dev->stats.tx_packets++;
	dev->stats.tx_bytes += skb->len;

	if (atomic_dec_return(&queued_msg->use_count) == 0) {
	if (atomic_dec_return(&queued_msg->use_count) == 0) {
		dev_kfree_skb(skb);
		dev_kfree_skb(skb);
		kfree(queued_msg);
		kfree(queued_msg);
	}
	}


	dev->stats.tx_packets++;
	dev->stats.tx_bytes += skb->len;

	return NETDEV_TX_OK;
	return NETDEV_TX_OK;
}
}


+2 −1
Original line number Original line Diff line number Diff line
@@ -412,7 +412,7 @@ el2_open(struct net_device *dev)
		outb_p(0x04 << ((*irqp == 9) ? 2 : *irqp), E33G_IDCFR);
		outb_p(0x04 << ((*irqp == 9) ? 2 : *irqp), E33G_IDCFR);
		outb_p(0x00, E33G_IDCFR);
		outb_p(0x00, E33G_IDCFR);
		msleep(1);
		msleep(1);
		free_irq(*irqp, el2_probe_interrupt);
		free_irq(*irqp, &seen);
		if (!seen)
		if (!seen)
			continue;
			continue;


@@ -422,6 +422,7 @@ el2_open(struct net_device *dev)
			continue;
			continue;
		if (retval < 0)
		if (retval < 0)
			goto err_disable;
			goto err_disable;
		break;
	} while (*++irqp);
	} while (*++irqp);


	if (*irqp == 0) {
	if (*irqp == 0) {
Loading