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

Commit 703071b5 authored by Linus Torvalds's avatar Linus Torvalds
Browse files

Merge master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6

* master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6:
  [SUNGEM]: Fix MAC address setting when interface is up.
  [IPV4] fib_trie: Document locking.
  [NET]: Correct accept(2) recovery after sock_attach_fd()
  [PPP]: Don't leak an sk_buff on interface destruction.
  [NET_SCHED]: Fix ingress locking
  [NET_SCHED]: cls_basic: fix NULL pointer dereference
  [DCCP]: make dccp_write_xmit_timer() static again
  [TG3]: Update version and reldate.
  [TG3]: Exit irq handler during chip reset.
  [TG3]: Eliminate the unused TG3_FLAG_SPLIT_MODE flag.
  [IPV6]: Fix routing round-robin locking.
  [DECNet] fib: Fix out of bound access of dn_fib_props[]
  [IPv4] fib: Fix out of bound access of fib_props[]
  [NET] AX.25 Kconfig and docs updates and fixes
  [NET]: Fix neighbour destructor handling.
  [NET]: Fix fib_rules compatibility breakage
  [SCTP]: Update SCTP Maintainers entry
  [NET]: remove unused header file: drivers/net/wan/lmc/lmc_media.h
parents 6288c338 09c72ec8
Loading
Loading
Loading
Loading
+6 −12
Original line number Original line Diff line number Diff line
To use the amateur radio protocols within Linux you will need to get a
To use the amateur radio protocols within Linux you will need to get a
suitable copy of the AX.25 Utilities. More detailed information about these
suitable copy of the AX.25 Utilities. More detailed information about
and associated programs can be found on http://zone.pspt.fi/~jsn/.
AX.25, NET/ROM and ROSE, associated programs and and utilities can be

found on http://www.linux-ax25.org.
For more information about the AX.25, NET/ROM and ROSE protocol stacks, see
the AX25-HOWTO written by Terry Dawson <terry@perf.no.itg.telstra.com.au>
who is also the AX.25 Utilities maintainer.


There is an active mailing list for discussing Linux amateur radio matters
There is an active mailing list for discussing Linux amateur radio matters
called linux-hams. To subscribe to it, send a message to
called linux-hams@vger.kernel.org. To subscribe to it, send a message to
majordomo@vger.kernel.org with the words "subscribe linux-hams" in the body
majordomo@vger.kernel.org with the words "subscribe linux-hams" in the body
of the message, the subject field is ignored.
of the message, the subject field is ignored.  You don't need to be

subscribed to post but of course that means you might miss an answer.
Jonathan G4KLX

g4klx@g4klx.demon.co.uk
+3 −0
Original line number Original line Diff line number Diff line
@@ -2928,9 +2928,12 @@ L: linux-scsi@vger.kernel.org
S:	Maintained
S:	Maintained


SCTP PROTOCOL
SCTP PROTOCOL
P:	Vlad Yasevich
M:	vladislav.yasevich@hp.com
P:	Sridhar Samudrala
P:	Sridhar Samudrala
M:	sri@us.ibm.com
M:	sri@us.ibm.com
L:	lksctp-developers@lists.sourceforge.net
L:	lksctp-developers@lists.sourceforge.net
W:	http://lksctp.sourceforge.net
S:	Supported
S:	Supported


SCx200 CPU SUPPORT
SCx200 CPU SUPPORT
+3 −3
Original line number Original line Diff line number Diff line
@@ -814,7 +814,7 @@ static void ipoib_set_mcast_list(struct net_device *dev)
	queue_work(ipoib_workqueue, &priv->restart_task);
	queue_work(ipoib_workqueue, &priv->restart_task);
}
}


