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

Commit 0e833d8c 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)
  tg3: Fix tg3_skb_error_unmap()
  net: tracepoint of net_dev_xmit sees freed skb and causes panic
  drivers/net/can/flexcan.c: add missing clk_put
  net: dm9000: Get the chip in a known good state before enabling interrupts
  drivers/net/davinci_emac.c: add missing clk_put
  af-packet: Add flag to distinguish VID 0 from no-vlan.
  caif: Fix race when conditionally taking rtnl lock
  usbnet/cdc_ncm: add missing .reset_resume hook
  vlan: fix typo in vlan_dev_hard_start_xmit()
  net/ipv4: Check for mistakenly passed in non-IPv4 address
  iwl4965: correctly validate temperature value
  bluetooth l2cap: fix locking in l2cap_global_chan_by_psm
  ath9k: fix two more bugs in tx power
  cfg80211: don't drop p2p probe responses
  Revert "net: fix section mismatches"
  drivers/net/usb/catc.c: Fix potential deadlock in catc_ctrl_run()
  sctp: stop pending timers and purge queues when peer restart asoc
  drivers/net: ks8842 Fix crash on received packet when in PIO mode.
  ip_options_compile: properly handle unaligned pointer
  iwlagn: fix incorrect PCI subsystem id for 6150 devices
  ...
parents 4f1ba49e 7b29dc21
Loading
Loading
Loading
Loading
+7 −7
Original line number Original line Diff line number Diff line
@@ -185,7 +185,7 @@ static int max_interrupt_work = 10;
static int nopnp;
static int nopnp;
#endif
#endif


static int el3_common_init(struct net_device *dev);
static int __devinit el3_common_init(struct net_device *dev);
static void el3_common_remove(struct net_device *dev);
static void el3_common_remove(struct net_device *dev);
static ushort id_read_eeprom(int index);
static ushort id_read_eeprom(int index);
static ushort read_eeprom(int ioaddr, int index);
static ushort read_eeprom(int ioaddr, int index);
@@ -395,7 +395,7 @@ static struct isa_driver el3_isa_driver = {
static int isa_registered;
static int isa_registered;


#ifdef CONFIG_PNP
#ifdef CONFIG_PNP
static const struct pnp_device_id el3_pnp_ids[] __devinitconst = {
static struct pnp_device_id el3_pnp_ids[] = {
	{ .id = "TCM5090" }, /* 3Com Etherlink III (TP) */
	{ .id = "TCM5090" }, /* 3Com Etherlink III (TP) */
	{ .id = "TCM5091" }, /* 3Com Etherlink III */
	{ .id = "TCM5091" }, /* 3Com Etherlink III */
	{ .id = "TCM5094" }, /* 3Com Etherlink III (combo) */
	{ .id = "TCM5094" }, /* 3Com Etherlink III (combo) */
@@ -478,7 +478,7 @@ static int pnp_registered;
#endif /* CONFIG_PNP */
#endif /* CONFIG_PNP */


#ifdef CONFIG_EISA
#ifdef CONFIG_EISA
static const struct eisa_device_id el3_eisa_ids[] __devinitconst = {
static struct eisa_device_id el3_eisa_ids[] = {
		{ "TCM5090" },
		{ "TCM5090" },
		{ "TCM5091" },
		{ "TCM5091" },
		{ "TCM5092" },
		{ "TCM5092" },
@@ -508,7 +508,7 @@ static int eisa_registered;
#ifdef CONFIG_MCA
#ifdef CONFIG_MCA
static int el3_mca_probe(struct device *dev);
static int el3_mca_probe(struct device *dev);


static const short el3_mca_adapter_ids[] __devinitconst = {
static short el3_mca_adapter_ids[] __initdata = {
		0x627c,
		0x627c,
		0x627d,
		0x627d,
		0x62db,
		0x62db,
@@ -517,7 +517,7 @@ static const short el3_mca_adapter_ids[] __devinitconst = {
		0x0000
		0x0000
};
};


static const char *const el3_mca_adapter_names[] __devinitconst = {
static char *el3_mca_adapter_names[] __initdata = {
		"3Com 3c529 EtherLink III (10base2)",
		"3Com 3c529 EtherLink III (10base2)",
		"3Com 3c529 EtherLink III (10baseT)",
		"3Com 3c529 EtherLink III (10baseT)",
		"3Com 3c529 EtherLink III (test mode)",
		"3Com 3c529 EtherLink III (test mode)",
@@ -601,7 +601,7 @@ static void el3_common_remove (struct net_device *dev)
}
}


#ifdef CONFIG_MCA
#ifdef CONFIG_MCA
static int __devinit el3_mca_probe(struct device *device)
static int __init el3_mca_probe(struct device *device)
{
{
	/* Based on Erik Nygren's (nygren@mit.edu) 3c529 patch,
	/* Based on Erik Nygren's (nygren@mit.edu) 3c529 patch,
	 * heavily modified by Chris Beauregard
	 * heavily modified by Chris Beauregard
@@ -671,7 +671,7 @@ static int __devinit el3_mca_probe(struct device *device)
#endif /* CONFIG_MCA */
#endif /* CONFIG_MCA */


#ifdef CONFIG_EISA
#ifdef CONFIG_EISA
static int __devinit el3_eisa_probe (struct device *device)
static int __init el3_eisa_probe (struct device *device)
{
{
	short i;
	short i;
	int ioaddr, irq, if_port;
	int ioaddr, irq, if_port;
+2 −2
Original line number Original line Diff line number Diff line
@@ -901,14 +901,14 @@ static const struct dev_pm_ops vortex_pm_ops = {
#endif /* !CONFIG_PM */
#endif /* !CONFIG_PM */


#ifdef CONFIG_EISA
#ifdef CONFIG_EISA
static const struct eisa_device_id vortex_eisa_ids[] __devinitconst = {
static struct eisa_device_id vortex_eisa_ids[] = {
	{ "TCM5920", CH_3C592 },
	{ "TCM5920", CH_3C592 },
	{ "TCM5970", CH_3C597 },
	{ "TCM5970", CH_3C597 },
	{ "" }
	{ "" }
};
};
MODULE_DEVICE_TABLE(eisa, vortex_eisa_ids);
MODULE_DEVICE_TABLE(eisa, vortex_eisa_ids);


static int __devinit vortex_eisa_probe(struct device *device)
static int __init vortex_eisa_probe(struct device *device)
{
{
	void __iomem *ioaddr;
	void __iomem *ioaddr;
	struct eisa_device *edev;
	struct eisa_device *edev;
+2 −3
Original line number Original line Diff line number Diff line
@@ -923,7 +923,7 @@ static int __devinit flexcan_probe(struct platform_device *pdev)
	mem_size = resource_size(mem);
	mem_size = resource_size(mem);
	if (!request_mem_region(mem->start, mem_size, pdev->name)) {
	if (!request_mem_region(mem->start, mem_size, pdev->name)) {
		err = -EBUSY;
		err = -EBUSY;
		goto failed_req;
		goto failed_get;
	}
	}


	base = ioremap(mem->start, mem_size);
	base = ioremap(mem->start, mem_size);
@@ -977,9 +977,8 @@ static int __devinit flexcan_probe(struct platform_device *pdev)
	iounmap(base);
	iounmap(base);
 failed_map:
 failed_map:
	release_mem_region(mem->start, mem_size);
	release_mem_region(mem->start, mem_size);
 failed_req:
	clk_put(clk);
 failed_get:
 failed_get:
	clk_put(clk);
 failed_clock:
 failed_clock:
	return err;
	return err;
}
}
+6 −4
Original line number Original line Diff line number Diff line
@@ -1781,8 +1781,8 @@ static int __devinit davinci_emac_probe(struct platform_device *pdev)
	ndev = alloc_etherdev(sizeof(struct emac_priv));
	ndev = alloc_etherdev(sizeof(struct emac_priv));
	if (!ndev) {
	if (!ndev) {
		dev_err(&pdev->dev, "error allocating net_device\n");
		dev_err(&pdev->dev, "error allocating net_device\n");
		clk_put(emac_clk);
		rc = -ENOMEM;
		return -ENOMEM;
		goto free_clk;
	}
	}


	platform_set_drvdata(pdev, ndev);
	platform_set_drvdata(pdev, ndev);
@@ -1796,7 +1796,8 @@ static int __devinit davinci_emac_probe(struct platform_device *pdev)
	pdata = pdev->dev.platform_data;
	pdata = pdev->dev.platform_data;
	if (!pdata) {
	if (!pdata) {
		dev_err(&pdev->dev, "no platform data\n");
		dev_err(&pdev->dev, "no platform data\n");
		return -ENODEV;
		rc = -ENODEV;
		goto probe_quit;
	}
	}


	/* MAC addr and PHY mask , RMII enable info from platform_data */
	/* MAC addr and PHY mask , RMII enable info from platform_data */
@@ -1929,8 +1930,9 @@ static int __devinit davinci_emac_probe(struct platform_device *pdev)
	iounmap(priv->remap_addr);
	iounmap(priv->remap_addr);


probe_quit:
probe_quit:
	clk_put(emac_clk);
	free_netdev(ndev);
	free_netdev(ndev);
free_clk:
	clk_put(emac_clk);
	return rc;
	return rc;
}
}


+17 −18
Original line number Original line Diff line number Diff line
@@ -331,18 +331,18 @@ static struct {
                         "DE422",\
                         "DE422",\
                         ""}
                         ""}


static const char* const depca_signature[] __devinitconst = DEPCA_SIGNATURE;
static char* __initdata depca_signature[] = DEPCA_SIGNATURE;


enum depca_type {
enum depca_type {
	DEPCA, de100, de101, de200, de201, de202, de210, de212, de422, unknown
	DEPCA, de100, de101, de200, de201, de202, de210, de212, de422, unknown
};
};


static const char depca_string[] = "depca";
static char depca_string[] = "depca";


static int depca_device_remove (struct device *device);
static int depca_device_remove (struct device *device);


#ifdef CONFIG_EISA
#ifdef CONFIG_EISA
static const struct eisa_device_id depca_eisa_ids[] __devinitconst = {
static struct eisa_device_id depca_eisa_ids[] = {
	{ "DEC4220", de422 },
	{ "DEC4220", de422 },
	{ "" }
	{ "" }
};
};
@@ -367,19 +367,19 @@ static struct eisa_driver depca_eisa_driver = {
#define DE210_ID 0x628d
#define DE210_ID 0x628d
#define DE212_ID 0x6def
#define DE212_ID 0x6def


static const short depca_mca_adapter_ids[] __devinitconst = {
static short depca_mca_adapter_ids[] = {
	DE210_ID,
	DE210_ID,
	DE212_ID,
	DE212_ID,
	0x0000
	0x0000
};
};


static const char *depca_mca_adapter_name[] = {
static char *depca_mca_adapter_name[] = {
	"DEC EtherWORKS MC Adapter (DE210)",
	"DEC EtherWORKS MC Adapter (DE210)",
	"DEC EtherWORKS MC Adapter (DE212)",
	"DEC EtherWORKS MC Adapter (DE212)",
	NULL
	NULL
};
};


static const enum depca_type depca_mca_adapter_type[] = {
static enum depca_type depca_mca_adapter_type[] = {
	de210,
	de210,
	de212,
	de212,
	0
	0
@@ -541,9 +541,10 @@ static void SetMulticastFilter(struct net_device *dev);
static int load_packet(struct net_device *dev, struct sk_buff *skb);
static int load_packet(struct net_device *dev, struct sk_buff *skb);
static void depca_dbg_open(struct net_device *dev);
static void depca_dbg_open(struct net_device *dev);


static const u_char de1xx_irq[] __devinitconst = { 2, 3, 4, 5, 7, 9, 0 };
static u_char de1xx_irq[] __initdata = { 2, 3, 4, 5, 7, 9, 0 };
static const u_char de2xx_irq[] __devinitconst = { 5, 9, 10, 11, 15, 0 };
static u_char de2xx_irq[] __initdata = { 5, 9, 10, 11, 15, 0 };
static const u_char de422_irq[] __devinitconst = { 5, 9, 10, 11, 0 };
static u_char de422_irq[] __initdata = { 5, 9, 10, 11, 0 };
static u_char *depca_irq;


static int irq;
static int irq;
static int io;
static int io;
@@ -579,7 +580,7 @@ static const struct net_device_ops depca_netdev_ops = {
	.ndo_validate_addr	= eth_validate_addr,
	.ndo_validate_addr	= eth_validate_addr,
};
};


static int __devinit depca_hw_init (struct net_device *dev, struct device *device)
static int __init depca_hw_init (struct net_device *dev, struct device *device)
{
{
	struct depca_private *lp;
	struct depca_private *lp;
	int i, j, offset, netRAM, mem_len, status = 0;
	int i, j, offset, netRAM, mem_len, status = 0;
@@ -747,7 +748,6 @@ static int __devinit depca_hw_init (struct net_device *dev, struct device *devic
	if (dev->irq < 2) {
	if (dev->irq < 2) {
		unsigned char irqnum;
		unsigned char irqnum;
		unsigned long irq_mask, delay;
		unsigned long irq_mask, delay;
		const u_char *depca_irq;


		irq_mask = probe_irq_on();
		irq_mask = probe_irq_on();


@@ -770,7 +770,6 @@ static int __devinit depca_hw_init (struct net_device *dev, struct device *devic
			break;
			break;


		default:
		default:
			depca_irq = NULL;
			break;	/* Not reached */
			break;	/* Not reached */
		}
		}


@@ -1303,7 +1302,7 @@ static void SetMulticastFilter(struct net_device *dev)
	}
	}
}
}


static int __devinit depca_common_init (u_long ioaddr, struct net_device **devp)
static int __init depca_common_init (u_long ioaddr, struct net_device **devp)
{
{
	int status = 0;
	int status = 0;


@@ -1334,7 +1333,7 @@ static int __devinit depca_common_init (u_long ioaddr, struct net_device **devp)
/*
/*
** Microchannel bus I/O device probe
** Microchannel bus I/O device probe
*/
*/
static int __devinit depca_mca_probe(struct device *device)
static int __init depca_mca_probe(struct device *device)
{
{
	unsigned char pos[2];
	unsigned char pos[2];
	unsigned char where;
	unsigned char where;
@@ -1458,7 +1457,7 @@ static int __devinit depca_mca_probe(struct device *device)
** ISA bus I/O device probe
** ISA bus I/O device probe
*/
*/


static void __devinit depca_platform_probe (void)
static void __init depca_platform_probe (void)
{
{
	int i;
	int i;
	struct platform_device *pldev;
	struct platform_device *pldev;
@@ -1498,7 +1497,7 @@ static void __devinit depca_platform_probe (void)
	}
	}
}
}


static enum depca_type __devinit depca_shmem_probe (ulong *mem_start)
static enum depca_type __init depca_shmem_probe (ulong *mem_start)
{
{
	u_long mem_base[] = DEPCA_RAM_BASE_ADDRESSES;
	u_long mem_base[] = DEPCA_RAM_BASE_ADDRESSES;
	enum depca_type adapter = unknown;
	enum depca_type adapter = unknown;
@@ -1559,7 +1558,7 @@ static int __devinit depca_isa_probe (struct platform_device *device)
*/
*/


#ifdef CONFIG_EISA
#ifdef CONFIG_EISA
static int __devinit depca_eisa_probe (struct device *device)
static int __init depca_eisa_probe (struct device *device)
{
{
	enum depca_type adapter = unknown;
	enum depca_type adapter = unknown;
	struct eisa_device *edev;
	struct eisa_device *edev;
@@ -1630,7 +1629,7 @@ static int __devexit depca_device_remove (struct device *device)
** and Boot (readb) ROM. This will also give us a clue to the network RAM
** and Boot (readb) ROM. This will also give us a clue to the network RAM
** base address.
** base address.
*/
*/
static int __devinit DepcaSignature(char *name, u_long base_addr)
static int __init DepcaSignature(char *name, u_long base_addr)
{
{
	u_int i, j, k;
	u_int i, j, k;
	void __iomem *ptr;
	void __iomem *ptr;
Loading