Netdev List
 help / color / mirror / Atom feed
* [PATCH 3/7] acxsm: Create struct acx_ops
From: Carlos Martin @ 2006-02-28 16:30 UTC (permalink / raw)
  To: netdev
  Cc: Denis Vlasenko, acx100-devel, Christoph Hellwig, Carlos Martin,
	Carlos Martin
In-Reply-To: <1141144213577-git-send-email-carlos@cmartin.tk>

struct acx_ops is where the device-specific functions go. This allows
us to call these functions from the acx-common.ko module without
creating recursive dependencies.

Signed-off-by: Carlos Martin <carlos@cmartin.tk>

---

 acx_struct.h |   32 ++++++++++++++++++++++++++++----
 1 files changed, 28 insertions(+), 4 deletions(-)

fe7e63091292e78cb523c8060b267c0faeb3b898
diff --git a/acx_struct.h b/acx_struct.h
index 93495e0..227b6e3 100644
--- a/acx_struct.h
+++ b/acx_struct.h
@@ -87,6 +87,31 @@ enum { acx_debug = 0 };
 #define SCHEDULE_WORK schedule_work
 #define FLUSH_SCHEDULED_WORK flush_scheduled_work
 
+/***********************************************************************
+** Chip-specific functions get set here.
+*/
+
+struct acx_ops {
+	int (*create_dma_regions)(acx_device_t *);
+	void (*delete_dma_regions)(acx_device_t *);
+
+#if ACX_DEBUG
+	int (*issue_cmd)(acx_device_t *adev, unsigned cmd, void *param,
+			 unsigned len, unsigned cmd_timeout, const char *cmdstr);
+#else
+	int (*issue_cmd)(acx_device_t *adev, unsigned cmd, void *param,
+			 unsigned len, unsigned cmd_timeout);
+#endif /* ACX_DEBUG */
+	tx_t* (*alloc_tx)(acx_device_t *adev);
+	void (*dealloc_tx)(tx_t *tx_opaque);
+
+	void* (*get_txbuf)(acx_device_t *adev, tx_t *tx_opaque);
+	void (*tx_data)(acx_device_t *adev, tx_t *tx_opaque, int len);
+
+	int (*write_phy_reg)(acx_device_t *adev, u32 reg, u8 value);
+	int (*read_phy_reg)(acx_device_t *adev, u32 reg, u8 *charbuf);
+};
+
 
 /***********************************************************************
 ** Constants
@@ -105,10 +130,6 @@ enum { acx_debug = 0 };
 #define DEVTYPE_PCI		0
 #define DEVTYPE_USB		1
 
-#if !defined(CONFIG_ACX_PCI) && !defined(CONFIG_ACX_USB)
-#error Driver must include PCI and/or USB support. You selected neither.
-#endif
-
 #if defined(CONFIG_ACX_PCI)
  #if !defined(CONFIG_ACX_USB)
   #define IS_PCI(adev)	1
@@ -1198,6 +1219,9 @@ struct acx_device {
 	/*** Linux network device ***/
 	struct net_device	*ndev;		/* pointer to linux netdevice */
 
+	/* Chip-specific functions */
+	struct acx_ops		ops;
+
 	/*** Device statistics ***/
 	struct net_device_stats	stats;		/* net device statistics */
 #ifdef WIRELESS_EXT
-- 
1.2.1.g62a4




-------------------------------------------------------
This SF.Net email is sponsored by xPML, a groundbreaking scripting language
that extends applications into web and mobile media. Attend the live webcast
and join the prime developer group breaking into this new coding territory!
http://sel.as-us.falkag.net/sel?cmd=lnk&kid\x110944&bid$1720&dat\x121642

^ permalink raw reply related

* [PATCH 6/7] acxsm: Assign chip-specific ops in the probe functions
From: Carlos Martin @ 2006-02-28 16:30 UTC (permalink / raw)
  To: netdev
  Cc: Denis Vlasenko, acx100-devel, Christoph Hellwig, Carlos Martin,
	Carlos Martin
In-Reply-To: <1141144213577-git-send-email-carlos@cmartin.tk>

Assign the chip-specific ops in the probe functions. Add extern and
dummy functions where needed.

Signed-off-by: Carlos Martin <carlos@cmartin.tk>

---

 acx_func.h |    1 +
 pci.c      |   24 ++++++++++++++++++++++++
 usb.c      |   19 +++++++++++++++++++
 3 files changed, 44 insertions(+), 0 deletions(-)

1a6bb060d33906c12c6ef161b851cc1fab91d3a9
diff --git a/acx_func.h b/acx_func.h
index 0823aec..238c633 100644
--- a/acx_func.h
+++ b/acx_func.h
@@ -534,6 +534,7 @@ acx_l_alloc_tx(acx_device_t *adev)
 }
 
 void acxusb_l_dealloc_tx(tx_t *tx_opaque);