static void ipoib_neigh_destructor(struct neighbour *n)
static void ipoib_neigh_cleanup(struct neighbour *n)
{
{
	struct ipoib_neigh *neigh;
	struct ipoib_neigh *neigh;
	struct ipoib_dev_priv *priv = netdev_priv(n->dev);
	struct ipoib_dev_priv *priv = netdev_priv(n->dev);
@@ -822,7 +822,7 @@ static void ipoib_neigh_destructor(struct neighbour *n)
	struct ipoib_ah *ah = NULL;
	struct ipoib_ah *ah = NULL;


	ipoib_dbg(priv,
	ipoib_dbg(priv,
		  "neigh_destructor for %06x " IPOIB_GID_FMT "\n",
		  "neigh_cleanup for %06x " IPOIB_GID_FMT "\n",
		  IPOIB_QPN(n->ha),
		  IPOIB_QPN(n->ha),
		  IPOIB_GID_RAW_ARG(n->ha + 4));
		  IPOIB_GID_RAW_ARG(n->ha + 4));


@@ -874,7 +874,7 @@ void ipoib_neigh_free(struct net_device *dev, struct ipoib_neigh *neigh)


static int ipoib_neigh_setup_dev(struct net_device *dev, struct neigh_parms *parms)
static int ipoib_neigh_setup_dev(struct net_device *dev, struct neigh_parms *parms)
{
{
	parms->neigh_destructor = ipoib_neigh_destructor;
	parms->neigh_cleanup = ipoib_neigh_cleanup;


	return 0;
	return 0;
}
}
+3 −0
Original line number Original line Diff line number Diff line
@@ -2544,6 +2544,9 @@ static void ppp_destroy_interface(struct ppp *ppp)
	ppp->active_filter = NULL;
	ppp->active_filter = NULL;
#endif /* CONFIG_PPP_FILTER */
#endif /* CONFIG_PPP_FILTER */


	if (ppp->xmit_pending)
		kfree_skb(ppp->xmit_pending);

	kfree(ppp);
	kfree(ppp);
}
}


+30 −0
Original line number Original line Diff line number Diff line
@@ -2530,6 +2530,35 @@ static struct net_device_stats *gem_get_stats(struct net_device *dev)
	return &gp->net_stats;
	return &gp->net_stats;
}
}


static int gem_set_mac_address(struct net_device *dev, void *addr)
{
	struct sockaddr *macaddr = (struct sockaddr *) addr;
	struct gem *gp = dev->priv;
	unsigned char *e = &dev->dev_addr[0];

	if (!is_valid_ether_addr(macaddr->sa_data))
		return -EADDRNOTAVAIL;

	if (!netif_running(dev) || !netif_device_present(dev)) {
		/* We'll just catch it later when the
		 * device is up'd or resumed.
		 */
		memcpy(dev->dev_addr, macaddr->sa_data, dev->addr_len);
		return 0;
	}

	mutex_lock(&gp->pm_mutex);
	memcpy(dev->dev_addr, macaddr->sa_data, dev->addr_len);
	if (gp->running) {
		writel((e[4] << 8) | e[5], gp->regs + MAC_ADDR0);
		writel((e[2] << 8) | e[3], gp->regs + MAC_ADDR1);
		writel((e[0] << 8) | e[1], gp->regs + MAC_ADDR2);
	}
	mutex_unlock(&gp->pm_mutex);

	return 0;
}

static void gem_set_multicast(struct net_device *dev)
static void gem_set_multicast(struct net_device *dev)
{
{
	struct gem *gp = dev->priv;
	struct gem *gp = dev->priv;
@@ -3122,6 +3151,7 @@ static int __devinit gem_init_one(struct pci_dev *pdev,
	dev->change_mtu = gem_change_mtu;
	dev->change_mtu = gem_change_mtu;
	dev->irq = pdev->irq;
	dev->irq = pdev->irq;
	dev->dma = 0;
	dev->dma = 0;
	dev->set_mac_address = gem_set_mac_address;
#ifdef CONFIG_NET_POLL_CONTROLLER
#ifdef CONFIG_NET_POLL_CONTROLLER
	dev->poll_controller = gem_poll_controller;
	dev->poll_controller = gem_poll_controller;
#endif
#endif
Loading