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

Commit 391e572c authored by Linus Torvalds's avatar Linus Torvalds
Browse files
* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6: (33 commits)
  af_unix: netns: fix problem of return value
  IRDA: remove double inclusion of module.h
  udp: multicast packets need to check namespace
  net: add documentation for skb recycling
  key: fix setkey(8) policy set breakage
  bpa10x: free sk_buff with kfree_skb
  xfrm: do not leak ESRCH to user space
  net: Really remove all of LOOPBACK_TSO code.
  netfilter: nf_conntrack_proto_gre: switch to register_pernet_gen_subsys()
  netns: add register_pernet_gen_subsys/unregister_pernet_gen_subsys
  net: delete excess kernel-doc notation
  pppoe: Fix socket leak.
  gianfar: Don't reset TBI<->SerDes link if it's already up
  gianfar: Fix race in TBI/SerDes configuration
  at91_ether: request/free GPIO for PHY interrupt
  amd8111e: fix dma_free_coherent context
  atl1: fix vlan tag regression
  SMC91x: delete unused local variable "lp"
  myri10ge: fix stop/go mmio ordering
  bonding: fix panic when taking bond interface down before removing module
  ...
parents 4ac96572 48dcc33e
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -743,6 +743,8 @@ P: Nick Kossifidis
M:	mickflemm@gmail.com
P:	Luis R. Rodriguez
M:	mcgrof@gmail.com
P:	Bob Copeland
M:	me@bobcopeland.com
L:	linux-wireless@vger.kernel.org
L:	ath5k-devel@lists.ath5k.org
S:	Maintained
+26 −0
Original line number Diff line number Diff line
@@ -223,6 +223,8 @@ static int gfar_mdio_of_init_one(struct device_node *np)
	if (ret)
		return ret;

	/* The gianfar device will try to use the same ID created below to find
	 * this bus, to coordinate register access (since they share).  */
	mdio_dev = platform_device_register_simple("fsl-gianfar_mdio",
			res.start&0xfffff, &res, 1);
	if (IS_ERR(mdio_dev))
@@ -394,6 +396,30 @@ static int __init gfar_of_init(void)
			of_node_put(mdio);
		}

		/* Get MDIO bus controlled by this eTSEC, if any.  Normally only
		 * eTSEC 1 will control an MDIO bus, not necessarily the same
		 * bus that its PHY is on ('mdio' above), so we can't just use
		 * that.  What we do is look for a gianfar mdio device that has
		 * overlapping registers with this device.  That's really the
		 * whole point, to find the device sharing our registers to
		 * coordinate access with it.
		 */
		for_each_compatible_node(mdio, NULL, "fsl,gianfar-mdio") {
			if (of_address_to_resource(mdio, 0, &res))
				continue;

			if (res.start >= r[0].start && res.end <= r[0].end) {
				/* Get the ID the mdio bus platform device was
				 * registered with.  gfar_data.bus_id is
				 * different because it's for finding a PHY,
				 * while this is for finding a MII bus.
				 */
				gfar_data.mdio_bus = res.start&0xfffff;
				of_node_put(mdio);
				break;
			}
		}

		ret =
		    platform_device_add_data(gfar_dev, &gfar_data,
					     sizeof(struct
+2 −2
Original line number Diff line number Diff line
@@ -443,8 +443,8 @@ static void bpa10x_destruct(struct hci_dev *hdev)

	BT_DBG("%s", hdev->name);

	kfree(data->rx_skb[0]);
	kfree(data->rx_skb[1]);
	kfree_skb(data->rx_skb[0]);
	kfree_skb(data->rx_skb[1]);
	kfree(data);
}

+4 −5
Original line number Diff line number Diff line
@@ -644,10 +644,6 @@ This function frees the transmiter and receiver descriptor rings.
*/
static void amd8111e_free_ring(struct amd8111e_priv* lp)
{

	/* Free transmit and receive skbs */
	amd8111e_free_skbs(lp->amd8111e_net_dev);

	/* Free transmit and receive descriptor rings */
	if(lp->rx_ring){
		pci_free_consistent(lp->pci_dev,
@@ -1233,7 +1229,9 @@ static int amd8111e_close(struct net_device * dev)

	amd8111e_disable_interrupt(lp);
	amd8111e_stop_chip(lp);
	amd8111e_free_ring(lp);

	/* Free transmit and receive skbs */
	amd8111e_free_skbs(lp->amd8111e_net_dev);

	netif_carrier_off(lp->amd8111e_net_dev);

@@ -1243,6 +1241,7 @@ static int amd8111e_close(struct net_device * dev)

	spin_unlock_irq(&lp->lock);
	free_irq(dev->irq, dev);
	amd8111e_free_ring(lp);

	/* Update the statistics before closing */
	amd8111e_get_stats(dev);
+5 −1
Original line number Diff line number Diff line
@@ -1080,7 +1080,8 @@ static int __init at91ether_setup(unsigned long phy_type, unsigned short phy_add
		init_timer(&lp->check_timer);
		lp->check_timer.data = (unsigned long)dev;
		lp->check_timer.function = at91ether_check_link;
	}
	} else if (lp->board_data.phy_irq_pin >= 32)
		gpio_request(lp->board_data.phy_irq_pin, "ethernet_phy");

	/* Display ethernet banner */
	printk(KERN_INFO "%s: AT91 ethernet at 0x%08x int=%d %s%s (%s)\n",
@@ -1167,6 +1168,9 @@ static int __devexit at91ether_remove(struct platform_device *pdev)
	struct net_device *dev = platform_get_drvdata(pdev);
	struct at91_private *lp = netdev_priv(dev);

	if (lp->board_data.phy_irq_pin >= 32)
		gpio_free(lp->board_data.phy_irq_pin);

	unregister_netdev(dev);
	free_irq(dev->irq, dev);
	dma_free_coherent(NULL, sizeof(struct recv_desc_bufs), lp->dlist, (dma_addr_t)lp->dlist_phys);
Loading