+void acxpci_l_dealloc_tx(tx_t *tx_opaque);
 static inline void
 acx_l_dealloc_tx(acx_device_t *adev, tx_t *tx_opaque)
 {
diff --git a/pci.c b/pci.c
index 24224b9..23abb96 100644
--- a/pci.c
+++ b/pci.c
@@ -105,6 +105,9 @@ static int acxpci_e_close(struct net_dev
 static void acxpci_s_up(struct net_device *ndev);
 static void acxpci_s_down(struct net_device *ndev);
 
+extern int acx100_s_create_dma_regions(acx_device_t *);
+extern int acx111_s_create_dma_regions(acx_device_t *);
+
 #ifdef MODULE_LICENSE
 MODULE_LICENSE("Dual MPL/GPL");
 #endif
@@ -1599,6 +1602,22 @@ acxpci_e_probe(struct pci_dev *pdev, con
 	adev->ieee->sec.enabled = 0;
 	adev->ieee->sec.auth_mode = WLAN_AUTH_OPEN;
 
+#if ACX_DEBUG
+       adev->ops.issue_cmd = acxpci_s_issue_cmd_timeo_debug;
+#else
+       adev->ops.issue_cmd  = acxpci_s_issue_cmd_timeo;
+#endif /* ACX_DEBUG */
+       adev->ops.alloc_tx = acxpci_l_alloc_tx;
+       adev->ops.dealloc_tx = acxpci_l_dealloc_tx;
+       adev->ops.delete_dma_regions = acxpci_s_delete_dma_regions;
+       adev->ops.write_phy_reg = acxpci_s_write_phy_reg;
+       adev->ops.read_phy_reg = acxpci_s_read_phy_reg;
+
+       if (IS_ACX100(adev)) {
+	       adev->ops.create_dma_regions = acx100_s_create_dma_regions;
+       } else {
+	       adev->ops.create_dma_regions = acx111_s_create_dma_regions;
+       }
 #ifdef NONESSENTIAL_FEATURES
 	acx_show_card_eeprom_id(adev);
 #endif /* NONESSENTIAL_FEATURES */
@@ -3058,6 +3077,11 @@ end:
 	return (tx_t*)txdesc;
 }
 
+/* Dummy function. */
+static void
+acxpci_l_dealloc_tx(tx_t *tx_opaque)
+{
+}
 
 /***********************************************************************
 */
diff --git a/usb.c b/usb.c
index 6b0b578..5833d04 100644
--- a/usb.c
+++ b/usb.c
@@ -123,6 +123,8 @@ static void acxusb_l_poll_rx(acx_device_
 
 static void acxusb_i_tx_timeout(struct net_device *);
 
+extern int acx100_s_create_dma_regions(acx_device_t *);
+
 /* static void dump_device(struct usb_device *); */
 /* static void dump_device_descriptor(struct usb_device_descriptor *); */
 /* static void dump_config_descriptor(struct usb_config_descriptor *); */
@@ -763,6 +765,11 @@ acxusb_s_fill_configoption(acx_device_t 
 	return OK;
 }
 
+/* Dummy function. */
+static void
+acxusb_s_delete_dma_regions(acx_device_t *adev)
+{
+}
 
 /***********************************************************************
 ** acxusb_e_probe()
@@ -891,6 +898,18 @@ acxusb_e_probe(struct usb_interface *int
 	adev->ieee->sec.encrypt = 0;
 	adev->ieee->sec.auth_mode = WLAN_AUTH_OPEN;
 
+#if ACX_DEBUG
+	adev->ops.issue_cmd = acxusb_s_issue_cmd_timeo_debug;
+#else
+       adev->ops.issue_cmd  = acxusb_s_issue_cmd_timeo;
+#endif /* ACX_DEBUG */
+       adev->ops.alloc_tx = acxusb_l_alloc_tx;
+       adev->ops.dealloc_tx = acxusb_l_dealloc_tx;
+       adev->ops.delete_dma_regions = acxusb_s_delete_dma_regions;
+       adev->ops.write_phy_reg = acxusb_s_write_phy_reg;
+       adev->ops.read_phy_reg = acxusb_s_read_phy_reg;
+       adev->ops.create_dma_regions = acx100_s_create_dma_regions;
+
 	/* Check that this is really the hardware we know about.
 	** If not sure, at least notify the user that he
 	** may be in trouble...
-- 
1.2.1.g62a4




-------------------------------------------------------
This SF.Net email is sponsored by xPML, a groundbreaking scripting language
that extends applications into web and mobile media. Attend the live webcast
and join the prime developer group breaking into this new coding territory!
http://sel.as-us.falkag.net/sel?cmd=lnk&kid\x110944&bid$1720&dat\x121642

^ permalink raw reply related

* [PATCH 2/7] acxsm: Move module init/exit to the modules
From: Carlos Martin @ 2006-02-28 16:30 UTC (permalink / raw)
  To: netdev
  Cc: Denis Vlasenko, acx100-devel, Christoph Hellwig, Carlos Martin,
	Carlos Martin
In-Reply-To: <1141144213577-git-send-email-carlos@cmartin.tk>

We now have the module license and init/exit routines in each module
instead of just calling them through common.c.

Signed-off-by: Carlos Martin <carlos@cmartin.tk>

---

 common.c |   55 +------------------------------------------------------
 pci.c    |   10 ++++++++++
 usb.c    |   11 ++++++++++-
 3 files changed, 21 insertions(+), 55 deletions(-)

147a9817d6d762545fc7c5efc124281b7c8ca8fb
diff --git a/common.c b/common.c
index 7f10725..a78b643 100644
--- a/common.c
+++ b/common.c
@@ -94,7 +94,7 @@ MODULE_LICENSE("Dual MPL/GPL");
 #endif
 /* USB had this: MODULE_AUTHOR("Martin Wawro <martin.wawro AT uni-dortmund.de>"); */
 MODULE_AUTHOR("ACX100 Open Source Driver development team");
-MODULE_DESCRIPTION("Driver for TI ACX1xx based wireless cards (CardBus/PCI/USB)");
+MODULE_DESCRIPTION("Driver for TI ACX1xx based wireless cards (common)");
 
 
 /***********************************************************************
@@ -7407,59 +7407,6 @@ acx_s_parse_configoption(acx_device_t *a
 }
 
 
-/***********************************************************************
-*/
-static int __init
-acx_e_init_module(void)
-{
-	int r1,r2;
-
-	acx_struct_size_check();
-
-	printk("acx: this driver is still EXPERIMENTAL\n"
-		"acx: reading README file and/or Craig's HOWTO is "
-		"recommended, visit http://acx100.sf.net in case "
-		"of further questions/discussion\n");
-
-#if defined(CONFIG_ACX_PCI)
-	r1 = acxpci_e_init_module();
-#else
-	r1 = -EINVAL;
-#endif
-#if defined(CONFIG_ACX_USB)
-	r2 = acxusb_e_init_module();
-#else
-	r2 = -EINVAL;
-#endif
-	if (r2 && r1) /* both failed! */
-		return r2 ? r2 : r1;
-	/* return success if at least one succeeded */
-	return 0;
-}
-
-static void __exit
-acx_e_cleanup_module(void)
-{
-#if defined(CONFIG_ACX_PCI)
-	acxpci_e_cleanup_module();
-#endif
-#if defined(CONFIG_ACX_USB)
-	acxusb_e_cleanup_module();
-#endif
-}
-
-module_init(acx_e_init_module)
-module_exit(acx_e_cleanup_module)
-
-
-
-
-
-
-
-
-
-
 //SM
 void
 acx_e_ieee80211_set_security(struct net_device *ndev,
diff --git a/pci.c b/pci.c
index ea9bee0..24224b9 100644
--- a/pci.c
+++ b/pci.c
@@ -105,6 +105,13 @@ static int acxpci_e_close(struct net_dev
 static void acxpci_s_up(struct net_device *ndev);
 static void acxpci_s_down(struct net_device *ndev);
 
+#ifdef MODULE_LICENSE
+MODULE_LICENSE("Dual MPL/GPL");
+#endif
+/* USB had this: MODULE_AUTHOR("Martin Wawro <martin.wawro AT uni-dortmund.de>"); */
+MODULE_AUTHOR("ACX100 Open Source Driver development team");
+MODULE_DESCRIPTION("Driver for TI ACX1xx based wireless cards (CardBus/PCI)");
+
 
 /***********************************************************************
 ** Register access
@@ -4192,3 +4199,6 @@ acxpci_e_cleanup_module(void)
 
 	FN_EXIT0;
 }
+
+module_init(acxpci_e_init_module);
+module_exit(acxpci_e_cleanup_module);
diff --git a/usb.c b/usb.c
index 116cf90..6b0b578 100644
--- a/usb.c
+++ b/usb.c
@@ -127,6 +127,14 @@ static void acxusb_i_tx_timeout(struct n
 /* static void dump_device_descriptor(struct usb_device_descriptor *); */
 /* static void dump_config_descriptor(struct usb_config_descriptor *); */
 
+#ifdef MODULE_LICENSE
+MODULE_LICENSE("Dual MPL/GPL");
+#endif
+/* USB had this: MODULE_AUTHOR("Martin Wawro <martin.wawro AT uni-dortmund.de>"); */
+MODULE_AUTHOR("ACX100 Open Source Driver development team");
+MODULE_DESCRIPTION("Driver for TI ACX1xx based wireless cards (USB)");
+
+
 /***********************************************************************
 ** Module Data
 */
@@ -1811,7 +1819,8 @@ acxusb_e_cleanup_module()
 	usb_deregister(&acxusb_driver);
 }
 
-
+module_init(acxusb_e_init_module);
+module_exit(acxusb_e_cleanup_module);
 /***********************************************************************
 ** DEBUG STUFF
 */
-- 
1.2.1.g62a4




-------------------------------------------------------
This SF.Net email is sponsored by xPML, a groundbreaking scripting language
that extends applications into web and mobile media. Attend the live webcast
and join the prime developer group breaking into this new coding territory!
http://sel.as-us.falkag.net/sel?cmd=lnk&kid\x110944&bid$1720&dat\x121642

^ permalink raw reply related

* [PATCH 1/7] acxsm: Change Kconfig and Makefile to be modular
From: Carlos Martin @ 2006-02-28 16:30 UTC (permalink / raw)
  To: netdev
  Cc: Denis Vlasenko, acx100-devel, Christoph Hellwig, Carlos Martin,
	Carlos Martin
In-Reply-To: <1141144213577-git-send-email-carlos@cmartin.tk>

We now only expose ACX_PCI and ACX_USB and the Makefile creates
acx-usb.ko, acx-pci.ko and acx-common.ko

Signed-off-by: Carlos Martin <carlos@cmartin.tk>

---

 Kconfig  |   40 ++++++++++++++++++++--------------------
 Makefile |   15 +++++++++++----
 2 files changed, 31 insertions(+), 24 deletions(-)

66c1585df6e0969806b9608fb3f006eb1eb02637
diff --git a/Kconfig b/Kconfig
index 8ec3879..ba7889e 100644
--- a/Kconfig
+++ b/Kconfig
@@ -1,6 +1,6 @@
-config ACX
-	tristate "TI acx100/acx111 802.11b/g wireless chipsets"
-	depends on NET_RADIO && EXPERIMENTAL && (USB || PCI)
+config ACX_PCI
+	tristate "TI acx100/acx111 802.11b/g PCI"
+	depends on NET_RADIO && EXPERIMENTAL && PCI
 	select FW_LOADER
 	select IEEE80211
 	select IEEE80211_SOFTMAC
@@ -8,20 +8,7 @@ config ACX
 	A driver for 802.11b/g wireless cards based on
 	Texas Instruments acx100 and acx111 chipsets.
 
-	This driver supports Host AP mode that allows
-	your computer to act as an IEEE 802.11 access point.
-	This driver is new and experimental.
-
-	Texas Instruments did not take part in development of this driver
-	in any way, shape or form.
-
-	The driver can be compiled as a module and will be named "acx".
-
-config ACX_PCI
-	bool "TI acx100/acx111 802.11b/g PCI"
-	depends on ACX && PCI
-	---help---
-	Include PCI and CardBus support in acx.
+	This is the PCI code.
 
 	acx chipsets need their firmware loaded at startup.
 	You will need to provide a firmware image via hotplug.
@@ -46,11 +33,20 @@ config ACX_PCI
 	Firmware files are not covered by GPL and are not distributed
 	with this driver for legal reasons.
 
+	Texas Instruments did not take part in development of this driver
+	in any way, shape or form.
+
 config ACX_USB
-	bool "TI acx100/acx111 802.11b/g USB"
-	depends on ACX && (USB=y || USB=ACX)
+	tristate "TI acx100/acx111 802.11b/g USB"
+	depends on NET_RADIO && EXPERIMENTAL && USB
+	select FW_LOADER
+	select IEEE80211
+	select IEEE80211_SOFTMAC
 	---help---
-	Include USB support in acx.
+	A driver for 802.11b/g wireless cards based on
+	Texas Instruments acx100 and acx111 chipsets.
+
+	This is the USB code.
 
 	There is only one currently known device in this category,
 	D-Link DWL-120+, but newer devices seem to be on the horizon.
@@ -63,3 +59,7 @@ config ACX_USB
 
 	Firmware files are not covered by GPL and are not distributed
 	with this driver for legal reasons.
+
+	Texas Instruments did not take part in development of this driver
+	in any way, shape or form.
+
diff --git a/Makefile b/Makefile
index 192e6d3..8aa56af 100644
--- a/Makefile
+++ b/Makefile
@@ -1,6 +1,13 @@
-obj-$(CONFIG_ACX) += acx.o
+acx-common-y += wlan.o ioctl.o common.o
+acx-usb-y += usb.o
+acx-pci-y += pci.o
 
-acx-obj-$(CONFIG_ACX_PCI) += pci.o
-acx-obj-$(CONFIG_ACX_USB) += usb.o
+obj-$(CONFIG_ACX_PCI) += acx-common.o acx-pci.o
+obj-$(CONFIG_ACX_USB) += acx-common.o acx-usb.o
 
-acx-objs := wlan.o ioctl.o common.o $(acx-obj-y)
+#obj-$(CONFIG_ACX) += acx.o
+#
+#acx-obj-$(CONFIG_ACX_PCI) += pci.o
+#acx-obj-$(CONFIG_ACX_USB) += usb.o
+#
+#acx-objs := wlan.o ioctl.o common.o $(acx-obj-y)
-- 
1.2.1.g62a4




-------------------------------------------------------
This SF.Net email is sponsored by xPML, a groundbreaking scripting language
that extends applications into web and mobile media. Attend the live webcast
and join the prime developer group breaking into this new coding territory!
http://sel.as-us.falkag.net/sel?cmd=lnk&kid\x110944&bid$1720&dat\x121642

^ permalink raw reply related

* [PATCH 0/7] acxsm: Make acxsm modular again (2nd try)
From: Carlos Martin @ 2006-02-28 16:30 UTC (permalink / raw)
  To: netdev; +Cc: Denis Vlasenko, acx100-devel, Christoph Hellwig

Hi,

There are a couple of differences between this and my previos patch,
so I'll list them here:

- Separate the patches properly

- This patchset uses the default generic functions and calls the
  appropiate function using a #define, which should be much clearer
  and saves us from having to migrate the whole common.c file.

- We get the proper string for the _debug family of functions.

- acx_ops.issue_cmd takes different functions depending on the debug
  level so we save a few bytes we weren't going to use otherwise. This
  also saves a function call.

- Denis' sense of style has been applied, though some of it doesn't
  apply anymore and some came from me trying to do too many things at
  once which screwed up the format. I hope these are alright.

 Kconfig      |   40 ++++++++++----------
 Makefile     |   15 +++++--
 acx_func.h   |  112 ++++++++++++++++++++--------------------------------------
 acx_struct.h |   32 ++++++++++++++--
 common.c     |  113 ++++++++++++++++++++++++++++-------------------------------
 ioctl.c      |    2 +
 pci.c        |   31 ++++++++++++++++
 usb.c        |   27 +++++++++++++-
 8 files changed, 212 insertions(+), 160 deletions(-)




-------------------------------------------------------
This SF.Net email is sponsored by xPML, a groundbreaking scripting language
that extends applications into web and mobile media. Attend the live webcast
and join the prime developer group breaking into this new coding territory!
http://sel.as-us.falkag.net/sel?cmd=lnk&kid\x110944&bid$1720&dat\x121642

^ permalink raw reply

* Re: [2.4.32 - 2.6.15.4] e1000 - Fix mii interface
From: Paul Rolland @ 2006-02-28 10:46 UTC (permalink / raw)
  To: 'Jesse Brandeburg', linux-kernel; +Cc: netdev, john.ronciak
In-Reply-To: <Pine.WNT.4.63.0602271818570.284@jbrandeb-desk.amr.corp.intel.com>

Hello Jesse,

>   					spddplx += (mii_reg & 0x100)
> -						   ? FULL_DUPLEX :
> -						   HALF_DUPLEX;
> +						   ? DUPLEX_FULL :
> +						   DUPLEX_HALF;

As I said in my first mail, I didn't want to go that way as one of the
two DUPLEX_FULL or DUPLEX_HALF is defined as being 0, which prevents
detecting incorrect/incomplete initializations.

The problem I had came from :
mii-tool -F 100BaseTx-FD eth0
when at the same time the ethtool interface was OK.

But you are right, the change I made missed the second caller.

The correct change is yours, though for the reason I put above, I think
it'll make it harder to spot other bugs ;)

Well done,
Paul

^ permalink raw reply

* Re: [PATH][RFC] acxsm: Make acx mdoular again
From: Denis Vlasenko @ 2006-02-28  6:12 UTC (permalink / raw)
  To: John W. Linville
  Cc: Carlos Martín, netdev, acx100-devel, Christoph Hellwig
In-Reply-To: <20060228013415.GD26559@tuxdriver.com>

On Tuesday 28 February 2006 03:34, John W. Linville wrote:
> On Mon, Feb 27, 2006 at 11:44:38AM +0100, Carlos Martín wrote:
> > On Monday 27 February 2006 11:20, Denis Vlasenko wrote:
> > > > Comments are welcome and I'll split the patch if needed.
> 
> Denis are you applying this patch to your tree?  If so, I'll rely on
> you to push it to me when you are ready.

Not yet, patch needs some fixes.
--
vda


-------------------------------------------------------
This SF.Net email is sponsored by xPML, a groundbreaking scripting language
that extends applications into web and mobile media. Attend the live webcast
and join the prime developer group breaking into this new coding territory!
http://sel.as-us.falkag.net/sel?cmd=lnk&kid\x110944&bid$1720&dat\x121642

^ permalink raw reply

* Re: [patch 04/39] [PATCH] [BRIDGE]: netfilter missing symbol has_bridge_parent
From: Horms @ 2006-02-28  2:38 UTC (permalink / raw)
  To: Chris Wright
  Cc: linux-kernel, stable, Bernard Pidoux, Justin Forbes,
	Zwane Mwaikambo, Theodore Ts'o, Randy Dunlap, Dave Jones,
	Chuck Wolber, torvalds, akpm, alan, wensong, netdev, ja,
	David S. Miller, Stephen Hemminger, Greg Kroah-Hartman
In-Reply-To: <20060227223321.042696000@sorel.sous-sol.org>

On Mon, Feb 27, 2006 at 02:32:04PM -0800, Chris Wright wrote:
> -stable review patch.  If anyone has any objections, please let us know.
> ------------------
> 
> 5dce971acf2ae20c80d5e9d1f6bbf17376870911 in Linus' tree,
> otherwise known as bridge-netfilter-races-on-device-removal.patch in
> 2.5.15.4 removed has_bridge_parent, however this symbol is still
> called with NETFILTER_DEBUG is enabled.
> 
> This patch uses the already seeded realoutdev value to detect if a parent
> exists, and if so, the value of the parent.
> 
> Signed-Off-By: Horms <horms@verge.net.au>
> Acked-by: Stephen Hemminger <shemminger@osdl.org>
> Signed-off-by: Chris Wright <chrisw@sous-sol.org>
> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
> ---
> 
>  net/bridge/br_netfilter.c |    4 ++--
>  1 files changed, 2 insertions(+), 2 deletions(-)
> 
> --- linux-2.6.15.4.orig/net/bridge/br_netfilter.c
> +++ linux-2.6.15.4/net/bridge/br_netfilter.c
> @@ -794,8 +794,8 @@ static unsigned int br_nf_post_routing(u
>  print_error:
>  	if (skb->dev != NULL) {
>  		printk("[%s]", skb->dev->name);
> -		if (has_bridge_parent(skb->dev))
> -			printk("[%s]", bridge_parent(skb->dev)->name);
> +		if (realoutdev)
> +			printk("[%s]", realoutdev->name);
>  	}
>  	printk(" head:%p, raw:%p, data:%p\n", skb->head, skb->mac.raw,
>  					      skb->data);
> 
> --

I double checked, and that is the aggregate fix that was added
to Linus' tree, it should solve the problem at hand.

-- 
Horms

^ permalink raw reply

* Re: [2.4.32 - 2.6.15.4] e1000 - Fix mii interface
From: Jesse Brandeburg @ 2006-02-28  2:31 UTC (permalink / raw)
  To: rol, linux-kernel; +Cc: Brandeburg, Jesse, netdev, john.ronciak
In-Reply-To: <4807377b0602271234v4b6cdeecpbcf8d4a6ac51cd20@mail.gmail.com>


> From: Paul Rolland <rol@as2917.net>
> 
> Hello,
> 
> This patch is based on Linux 2.4.32, and I've verified the same problem
> exists on 2.6.15.4.
> Working on a machine with a 2.4.32 kernel, I was surprised to see the driver
> complaining when setting the speed to 100FD using mii-tool, but accepting
> the setting with ethtool.
> Digging into the code, I found that there is some confusion with :
>  - DUPLEX_FULL and FULL_DUPLEX,
>  - DUPLEX_HALF and HALF_DUPLEX
> in the code :
> ...
>                            spddplx += (mii_reg & 0x100)
>                                        ? FULL_DUPLEX :
>                                        HALF_DUPLEX;
>                            retval = e1000_set_spd_dplx(adapter,
>                                                        spddplx);

Please try this patch:

e1000: fix mii-tool access to setting speed and duplex

Paul Rolland reported that e1000 was having a hard time using mii-tool to
set speed and duplex.  This patch fixes the issue on both newer hardware as
well as fixing the code issue that originally caused the problem.

Signed-off-by: Jesse Brandeburg <jesse.brandeburg@intel.com>
CC: Paul Rolland <rol@as2917.net>

---

  drivers/net/e1000/e1000_main.c |    6 +++---
  1 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/drivers/net/e1000/e1000_main.c b/drivers/net/e1000/e1000_main.c
index 31e3329..9730c2e 100644
--- a/drivers/net/e1000/e1000_main.c
+++ b/drivers/net/e1000/e1000_main.c
@@ -4269,7 +4269,7 @@ e1000_mii_ioctl(struct net_device *netde
  			spin_unlock_irqrestore(&adapter->stats_lock, flags);
  			return -EIO;
  		}
-		if (adapter->hw.phy_type == e1000_phy_m88) {
+		if (adapter->hw.media_type == e1000_media_type_copper) {
  			switch (data->reg_num) {
  			case PHY_CTRL:
  				if (mii_reg & MII_CR_POWER_DOWN)
@@ -4285,8 +4285,8 @@ e1000_mii_ioctl(struct net_device *netde
  					else
  						spddplx = SPEED_10;
  					spddplx += (mii_reg & 0x100)
-						   ? FULL_DUPLEX :
-						   HALF_DUPLEX;
+						   ? DUPLEX_FULL :
+						   DUPLEX_HALF;
  					retval = e1000_set_spd_dplx(adapter,
  								    spddplx);
  					if (retval) {

^ permalink raw reply related

* Re: [PATH][RFC] acxsm: Make acx mdoular again
From: John W. Linville @ 2006-02-28  1:34 UTC (permalink / raw)
  To: Carlos Martín
  Cc: Denis Vlasenko, netdev, acx100-devel, Christoph Hellwig
In-Reply-To: <200602271144.39346.carlos@cmartin.tk>

On Mon, Feb 27, 2006 at 11:44:38AM +0100, Carlos Martín wrote:
> On Monday 27 February 2006 11:20, Denis Vlasenko wrote:
> > > Comments are welcome and I'll split the patch if needed.

Denis are you applying this patch to your tree?  If so, I'll rely on
you to push it to me when you are ready.

If not, then I will need Carlos to generate the diffs so that they
can be applied to the top of the tree with -p1.

	http://linux.yyz.us/patch-format.html

Thanks,

John
-- 
John W. Linville
linville@tuxdriver.com


-------------------------------------------------------
This SF.Net email is sponsored by xPML, a groundbreaking scripting language
that extends applications into web and mobile media. Attend the live webcast
and join the prime developer group breaking into this new coding territory!
http://sel.as-us.falkag.net/sel?cmd=lnk&kid\x110944&bid$1720&dat\x121642

^ permalink raw reply

* Re: [PATCH] e1000: Support e1000 OEMed onto Aculab cards
From: John Ronciak @ 2006-02-28  0:31 UTC (permalink / raw)
  To: cramerj, john.ronciak, netdev, linux-kernel, broonie
In-Reply-To: <20060227220517.GA8611@sirena.org.uk>

Please don't apply this patch.  We have taken this offline at the
moment to work this out with the OEM, Aculab.  They have made
modification to how the Intel controller operates which may make it
have problems with the normal e1000 driver.  We are in contact with
both Mark and Aculab about this offline.  The last thing Aculab talked
to us about was to make sure that the normal Intel e1000 drivers did
_not_ work with their hardware, hence the device ID change.  We'll
continue this on this thread if this turns out not to be the case.  We
(Intel) also don't know exactly how they changed the behavior of the
hardware which is another topic for us to talk about.

Thanks.
--
Cheers,
John

^ permalink raw reply

* [patch 04/39] [PATCH] [BRIDGE]: netfilter missing symbol has_bridge_parent
From: Chris Wright @ 2006-02-27 22:32 UTC (permalink / raw)
  To: linux-kernel, stable, Bernard Pidoux
  Cc: Justin Forbes, Zwane Mwaikambo, Theodore Ts'o, Randy Dunlap,
	Dave Jones, Chuck Wolber, torvalds, akpm, alan, Horms, wensong,
	netdev, ja, David S. Miller, Stephen Hemminger,
	Greg Kroah-Hartman
In-Reply-To: <20060227223200.865548000@sorel.sous-sol.org>

[-- Attachment #1: netfilter-missing-symbol.patch --]
[-- Type: text/plain, Size: 1204 bytes --]

-stable review patch.  If anyone has any objections, please let us know.
------------------

5dce971acf2ae20c80d5e9d1f6bbf17376870911 in Linus' tree,
otherwise known as bridge-netfilter-races-on-device-removal.patch in
2.5.15.4 removed has_bridge_parent, however this symbol is still
called with NETFILTER_DEBUG is enabled.

This patch uses the already seeded realoutdev value to detect if a parent
exists, and if so, the value of the parent.

Signed-Off-By: Horms <horms@verge.net.au>
Acked-by: Stephen Hemminger <shemminger@osdl.org>
Signed-off-by: Chris Wright <chrisw@sous-sol.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
---

 net/bridge/br_netfilter.c |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

--- linux-2.6.15.4.orig/net/bridge/br_netfilter.c
+++ linux-2.6.15.4/net/bridge/br_netfilter.c
@@ -794,8 +794,8 @@ static unsigned int br_nf_post_routing(u
 print_error:
 	if (skb->dev != NULL) {
 		printk("[%s]", skb->dev->name);
-		if (has_bridge_parent(skb->dev))
-			printk("[%s]", bridge_parent(skb->dev)->name);
+		if (realoutdev)
+			printk("[%s]", realoutdev->name);
 	}
 	printk(" head:%p, raw:%p, data:%p\n", skb->head, skb->mac.raw,
 					      skb->data);

--

^ permalink raw reply

* Pull request for 'for-jeff' branch
From: Francois Romieu @ 2006-02-27 22:24 UTC (permalink / raw)
  To: Jeff Garzik; +Cc: linux-kernel, netdev, Pierre Ossman, John Zielinski
In-Reply-To: <4403472F.2090808@pobox.com>

Please pull from branch 'for-jeff' to get the changes below:

git://electric-eye.fr.zoreil.com/home/romieu/linux-2.6.git

Shortlog
--------
$ git rev-list --pretty master..HEAD | git shortlog

Francois Romieu:
      via-velocity: fix memory corruption when changing the mtu
      8139cp: fix broken suspend/resume


Patch
-----
diff --git a/drivers/net/8139cp.c b/drivers/net/8139cp.c
index f822cd3..dd41049 100644
--- a/drivers/net/8139cp.c
+++ b/drivers/net/8139cp.c
@@ -1118,13 +1118,18 @@ err_out:
 	return -ENOMEM;
 }
 
+static void cp_init_rings_index (struct cp_private *cp)
+{
+	cp->rx_tail = 0;
+	cp->tx_head = cp->tx_tail = 0;
+}
+
 static int cp_init_rings (struct cp_private *cp)
 {
 	memset(cp->tx_ring, 0, sizeof(struct cp_desc) * CP_TX_RING_SIZE);
 	cp->tx_ring[CP_TX_RING_SIZE - 1].opts1 = cpu_to_le32(RingEnd);
 
-	cp->rx_tail = 0;
-	cp->tx_head = cp->tx_tail = 0;
+	cp_init_rings_index(cp);
 
 	return cp_refill_rx (cp);
 }
@@ -1886,30 +1891,30 @@ static int cp_suspend (struct pci_dev *p
 
 	spin_unlock_irqrestore (&cp->lock, flags);
 
-	if (cp->pdev && cp->wol_enabled) {
-		pci_save_state (cp->pdev);
-		cp_set_d3_state (cp);
-	}
+	pci_save_state(pdev);
+	pci_enable_wake(pdev, pci_choose_state(pdev, state), cp->wol_enabled);
+	pci_set_power_state(pdev, pci_choose_state(pdev, state));
 
 	return 0;
 }
 
 static int cp_resume (struct pci_dev *pdev)
 {
-	struct net_device *dev;
-	struct cp_private *cp;
+	struct net_device *dev = pci_get_drvdata (pdev);
+	struct cp_private *cp = netdev_priv(dev);
 	unsigned long flags;
 
-	dev = pci_get_drvdata (pdev);
-	cp  = netdev_priv(dev);
+	if (!netif_running(dev))
+		return 0;
 
 	netif_device_attach (dev);
-	
-	if (cp->pdev && cp->wol_enabled) {
-		pci_set_power_state (cp->pdev, PCI_D0);
-		pci_restore_state (cp->pdev);
-	}
-	
+
+	pci_set_power_state(pdev, PCI_D0);
+	pci_restore_state(pdev);
+	pci_enable_wake(pdev, PCI_D0, 0);
+
+	/* FIXME: sh*t may happen if the Rx ring buffer is depleted */
+	cp_init_rings_index (cp);
 	cp_init_hw (cp);
 	netif_start_queue (dev);
 
diff --git a/drivers/net/via-velocity.c b/drivers/net/via-velocity.c
index c2d5907..ed1f837 100644
--- a/drivers/net/via-velocity.c
+++ b/drivers/net/via-velocity.c
@@ -1106,6 +1106,9 @@ static void velocity_free_rd_ring(struct
 
 	for (i = 0; i < vptr->options.numrx; i++) {
 		struct velocity_rd_info *rd_info = &(vptr->rd_info[i]);
+		struct rx_desc *rd = vptr->rd_ring + i;
+
+		memset(rd, 0, sizeof(*rd));
 
 		if (!rd_info->skb)
 			continue;

^ permalink raw reply related

* [PATCH] e1000: Support e1000 OEMed onto Aculab cards
From: Mark Brown @ 2006-02-27 22:05 UTC (permalink / raw)
  To: cramerj, john.ronciak, ganesh.venkatesan; +Cc: netdev, linux-kernel

Add PCI IDs for chips OEMed onto some Aculab cards to the e1000 driver.

Signed-Off-By: Mark Brown <broonie@sirena.org.uk>

Index: e1000-queue/drivers/net/e1000/e1000.h
===================================================================
--- e1000-queue.orig/drivers/net/e1000/e1000.h	2006-02-25 12:50:12.000000000 +0000
+++ e1000-queue/drivers/net/e1000/e1000.h	2006-02-25 13:01:10.000000000 +0000
@@ -84,6 +84,9 @@
 #define INTEL_E1000_ETHERNET_DEVICE(device_id) {\
 	PCI_DEVICE(PCI_VENDOR_ID_INTEL, device_id)}
 
+#define ACULAB_E1000_ETHERNET_DEVICE(device_id) {\
+	PCI_DEVICE(PCI_VENDOR_ID_ACULAB, device_id)}
+
 struct e1000_adapter;
 
 #include "e1000_hw.h"
Index: e1000-queue/drivers/net/e1000/e1000_main.c
===================================================================
--- e1000-queue.orig/drivers/net/e1000/e1000_main.c	2006-02-25 12:50:12.000000000 +0000
+++ e1000-queue/drivers/net/e1000/e1000_main.c	2006-02-25 13:01:10.000000000 +0000
@@ -98,6 +98,7 @@ static struct pci_device_id e1000_pci_tb
 	INTEL_E1000_ETHERNET_DEVICE(0x108B),
 	INTEL_E1000_ETHERNET_DEVICE(0x108C),
 	INTEL_E1000_ETHERNET_DEVICE(0x109A),
+	ACULAB_E1000_ETHERNET_DEVICE(0x1078),
 	/* required last entry */
 	{0,}
 };

Index: e1000-queue/include/linux/pci_ids.h
===================================================================
--- e1000-queue.orig/include/linux/pci_ids.h	2006-02-25 12:50:12.000000000 +0000
+++ e1000-queue/include/linux/pci_ids.h	2006-02-25 12:51:51.000000000 +0000
@@ -1572,6 +1572,8 @@
 #define PCI_VENDOR_ID_NVIDIA_SGS	0x12d2
 #define PCI_DEVICE_ID_NVIDIA_SGS_RIVA128 0x0018
 
+#define PCI_VENDOR_ID_ACULAB 0x12d9
+
 #define PCI_SUBVENDOR_ID_CHASE_PCIFAST		0x12E0
 #define PCI_SUBDEVICE_ID_CHASE_PCIFAST4		0x0031
 #define PCI_SUBDEVICE_ID_CHASE_PCIFAST8		0x0021

-- 
"You grabbed my hand and we fell into it, like a daydream - or a fever."

^ permalink raw reply

* Re: [2.4.32 - 2.6.15.4] e1000 - Fix mii interface
From: Jesse Brandeburg @ 2006-02-27 19:26 UTC (permalink / raw)
  To: Paul Rolland, Jeff Garzik
  Cc: Jesper Juhl, linux-kernel, netdev, cramerj, john.ronciak
In-Reply-To: <01e101c63ae7$1b417990$2001a8c0@cortex>

On 2/26/06, Paul Rolland <rol@witbe.net> wrote:
> Hello,
>
> > Ok, great, I was just wondering since I would have made one if you had
> > no plans to do so.
>
> Well, I was just waiting to make sure it was interesting for someone ;)
>
> Here is it, verified with tab and not spaces... but attached as my mailer
> is likely to cripple anything I try to inline...
>
> Signed-off-by: Paul Rolland <rol@as2917.net>

I've got an issue with this, as the same function is called in
e1000_ethtool.c.  I think the correct fix is to fix the caller in the
mii-tool case, but I am working on verifiying my assumptions.

In the meantime can you send the exact command you were having the problem with?

^ permalink raw reply

* Re: [PATCH] Revert sky2 to 0.13a
From: Carl-Daniel Hailfinger @ 2006-02-27 18:50 UTC (permalink / raw)
  To: pomac
  Cc: Arjan van de Ven, woho, Stephen Hemminger, Jeff Garzik, netdev,
	Pavel Volkovitskiy, Linux Kernel Mailing List
In-Reply-To: <1141001028.23375.14.camel@localhost>

Ian Kumlien schrieb:
> On Sun, 2006-02-26 at 23:38 +0100, Carl-Daniel Hailfinger wrote:
> 
>>Ian Kumlien schrieb:
>>
>>>I also saw some oddities... portage stopped working, i dunno if this can
>>>be MSI related or so, else something is trashing memory in a very
>>>special way =P
>>
>>Yes, 0.15 causes memory corruption even if MSI is disabled.
> 
> 
> So if i run with iommu=forced or what the hell the option is called i
> should be able to catch these trashings?
> 
> I also found it odd that it was only python that suffered... Starting
> large and long running C apps worked just fine.

For me, it was usually timer list corruption during boot (50% probability)
or unidentified lockups (probably also timer list corruption) after a few
minutes of operation (40% probability).
Sample Oops message:

Unable to handle kernel NULL pointer dereference at 00000008
rip: run_timer_softirq+322
process udev
Call trace:
__do_softirq+68
call_softirq+30
do_softirq+46
do_IRQ+61
ret_from_intr+0
EOI


Regards,
Carl-Daniel

^ permalink raw reply

* Re: [PATCH] Revert sky2 to 0.13a
From: Jeff Garzik @ 2006-02-27 18:38 UTC (permalink / raw)
  To: pomac
  Cc: Stephen Hemminger, woho, Carl-Daniel Hailfinger, Jeff Garzik,
	netdev, Pavel Volkovitskiy, Linux Kernel Mailing List
In-Reply-To: <1141064841.23375.36.camel@localhost>

Ian Kumlien wrote:
> On Mon, 2006-02-27 at 09:18 -0800, Stephen Hemminger wrote:
> 
>>On Mon, 27 Feb 2006 17:38:38 +0100
>>Wolfgang Hoffmann <woho@woho.de> wrote:
>>
>>>On Monday 27 February 2006 17:00, Stephen Hemminger wrote:
>>>2.6.16-rc5 with disable_msi=1 works for me, no hangs seen so far. I rsynced 80 
>>>GB of data, thats about 5-10 times more than I typically need to reproduce a 
>>>hang, so it seems to be solid. For the record: 2.6.16-rc5 with disable_msi=0 
>>>does hang.
>>>
>>>I have not seen the memory trashing others reported, with no version I tested 
>>>so far. Maybe my scenario is not likely to trigger this, so I can't tell.
>>>
>>>Unless a fix for msi is at hand, may I suggest for 2.6.16 to revert the msi 
>>>commit or switch the default to disable_msi=1?
>>>
>>>I've updated bugzilla #6084 accordingly.
>>
>>Okay, then what I need is lspci -v of all systems that have the problem, I'll make
>>a blacklist (or update PCI quirks). I suspect that MSI doesn't work for any devices
>>on these systems, or MSI changes the timing enough to expose existing races.
> 
> 
> Am i just tired from trying to make XSLT to do something unnatural or is
> there something odd going on in msi.c?
> 
> static void msi_set_mask_bit(unsigned int vector, int flag)
> {
>         struct msi_desc *entry;
> 
>         entry = (struct msi_desc *)msi_desc[vector];
>         if (!entry || !entry->dev || !entry->mask_base)
>                 return;
>         switch (entry->msi_attrib.type) {
>         case PCI_CAP_ID_MSI:
>         {
>                 int             pos;		<==
>                 u32             mask_bits;
> 
>                 pos = (long)entry->mask_base;	<==
> ...

Just from the casting it seems a bit bogus, yes...

	Jeff

^ permalink raw reply

* Re: [PATCH] Revert sky2 to 0.13a
From: Ian Kumlien @ 2006-02-27 18:27 UTC (permalink / raw)
  To: Stephen Hemminger
  Cc: woho, Carl-Daniel Hailfinger, Jeff Garzik, netdev,
	Pavel Volkovitskiy, Linux Kernel Mailing List
In-Reply-To: <20060227091837.3c214435@localhost.localdomain>

[-- Attachment #1: Type: text/plain, Size: 2021 bytes --]

On Mon, 2006-02-27 at 09:18 -0800, Stephen Hemminger wrote:
> On Mon, 27 Feb 2006 17:38:38 +0100
> Wolfgang Hoffmann <woho@woho.de> wrote:
> > On Monday 27 February 2006 17:00, Stephen Hemminger wrote:
> > 2.6.16-rc5 with disable_msi=1 works for me, no hangs seen so far. I rsynced 80 
> > GB of data, thats about 5-10 times more than I typically need to reproduce a 
> > hang, so it seems to be solid. For the record: 2.6.16-rc5 with disable_msi=0 
> > does hang.
> > 
> > I have not seen the memory trashing others reported, with no version I tested 
> > so far. Maybe my scenario is not likely to trigger this, so I can't tell.
> > 
> > Unless a fix for msi is at hand, may I suggest for 2.6.16 to revert the msi 
> > commit or switch the default to disable_msi=1?
> > 
> > I've updated bugzilla #6084 accordingly.
> 
> Okay, then what I need is lspci -v of all systems that have the problem, I'll make
> a blacklist (or update PCI quirks). I suspect that MSI doesn't work for any devices
> on these systems, or MSI changes the timing enough to expose existing races.

Am i just tired from trying to make XSLT to do something unnatural or is
there something odd going on in msi.c?

static void msi_set_mask_bit(unsigned int vector, int flag)
{
        struct msi_desc *entry;

        entry = (struct msi_desc *)msi_desc[vector];
        if (!entry || !entry->dev || !entry->mask_base)
                return;
        switch (entry->msi_attrib.type) {
        case PCI_CAP_ID_MSI:
        {
                int             pos;		<==
                u32             mask_bits;

                pos = (long)entry->mask_base;	<==
...

Doesn't that mean that we, a: read 64 bit from memory. b: save it in a
32 bit area?

(esp since it seems to be a address pointer, which could also be using
higher memory areas... but then i dunno what a void __iomem * is, but i
assume that it will be 64 bits here =))

-- 
Ian Kumlien <pomac () vapor ! com> -- http://pomac.netswarm.net

[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 200 bytes --]

^ permalink raw reply

* Re: [PATCH] Revert sky2 to 0.13a
From: Wolfgang Hoffmann @ 2006-02-27 17:48 UTC (permalink / raw)
  To: Stephen Hemminger
  Cc: pomac, Carl-Daniel Hailfinger, Jeff Garzik, netdev,
	Pavel Volkovitskiy, Linux Kernel Mailing List
In-Reply-To: <20060227091837.3c214435@localhost.localdomain>

[-- Attachment #1: Type: text/plain, Size: 330 bytes --]

On Monday 27 February 2006 18:18, Stephen Hemminger wrote:
> Okay, then what I need is lspci -v of all systems that have the problem,
> I'll make a blacklist (or update PCI quirks). I suspect that MSI doesn't
> work for any devices on these systems, or MSI changes the timing enough to
> expose existing races.

lspci -v attached

[-- Attachment #2: lspci.txt --]
[-- Type: text/plain, Size: 9470 bytes --]

0000:00:00.0 Host bridge: Intel Corporation Mobile 915GM/PM/GMS/910GML Express Processor to DRAM Controller (rev 03)
        Subsystem: AOPEN Inc.: Unknown device 2580
        Flags: bus master, fast devsel, latency 0
        Capabilities: [e0] #09 [2109]

0000:00:01.0 PCI bridge: Intel Corporation Mobile 915GM/PM Express PCI Express Root Port (rev 03) (prog-if 00 [Normal decode])
        Flags: bus master, fast devsel, latency 0
        Bus: primary=00, secondary=01, subordinate=01, sec-latency=0
        I/O behind bridge: 0000b000-0000bfff
        Memory behind bridge: da200000-da2fffff
        Prefetchable memory behind bridge: d0000000-d7ffffff
        Capabilities: [88] #0d [0000]
        Capabilities: [80] Power Management version 2
        Capabilities: [90] Message Signalled Interrupts: 64bit- Queue=0/0 Enable+
        Capabilities: [a0] #10 [0141]

0000:00:1b.0 0403: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) High Definition Audio Controller (rev 04)
        Subsystem: AOPEN Inc.: Unknown device 0560
        Flags: bus master, fast devsel, latency 0, IRQ 169
        Memory at da300000 (64-bit, non-prefetchable) [size=16K]
        Capabilities: [50] Power Management version 2
        Capabilities: [60] Message Signalled Interrupts: 64bit+ Queue=0/0 Enable-
        Capabilities: [70] #10 [0091]

0000:00:1c.0 PCI bridge: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) PCI Express Port 1 (rev 04) (prog-if 00 [Normal decode])
        Flags: bus master, fast devsel, latency 0
        Bus: primary=00, secondary=02, subordinate=02, sec-latency=0
        Capabilities: [40] #10 [0141]
        Capabilities: [80] Message Signalled Interrupts: 64bit- Queue=0/0 Enable+
        Capabilities: [90] #0d [0000]
        Capabilities: [a0] Power Management version 2

0000:00:1c.1 PCI bridge: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) PCI Express Port 2 (rev 04) (prog-if 00 [Normal decode])
        Flags: bus master, fast devsel, latency 0
        Bus: primary=00, secondary=03, subordinate=03, sec-latency=0
        I/O behind bridge: 0000c000-0000cfff
        Memory behind bridge: da000000-da0fffff
        Prefetchable memory behind bridge: 0000000088000000-0000000088000000
        Capabilities: [40] #10 [0141]
        Capabilities: [80] Message Signalled Interrupts: 64bit- Queue=0/0 Enable+
        Capabilities: [90] #0d [0000]
        Capabilities: [a0] Power Management version 2

0000:00:1c.2 PCI bridge: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) PCI Express Port 3 (rev 04) (prog-if 00 [Normal decode])
        Flags: bus master, fast devsel, latency 0
        Bus: primary=00, secondary=04, subordinate=04, sec-latency=0
        I/O behind bridge: 0000d000-0000dfff
        Memory behind bridge: da100000-da1fffff
        Prefetchable memory behind bridge: 0000000088100000-0000000088100000
        Capabilities: [40] #10 [0141]
        Capabilities: [80] Message Signalled Interrupts: 64bit- Queue=0/0 Enable+
        Capabilities: [90] #0d [0000]
        Capabilities: [a0] Power Management version 2

0000:00:1c.3 PCI bridge: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) PCI Express Port 4 (rev 04) (prog-if 00 [Normal decode])
        Flags: bus master, fast devsel, latency 0
        Bus: primary=00, secondary=05, subordinate=05, sec-latency=0
        Capabilities: [40] #10 [0141]
        Capabilities: [80] Message Signalled Interrupts: 64bit- Queue=0/0 Enable+
        Capabilities: [90] #0d [0000]
        Capabilities: [a0] Power Management version 2

0000:00:1d.0 USB Controller: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #1 (rev 04) (prog-if 00 [UHCI])
        Subsystem: AOPEN Inc.: Unknown device 2658
        Flags: bus master, medium devsel, latency 0, IRQ 58
        I/O ports at e000 [size=32]

0000:00:1d.1 USB Controller: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #2 (rev 04) (prog-if 00 [UHCI])
        Subsystem: AOPEN Inc.: Unknown device 2659
        Flags: bus master, medium devsel, latency 0, IRQ 193
        I/O ports at e100 [size=32]

0000:00:1d.2 USB Controller: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #3 (rev 04) (prog-if 00 [UHCI])
        Subsystem: AOPEN Inc.: Unknown device 265a
        Flags: bus master, medium devsel, latency 0, IRQ 185
        I/O ports at e200 [size=32]

0000:00:1d.3 USB Controller: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #4 (rev 04) (prog-if 00 [UHCI])
        Subsystem: AOPEN Inc.: Unknown device 265b
        Flags: bus master, medium devsel, latency 0, IRQ 169
        I/O ports at e300 [size=32]

0000:00:1d.7 USB Controller: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) USB2 EHCI Controller (rev 04) (prog-if 20 [EHCI])
        Subsystem: AOPEN Inc.: Unknown device 0553
        Flags: bus master, medium devsel, latency 0, IRQ 58
        Memory at da304000 (32-bit, non-prefetchable) [size=1K]
        Capabilities: [50] Power Management version 2

0000:00:1e.0 PCI bridge: Intel Corporation 82801 Mobile PCI Bridge (rev d4) (prog-if 01 [Subtractive decode])
        Flags: bus master, fast devsel, latency 0
        Bus: primary=00, secondary=06, subordinate=06, sec-latency=32
        Memory behind bridge: d8000000-d9ffffff
        Capabilities: [50] #0d [0000]

0000:00:1f.0 ISA bridge: Intel Corporation 82801FBM (ICH6M) LPC Interface Bridge (rev 04)
        Subsystem: Intel Corporation 82801FBM (ICH6M) LPC Interface Bridge
        Flags: bus master, medium devsel, latency 0

0000:00:1f.1 IDE interface: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) IDE Controller (rev 04) (prog-if 8a [Master SecP PriP])
        Subsystem: AOPEN Inc.: Unknown device 266f
        Flags: bus master, medium devsel, latency 0, IRQ 185
        I/O ports at <unassigned>
        I/O ports at <unassigned>
        I/O ports at <unassigned>
        I/O ports at <unassigned>
        I/O ports at f000 [size=16]

0000:00:1f.2 IDE interface: Intel Corporation 82801FBM (ICH6M) SATA Controller (rev 04) (prog-if 8f [Master SecP SecO PriP PriO])
        Subsystem: AOPEN Inc.: Unknown device 052f
        Flags: bus master, 66MHz, medium devsel, latency 0, IRQ 193
        I/O ports at e400 [size=8]
        I/O ports at e500 [size=4]
        I/O ports at e600 [size=8]
        I/O ports at e700 [size=4]
        I/O ports at e800 [size=16]
        Memory at da305000 (32-bit, non-prefetchable) [size=1K]
        Capabilities: [70] Power Management version 2

0000:00:1f.3 SMBus: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) SMBus Controller (rev 04)
        Subsystem: AOPEN Inc.: Unknown device 266a
        Flags: medium devsel, IRQ 11
        I/O ports at 5000 [size=32]

0000:01:00.0 VGA compatible controller: ATI Technologies Inc RV370 5B60 [Radeon X300 (PCIE)] (prog-if 00 [VGA])
        Subsystem: PC Partner Limited: Unknown device 0450
        Flags: bus master, fast devsel, latency 0, IRQ 5
        Memory at d0000000 (32-bit, prefetchable) [size=128M]
        I/O ports at b000 [size=256]
        Memory at da230000 (32-bit, non-prefetchable) [size=64K]
        Expansion ROM at da200000 [disabled] [size=128K]
        Capabilities: [50] Power Management version 2
        Capabilities: [58] #10 [0001]
        Capabilities: [80] Message Signalled Interrupts: 64bit+ Queue=0/0 Enable-

0000:01:00.1 Display controller: ATI Technologies Inc RV370 [Radeon X300SE]
        Subsystem: PC Partner Limited: Unknown device 0451
        Flags: bus master, fast devsel, latency 0
        Memory at da220000 (32-bit, non-prefetchable) [disabled] [size=64K]
        Capabilities: [50] Power Management version 2
        Capabilities: [58] #10 [0001]

0000:03:00.0 Ethernet controller: Marvell Technology Group Ltd. 88E8053 Gigabit Ethernet Controller (rev 19)
        Subsystem: AOPEN Inc. Marvell 88E8053 Gigabit Ethernet Controller (Aopen)
        Flags: bus master, fast devsel, latency 0, IRQ 177
        Memory at da020000 (64-bit, non-prefetchable) [size=16K]
        I/O ports at c000 [size=256]
        Expansion ROM at 88000000 [disabled] [size=128K]
        Capabilities: [48] Power Management version 2
        Capabilities: [50] Vital Product Data
        Capabilities: [5c] Message Signalled Interrupts: 64bit+ Queue=0/1 Enable-
        Capabilities: [e0] #10 [0011]

0000:04:00.0 Ethernet controller: Marvell Technology Group Ltd. 88E8053 Gigabit Ethernet Controller (rev 19)
        Subsystem: AOPEN Inc. Marvell 88E8053 Gigabit Ethernet Controller (Aopen)
        Flags: bus master, fast devsel, latency 0, IRQ 185
        Memory at da120000 (64-bit, non-prefetchable) [size=16K]
        I/O ports at d000 [size=256]
        Expansion ROM at 88100000 [disabled] [size=128K]
        Capabilities: [48] Power Management version 2
        Capabilities: [50] Vital Product Data
        Capabilities: [5c] Message Signalled Interrupts: 64bit+ Queue=0/1 Enable-
        Capabilities: [e0] #10 [0011]

0000:06:03.0 FireWire (IEEE 1394): Agere Systems FW323 (rev 61) (prog-if 10 [OHCI])
        Subsystem: AOPEN Inc.: Unknown device 030a
        Flags: bus master, medium devsel, latency 32, IRQ 66
        Memory at d9000000 (32-bit, non-prefetchable) [size=4K]
        Capabilities: [44] Power Management version 2

0000:06:05.0 Multimedia audio controller: Xilinx Corporation RME Digi96/8 Pad (rev 04)
        Flags: slow devsel, IRQ 177
        Memory at d8000000 (32-bit, non-prefetchable) [size=16M]


^ permalink raw reply

* Re: [Announce] Intel PRO/Wireless 3945ABG Network Connection
From: Stephen Hemminger @ 2006-02-27 17:34 UTC (permalink / raw)
  To: Christoph Hellwig
  Cc: Alan Cox, Christoph Hellwig, James Ketrenos, NetDev, linux-kernel,
	okir
In-Reply-To: <20060227171029.GA763@infradead.org>

On Mon, 27 Feb 2006 17:10:29 +0000
Christoph Hellwig <hch@infradead.org> wrote:

> On Sun, Feb 26, 2006 at 12:58:02AM +0000, Alan Cox wrote:
> > On Sad, 2006-02-25 at 08:41 +0000, Christoph Hellwig wrote:
> > > the regualatory problems are not true.  
> > 
> > They are although the binary interpretation isn't AFAIK from law but
> > from lawyers. The same is actually true in much of the EU. The actual
> > requirement is that the transmitting device must be reasonably
> > tamperproof. Some of the lawyers have decided that for a software radio
> > tamperproof means "binary".
> 
> Exactly.  There's no strong requirement, it's just over-zealous corporate
> lawyers.  That's why we need to push Intel strongly here.

It is not Intel, but the regulators that need a stronger clue. Vendors
don't have any incentive to force change on this. They just want to sell
as much hardware as possible.

Does anyone know who the actual FCC administrators in charge of this are?

^ permalink raw reply

* Re: [PATCH] Revert sky2 to 0.13a
From: Stephen Hemminger @ 2006-02-27 17:18 UTC (permalink / raw)
  To: woho
  Cc: pomac, Carl-Daniel Hailfinger, Jeff Garzik, netdev,
	Pavel Volkovitskiy, Linux Kernel Mailing List
In-Reply-To: <200602271738.38675.woho@woho.de>

On Mon, 27 Feb 2006 17:38:38 +0100
Wolfgang Hoffmann <woho@woho.de> wrote:

> On Monday 27 February 2006 17:00, Stephen Hemminger wrote:
> > On Mon, 27 Feb 2006 00:03:45 +0100
> >
> > Wolfgang Hoffmann <woho@woho.de> wrote:
> > > > Bisect done:
> > > >
> > > > 4d52b48b43d0d1d5959fa722ee0046e3542e5e1b is first bad commit
> > > >     [PATCH] sky2: support msi interrupt (revised)
> > > >
> > > > Reverting this commit in git head seems to work, at least the driver
> > > > builds and loads. Is that sane?
> > > >
> > > Ok, no hangs yet.
> > >
> > > Looking at the reverted commit, I wonder if modprobing sky2 with
> > > disable_msi=1 is equivalent to reverting the commit?
> >
> > Could you try the current code with the disable_msi option?
> > 	modprobe sky2 disable_msi=1
> >
> > That will run existing code without MSI.
> 
> 2.6.16-rc5 with disable_msi=1 works for me, no hangs seen so far. I rsynced 80 
> GB of data, thats about 5-10 times more than I typically need to reproduce a 
> hang, so it seems to be solid. For the record: 2.6.16-rc5 with disable_msi=0 
> does hang.
> 
> I have not seen the memory trashing others reported, with no version I tested 
> so far. Maybe my scenario is not likely to trigger this, so I can't tell.
> 
> Unless a fix for msi is at hand, may I suggest for 2.6.16 to revert the msi 
> commit or switch the default to disable_msi=1?
> 
> I've updated bugzilla #6084 accordingly.

Okay, then what I need is lspci -v of all systems that have the problem, I'll make
a blacklist (or update PCI quirks). I suspect that MSI doesn't work for any devices
on these systems, or MSI changes the timing enough to expose existing races. 

^ permalink raw reply

* Re: [Announce] Intel PRO/Wireless 3945ABG Network Connection
From: Christoph Hellwig @ 2006-02-27 17:10 UTC (permalink / raw)
  To: Alan Cox; +Cc: Christoph Hellwig, James Ketrenos, NetDev, linux-kernel, okir
In-Reply-To: <1140915482.23286.6.camel@localhost.localdomain>

On Sun, Feb 26, 2006 at 12:58:02AM +0000, Alan Cox wrote:
> On Sad, 2006-02-25 at 08:41 +0000, Christoph Hellwig wrote:
> > the regualatory problems are not true.  
> 
> They are although the binary interpretation isn't AFAIK from law but
> from lawyers. The same is actually true in much of the EU. The actual
> requirement is that the transmitting device must be reasonably
> tamperproof. Some of the lawyers have decided that for a software radio
> tamperproof means "binary".

Exactly.  There's no strong requirement, it's just over-zealous corporate
lawyers.  That's why we need to push Intel strongly here.

^ permalink raw reply

* Re: [PATCH] Revert sky2 to 0.13a
From: Wolfgang Hoffmann @ 2006-02-27 16:38 UTC (permalink / raw)
  To: Stephen Hemminger
  Cc: pomac, Carl-Daniel Hailfinger, Jeff Garzik, netdev,
	Pavel Volkovitskiy, Linux Kernel Mailing List
In-Reply-To: <20060227080042.0cf3f05d@localhost.localdomain>

On Monday 27 February 2006 17:00, Stephen Hemminger wrote:
> On Mon, 27 Feb 2006 00:03:45 +0100
>
> Wolfgang Hoffmann <woho@woho.de> wrote:
> > > Bisect done:
> > >
> > > 4d52b48b43d0d1d5959fa722ee0046e3542e5e1b is first bad commit
> > >     [PATCH] sky2: support msi interrupt (revised)
> > >
> > > Reverting this commit in git head seems to work, at least the driver
> > > builds and loads. Is that sane?
> > >
> > Ok, no hangs yet.
> >
> > Looking at the reverted commit, I wonder if modprobing sky2 with
> > disable_msi=1 is equivalent to reverting the commit?
>
> Could you try the current code with the disable_msi option?
> 	modprobe sky2 disable_msi=1
>
> That will run existing code without MSI.

2.6.16-rc5 with disable_msi=1 works for me, no hangs seen so far. I rsynced 80 
GB of data, thats about 5-10 times more than I typically need to reproduce a 
hang, so it seems to be solid. For the record: 2.6.16-rc5 with disable_msi=0 
does hang.

I have not seen the memory trashing others reported, with no version I tested 
so far. Maybe my scenario is not likely to trigger this, so I can't tell.

Unless a fix for msi is at hand, may I suggest for 2.6.16 to revert the msi 
commit or switch the default to disable_msi=1?

I've updated bugzilla #6084 accordingly.

^ permalink raw reply

* Re: [PATCH] Revert sky2 to 0.13a
From: Stephen Hemminger @ 2006-02-27 16:00 UTC (permalink / raw)
  To: woho
  Cc: pomac, Carl-Daniel Hailfinger, Jeff Garzik, netdev,
	Pavel Volkovitskiy, Linux Kernel Mailing List
In-Reply-To: <200602270003.46353.woho@woho.de>

On Mon, 27 Feb 2006 00:03:45 +0100
Wolfgang Hoffmann <woho@woho.de> wrote:

> On Sunday 26 February 2006 23:31, Wolfgang Hoffmann wrote:
> > On Sunday 26 February 2006 19:13, Wolfgang Hoffmann wrote:
> > > Ok, I did some reading and just started a git bisect. I didn't find hints
> > > on how to bisect if I'm only interested in changes to sky2.[ch], so I'm
> > > taking the full kernel tree and skip testing those bisect steps that
> > > didn't change sky2.[ch].
> > >
> > > Looking at Carl-Daniels 0.13a and Stephens patch against 0.15 in this
> > > thread, I'll patch each bisect step such that sky2_poll() has
> > >
> > >        sky2_write32(hw, STAT_CTRL, SC_STAT_CLR_IRQ);
> > >        if (sky2_read8(hw, STAT_LEV_TIMER_CTRL) == TIM_START) {
> > >                sky2_write8(hw, STAT_LEV_TIMER_CTRL, TIM_STOP);
> > >                sky2_write8(hw, STAT_LEV_TIMER_CTRL, TIM_START);
> > >         }
> > >
> > > after exit_loop. Is that ok?
> > >
> > > I'll report as soon as I have results.
> >
> > Bisect done:
> >
> > 4d52b48b43d0d1d5959fa722ee0046e3542e5e1b is first bad commit
> >     [PATCH] sky2: support msi interrupt (revised)
> >
> > Reverting this commit in git head seems to work, at least the driver builds
> > and loads. Is that sane?
> >
> > I'm currently testing this (without any further modifications), let's see
> > if it hangs or not.
> 
> Ok, no hangs yet.
> 
> This version passed a test scenario only 0.13a has survived so far. I'll 
> continue to use this to give it more testing tomorrow.
> 
> Looking at the reverted commit, I wonder if modprobing sky2 with disable_msi=1 
> is equivalent to reverting the commit?
> 

Could you try the current code with the disable_msi option?
	modprobe sky2 disable_msi=1

That will run existing code without MSI.

^ permalink raw reply

* Re: [PATH][RFC] acxsm: Make acx mdoular again
From: Carlos Martín @ 2006-02-27 10:44 UTC (permalink / raw)
  To: Denis Vlasenko; +Cc: netdev, acx100-devel, Christoph Hellwig
In-Reply-To: <200602271220.14853.vda@ilport.com.ua>

On Monday 27 February 2006 11:20, Denis Vlasenko wrote:
> > Comments are welcome and I'll split the patch if needed.
> 
> usb.c
> =====
> #define BOGUS_SAFETY_PADDING 0x40
> 
> int
> acxusb_s_issue_cmd_timeo(
>         acx_device_t *adev,
>         unsigned cmd,
>         void *buffer,
>         unsigned buflen,
>         unsigned timeout)
> {
> #if ACX_DEBUG
>         return acx_s_issue_cmd_timeo_debug(adev, cmd, buffer, buflen, 
timeout, __stringify(cmd));
> #else
>         return acx_s_issue_cmd_timeo_debug(adev, cmd, buffer, buflen, 
timeout);
> #endif
> }
> 
> stringify what? We want symbolic command name, not it's numeric value.
> stringifying must occur in .h file.

Missed that. The problem is that right now we need to reference the function. 
There's no real need for it, so I'll change it.

> 
> 
> acx_func.h
> ==========
> #if ACX_DEBUG
> 
> /* We want to log cmd names */
> int acxpci_s_issue_cmd_timeo_debug(acx_device_t *adev, unsigned cmd, void 
*param, unsigned len, unsigned timeout, const char* cmdstr);
> int acxusb_s_issue_cmd_timeo_debug(acx_device_t *adev, unsigned cmd, void 
*param, unsigned len, unsigned timeout, const char* cmdstr);
> static inline int
> acx_s_issue_cmd_timeo_debug(acx_device_t *adev, unsigned cmd, void *param, 
unsigned len, unsigned timeout, const char* cmdstr)
> {
>         if (IS_PCI(adev))
>                 return acxpci_s_issue_cmd_timeo_debug(adev, cmd, param, len, 
timeout, cmdstr);
>         return acxusb_s_issue_cmd_timeo_debug(adev, cmd, param, len, 
timeout, cmdstr);
> }
> int acx_s_issue_cmd(acx_device_t *adev, unsigned cmd, void *param, unsigned 
len);
> 
> It will recurse: acx_s_issue_cmd_timeo_debug -> 
acxusb_s_issue_cmd_timeo_debug -> acx_s_issue_cmd_timeo_debug ->....

I forgot to remove that function. In acxusb_s_issue_timeo, it should call 
acxusb_s_issue_cmd_timeo_{debug,nodebug}, not the generic function.

> Why do you need if (IS_PCI(adev)) at all?
> 
> Please apply the attached style fixes on top of your patches.

Will do.

   cmn
-- 
Carlos Martín Nieto    |   http://www.cmartin.tk
Hobbyist programmer    |


-------------------------------------------------------
This SF.Net email is sponsored by xPML, a groundbreaking scripting language
that extends applications into web and mobile media. Attend the live webcast
and join the prime developer group breaking into this new coding territory!
http://sel.as-us.falkag.net/sel?cmd=lnk&kid\x110944&bid$1720&dat\x121642

^ permalink raw reply


This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox