summaryrefslogtreecommitdiff
path: root/packages/ixp425-eth/ixp400-eth-1.5.1/stop-on-rmmod.patch
diff options
context:
space:
mode:
authorRod Whitby <rod@whitby.id.au>2006-06-24 07:20:47 +0000
committerOpenEmbedded Project <openembedded-devel@lists.openembedded.org>2006-06-24 07:20:47 +0000
commit55b70abcdb29a259439bb568759fba30baac1b02 (patch)
tree35e72c01577ca9f8e500f8b20e583db3d1c4a27a /packages/ixp425-eth/ixp400-eth-1.5.1/stop-on-rmmod.patch
parentdae6ee2ec2e83177a3b407486ee3291770bcbfca (diff)
ixp400-eth: Added version 1.5.1 - builds, untested
Diffstat (limited to 'packages/ixp425-eth/ixp400-eth-1.5.1/stop-on-rmmod.patch')
-rw-r--r--packages/ixp425-eth/ixp400-eth-1.5.1/stop-on-rmmod.patch29
1 files changed, 29 insertions, 0 deletions
diff --git a/packages/ixp425-eth/ixp400-eth-1.5.1/stop-on-rmmod.patch b/packages/ixp425-eth/ixp400-eth-1.5.1/stop-on-rmmod.patch
new file mode 100644
index 0000000000..2ddc98938a
--- /dev/null
+++ b/packages/ixp425-eth/ixp400-eth-1.5.1/stop-on-rmmod.patch
@@ -0,0 +1,29 @@
+devices must be explicitely stopped when
+the driver is going do be removed, otherwise
+it will simply hang.
+
+ ixp400_eth.c | 13 ++++++++++---
+ 1 file changed, 10 insertions(+), 3 deletions(-)
+
+--- ixp400-eth/ixp400_eth.c 1970-01-01 00:00:00.000000000 +0000
++++ ixp400-eth/ixp400_eth.c 1970-01-01 00:00:00.000000000 +0000
+@@ -3800,9 +3800,16 @@ void __exit ixp400_eth_exit(void)
+
+ TRACE;
+
+- /* We can only get here when the module use count is 0,
+- * so there's no need to stop devices.
+- */
++ /* stop devices */
++
++#if IS_KERNEL26
++ for (dev_count = 0;
++ dev_count < dev_max_count; /* module parameter */
++ dev_count++)
++ {
++ do_dev_stop(platform_get_drvdata(&ixp400_eth_devices[dev_count]));
++ }
++#endif
+
+ if (no_ixp400_sw_init == 0) /* module parameter */
+ {