Netdev List
 help / color / mirror / Atom feed
* Re: [PATCH] skge: get rid of warning on race
From: Dave Jones @ 2005-12-14  5:37 UTC (permalink / raw)
  To: Linux Kernel Mailing List; +Cc: Stephen Hemminger, Jeff Garzik, netdev
In-Reply-To: <200512130559.jBD5xUjf015319@hera.kernel.org>

On Mon, Dec 12, 2005 at 09:59:30PM -0800, Linux Kernel wrote:
 > tree 987cfbd2134b82bea55c55fa17bd70d29df70458
 > parent 0e670506668a43e1355b8f10c33d081a676bd521
 > author Stephen Hemminger <shemminger@osdl.org> Wed, 07 Dec 2005 07:01:49 -0800
 > committer Jeff Garzik <jgarzik@pobox.com> Tue, 13 Dec 2005 09:33:03 -0500
 > 
 > [PATCH] skge: get rid of warning on race
 > 
 > Get rid of warning in case of race with ring full and lockless
 > tx on the skge driver. It is possible to be in the transmit
 > routine with no available slots and already stopped.
 > 
 > Signed-off-by: Stephen Hemminger <shemminger@osdl.org>
 > Signed-off-by: Jeff Garzik <jgarzik@pobox.com>

You've traded a warning for something more serious :)

now I get...

drivers/net/skge.ko needs unknown symbol netif_stopped


		Dave

^ permalink raw reply

* ßÌgÈÌqÈçCCRg
From: sayaka3u @ 2005-12-14  4:16 UTC (permalink / raw)
  To: netdev



^ permalink raw reply

* Re: [PATCH] natsemi: NAPI support
From: Mark Brown @ 2005-12-13 22:59 UTC (permalink / raw)
  To: Jeff Garzik; +Cc: Tim Hockin, Francois Romieu, netdev, linux-kernel
In-Reply-To: <439E14F0.4040001@pobox.com>

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

On Mon, Dec 12, 2005 at 07:25:20PM -0500, Jeff Garzik wrote:

> Was it updated per the comments you received on the first posting?

I think I addressed everything, yes.

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

[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 307 bytes --]

^ permalink raw reply

* Male sexual enhancement formula
From: Noll Simon @ 2005-12-13 22:40 UTC (permalink / raw)
  To: netdev

Dude check out this sweet site!
http://www.jeykop.com/pt/



Perhaps God is not dead; perhaps God is himself mad.   
Action: the last resource of those who know not how to dream. 

It is useless to send armies against ideas.     
Where there is no vision, the people perish.     

^ permalink raw reply

* [patch 2/2] [PATCH] br: fix race on bridge del if
From: Greg Kroah-Hartman @ 2005-12-13 21:59 UTC (permalink / raw)
  To: linux-kernel, stable
  Cc: Justin Forbes, Zwane Mwaikambo, Theodore Ts'o, Randy Dunlap,
	Dave Jones, Chuck Wolber, torvalds, akpm, alan, ryanh, davem,
	netdev
In-Reply-To: <20051213215936.GA16739@kroah.com>

[-- Attachment #1: br-fix-race-on-bridge-del-if.patch --]
[-- Type: text/plain, Size: 1234 bytes --]

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

------------------
From: Stephen Hemminger <shemminger@osdl.org>

This fixes the RCU race on bridge delete interface.  Basically,
the network device has to be detached from the bridge in the first
step (pre-RCU), rather than later. At that point, no more bridge traffic
will come in, and the other code will not think that network device
is part of a bridge.

This should also fix the XEN test problems. If there is another
2.6.13-stable, add it as well.

Signed-off-by: Stephen Hemminger <shemminger@osdl.org>
Signed-off-by: Chris Wright <chrisw@osdl.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
---
 net/bridge/br_if.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

--- linux-2.6.13.4.orig/net/bridge/br_if.c
+++ linux-2.6.13.4/net/bridge/br_if.c
@@ -79,7 +79,6 @@ static void destroy_nbp(struct net_bridg
 {
 	struct net_device *dev = p->dev;
 
-	dev->br_port = NULL;
 	p->br = NULL;
 	p->dev = NULL;
 	dev_put(dev);
@@ -100,6 +99,7 @@ static void del_nbp(struct net_bridge_po
 	struct net_bridge *br = p->br;
 	struct net_device *dev = p->dev;
 
+	dev->br_port = NULL;
 	dev_set_promiscuity(dev, -1);
 
 	spin_lock_bh(&br->lock);

--

^ permalink raw reply

* CONGRATULATION YOU WON EURO LOTTERY INTERNATIONAL
From: eurolotto eurolotto @ 2005-12-13 18:02 UTC (permalink / raw)




EURO LOTTERY INTERNATIONAL
PLAZA DE ALFONSO
B56-58 MADRID SPAIN
TEL:0034-657-479-849
FAX.+34-91-141-42-14
Reply e-mail:euroloto123@ozu.es
www.bonoloto.com

We are officially informing you of the result of the euro lottery
International programs held on the 13th 0f december 2005 , Your e-mail
address attached to ticket number 412781475-28df with reference number
01/372/16, drew winning numbers 857/106/62 andcredited to batch number
2231,
which consequently won in the 2rd category.You have therefore been
approved
for a pay out of 250,000 euro (Two hundred and fifty thousand euro).

CONGRATULATIONS!!!
You funds are now deposited and save in bank of españa and will be
transferred into your nominated bank account either by means of wire
transfer or by whatever suitable means.

Due to mix up of some numbers and names, we ask that you keep your
winning
information very confidential till your claim has been processed and
your
prize/money Remitted to you. This is part of our security protocol to
avoid
double claims and unwarranted abuse  of this program by some
participants.

All participants were selected through a computer ballot system drawn
from
over 50,000 company and 20,000,000 individual email addresses and names
from
all over the world. This promotional program takes place annually. We
hope
with part of your winning you will take part in our next year three
Million
euro/asia International Lottery. To file for your claim, you will be
contacting MR martins Alonso the accredited finance agent authorised to
process your claims for your payment(You will receive more information
from
our fidiciary agent.


This lottery was sponsored by Cortingles incorporation,communidad de
madrid,and other private organisations to help individuals generate
fortunes
which would help them expand their business frontiers and assist with
humanitarian concerns.
Please Note that winnings must be claimed not later than 30th of
December
2005. After this date all unclaimed funds will be returned to the
sponsors
against the next stake coming up in 2006. Please note that in order to
avoid
unnecessary delays and complications remember to quote your reference
number
in all correspondence.

Furthermore, should there be any change of address do inform us as soon
as
possible. Congratulations from our organisation and thank you for being
part
of our promotional program.

Sincerely yours
mrs LAURA JOSE
Tel:0034-657-479-849
FAX.+34-91-141-42-14
Reply e-mail:euroloto123@ozu.es
www.bonoloto.com

^ permalink raw reply

* Congratulation You Won !!!
From: eurolotto eurolotto @ 2005-12-13 17:31 UTC (permalink / raw)


EURO LOTTERY INTERNATIONAL
PLAZA DE ALFONSO
B56-58 MADRID SPAIN
TEL:0034-657-479-849
FAX.+34-91-141-42-14
Reply e-mail:euroloto2005@ozu.es
www.bonoloto.com

We are officially informing you of the result of the euro lottery 
International programs held on the 12th 0f November 2005 , Your e-mail 
address attached to ticket number 412781475-28df with reference number 
01/372/16, drew winning numbers 857/106/62 andcredited to batch number 2231, 
which consequently won in the 2rd category.You have therefore been approved 
for a pay out of 250,000 euro (Two hundred and fifty thousand euro).

CONGRATULATIONS!!!
You funds are now deposited and save in bank of españa and will be 
transferred into your nominated bank account either by means of wire 
transfer or by whatever suitable means.

Due to mix up of some numbers and names, we ask that you keep your winning 
information very confidential till your claim has been processed and your 
prize/money Remitted to you. This is part of our security protocol to avoid 
double claims and unwarranted abuse  of this program by some participants.

All participants were selected through a computer ballot system drawn from 
over 50,000 company and 20,000,000 individual email addresses and names from 
all over the world. This promotional program takes place annually. We hope 
with part of your winning you will take part in our next year three Million 
euro/asia International Lottery. To file for your claim, you will be 
contacting MR martins Alonso the accredited finance agent authorised to 
process your claims for your payment(You will receive more information from 
our fidiciary agent.


This lottery was sponsored by Cortingles incorporation,communidad de 
madrid,and other private organisations to help individuals generate fortunes 
which would help them expand their business frontiers and assist with 
humanitarian concerns.
Please Note that winnings must be claimed not later than 30th of December 
2005. After this date all unclaimed funds will be returned to the sponsors 
against the next stake coming up in 2006. Please note that in order to avoid 
unnecessary delays and complications remember to quote your reference number 
in all correspondence.

Furthermore, should there be any change of address do inform us as soon as 
possible. Congratulations from our organisation and thank you for being part 
of our promotional program.

Sincerely yours
mrs LAURA JOSE
Tel:0034-657-479-849
FAX.+34-91-141-42-14
Reply e-mail:euroloto2005@ozu.es
www.bonoloto.com

^ permalink raw reply

* [git patch] net driver build fix
From: Jeff Garzik @ 2005-12-13 16:37 UTC (permalink / raw)
  To: Andrew Morton, Linus Torvalds; +Cc: netdev, linux-kernel


Please pull from 'upstream-fixes' branch of
master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/netdev-2.6.git

to receive the following updates:

 drivers/net/skge.c |    2 +-
 1 files changed, 1 insertion(+), 1 deletion(-)

Jeff Garzik:
      [netdrvr skge] fix build

diff --git a/drivers/net/skge.c b/drivers/net/skge.c
index 8b6e2a1..00d6830 100644
--- a/drivers/net/skge.c
+++ b/drivers/net/skge.c
@@ -2280,7 +2280,7 @@ static int skge_xmit_frame(struct sk_buf
  	}
 
 	if (unlikely(skge->tx_avail < skb_shinfo(skb)->nr_frags +1)) {
-		if (!netif_stopped(dev)) {
+		if (!netif_queue_stopped(dev)) {
 			netif_stop_queue(dev);
 
 			printk(KERN_WARNING PFX "%s: ring full when queue awake!\n",

^ permalink raw reply related

* [patch 07/26] [NETLINK]: Fix processing of fib_lookup netlink messages
From: Greg KH @ 2005-12-13  8:22 UTC (permalink / raw)
  To: linux-kernel, stable
  Cc: Justin Forbes, Zwane Mwaikambo, Theodore Ts'o, Randy Dunlap,
	Dave Jones, Chuck Wolber, torvalds, akpm, alan, tgraf, davem,
	netdev
In-Reply-To: <20051213082143.GA5823@kroah.com>

[-- Attachment #1: fix-processing-of-fib_lookup-netlink-messages.patch --]
[-- Type: text/plain, Size: 1179 bytes --]

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

------------------
From: Thomas Graf <tgraf@suug.ch>

The receive path for fib_lookup netlink messages is lacking sanity
checks for header and payload and is thus vulnerable to malformed
netlink messages causing illegal memory references.

Signed-off-by: Thomas Graf <tgraf@suug.ch>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

---
 net/ipv4/fib_frontend.c |    8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

--- linux-2.6.14.3.orig/net/ipv4/fib_frontend.c
+++ linux-2.6.14.3/net/ipv4/fib_frontend.c
@@ -545,12 +545,16 @@ static void nl_fib_input(struct sock *sk
 	struct sk_buff *skb = NULL;
         struct nlmsghdr *nlh = NULL;
 	struct fib_result_nl *frn;
-	int err;
 	u32 pid;     
 	struct fib_table *tb;
 	
-	skb = skb_recv_datagram(sk, 0, 0, &err);
+	skb = skb_dequeue(&sk->sk_receive_queue);
 	nlh = (struct nlmsghdr *)skb->data;
+	if (skb->len < NLMSG_SPACE(0) || skb->len < nlh->nlmsg_len ||
+	    nlh->nlmsg_len < NLMSG_LENGTH(sizeof(*frn))) {
+		kfree_skb(skb);
+		return;
+	}
 	
 	frn = (struct fib_result_nl *) NLMSG_DATA(nlh);
 	tb = fib_get_table(frn->tb_id_in);

--

^ permalink raw reply

* [patch 3/3] s390: remove redundant and useless code in qeth
From: Frank Pavlic @ 2005-12-13  7:23 UTC (permalink / raw)
  To: jgarzik; +Cc: linux-kernel, netdev


[patch 3/3] s390: remove redundant and useless code in qeth

From: Frank Pavlic <pavlic@de.ibm.com>
	- remove redundant and useless code in qeth for 
	  procfs operations.
	- update Revision numbers 	  
Signed-off-by: Frank Pavlic <pavlic@de.ibm.com>

diffstat:
 qeth_main.c |    6 -
 qeth_mpc.c  |    2 
 qeth_mpc.h  |    2 
 qeth_proc.c |  250 ++++++------------------------------------------------------
 qeth_sys.c  |    4 
 qeth_tso.h  |    4 
 6 files changed, 38 insertions(+), 230 deletions(-)

diff -Naupr linux-orig/drivers/s390/net/qeth_main.c linux-patched/drivers/s390/net/qeth_main.c
--- linux-orig/drivers/s390/net/qeth_main.c	2005-12-12 19:01:34.000000000 +0100
+++ linux-patched/drivers/s390/net/qeth_main.c	2005-12-12 19:13:30.000000000 +0100
@@ -1,6 +1,6 @@
 /*
  *
- * linux/drivers/s390/net/qeth_main.c ($Revision: 1.246 $)
+ * linux/drivers/s390/net/qeth_main.c ($Revision: 1.251 $)
  *
  * Linux on zSeries OSA Express and HiperSockets support
  *
@@ -12,7 +12,7 @@
  *			  Frank Pavlic (fpavlic@de.ibm.com) and
  *		 	  Thomas Spatzier <tspat@de.ibm.com>
  *
- *    $Revision: 1.242 $	 $Date: 2005/05/04 20:19:18 $
+ *    $Revision: 1.251 $	 $Date: 2005/05/04 20:19:18 $
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -72,7 +72,7 @@
 #include "qeth_eddp.h"
 #include "qeth_tso.h"
 
-#define VERSION_QETH_C "$Revision: 1.246 $"
+#define VERSION_QETH_C "$Revision: 1.251 $"
 static const char *version = "qeth S/390 OSA-Express driver";
 
 /**
diff -Naupr linux-orig/drivers/s390/net/qeth_mpc.c linux-patched/drivers/s390/net/qeth_mpc.c
--- linux-orig/drivers/s390/net/qeth_mpc.c	2005-12-12 17:33:48.000000000 +0100
+++ linux-patched/drivers/s390/net/qeth_mpc.c	2005-12-12 19:13:41.000000000 +0100
@@ -11,7 +11,7 @@
 #include <asm/cio.h>
 #include "qeth_mpc.h"
 
-const char *VERSION_QETH_MPC_C = "$Revision: 1.12 $";
+const char *VERSION_QETH_MPC_C = "$Revision: 1.13 $";
 
 unsigned char IDX_ACTIVATE_READ[]={
 	0x00,0x00,0x80,0x00, 0x00,0x00,0x00,0x00,
diff -Naupr linux-orig/drivers/s390/net/qeth_mpc.h linux-patched/drivers/s390/net/qeth_mpc.h
--- linux-orig/drivers/s390/net/qeth_mpc.h	2005-12-12 19:01:34.000000000 +0100
+++ linux-patched/drivers/s390/net/qeth_mpc.h	2005-12-12 19:13:54.000000000 +0100
@@ -14,7 +14,7 @@
 
 #include <asm/qeth.h>
 
-#define VERSION_QETH_MPC_H "$Revision: 1.44 $"
+#define VERSION_QETH_MPC_H "$Revision: 1.46 $"
 
 extern const char *VERSION_QETH_MPC_C;
 
diff -Naupr linux-orig/drivers/s390/net/qeth_proc.c linux-patched/drivers/s390/net/qeth_proc.c
--- linux-orig/drivers/s390/net/qeth_proc.c	2005-12-12 17:33:48.000000000 +0100
+++ linux-patched/drivers/s390/net/qeth_proc.c	2005-12-12 19:03:53.000000000 +0100
@@ -1,6 +1,6 @@
 /*
  *
- * linux/drivers/s390/net/qeth_fs.c ($Revision: 1.13 $)
+ * linux/drivers/s390/net/qeth_fs.c ($Revision: 1.16 $)
  *
  * Linux on zSeries OSA Express and HiperSockets support
  * This file contains code related to procfs.
@@ -21,7 +21,7 @@
 #include "qeth_mpc.h"
 #include "qeth_fs.h"
 
-const char *VERSION_QETH_PROC_C = "$Revision: 1.13 $";
+const char *VERSION_QETH_PROC_C = "$Revision: 1.16 $";
 
 /***** /proc/qeth *****/
 #define QETH_PROCFILE_NAME "qeth"
@@ -30,30 +30,26 @@ static struct proc_dir_entry *qeth_procf
 static int
 qeth_procfile_seq_match(struct device *dev, void *data)
 {
-	return 1;
+	return(dev ? 1 : 0);
 }
 
 static void *
 qeth_procfile_seq_start(struct seq_file *s, loff_t *offset)
 {
-	struct device *dev;
-	loff_t nr;
-
+	struct device *dev = NULL;
+	loff_t nr = 0;
+	
 	down_read(&qeth_ccwgroup_driver.driver.bus->subsys.rwsem);
-
-	nr = *offset;
-	if (nr == 0)
+	if (*offset == 0)
 		return SEQ_START_TOKEN;
-
-	dev = driver_find_device(&qeth_ccwgroup_driver.driver, NULL,
-				 NULL, qeth_procfile_seq_match);
-
-	/* get card at pos *offset */
-	nr = *offset;
-	while (nr-- > 1 && dev)
+	while (1) {
 		dev = driver_find_device(&qeth_ccwgroup_driver.driver, dev,
 					 NULL, qeth_procfile_seq_match);
-	return (void *) dev;
+		if (++nr == *offset)
+			break;
+		put_device(dev);
+	}
+	return dev;
 }
 
 static void
@@ -66,19 +62,14 @@ static void *
 qeth_procfile_seq_next(struct seq_file *s, void *it, loff_t *offset)
 {
 	struct device *prev, *next;
-
-	if (it == SEQ_START_TOKEN) {
-		next = driver_find_device(&qeth_ccwgroup_driver.driver,
-					  NULL, NULL, qeth_procfile_seq_match);
-		if (next)
-			(*offset)++;
-		return (void *) next;
-	}
-	prev = (struct device *) it;
+	
+	if (it == SEQ_START_TOKEN) 
+		prev = NULL;
+	else
+		prev = (struct device *) it;
 	next = driver_find_device(&qeth_ccwgroup_driver.driver,
 				  prev, NULL, qeth_procfile_seq_match);
-	if (next)
-		(*offset)++;
+	(*offset)++;
 	return (void *) next;
 }
 
@@ -87,7 +78,7 @@ qeth_get_router_str(struct qeth_card *ca
 {
 	int routing_type = 0;
 
-	if (ipv == 4){
+	if (ipv == 4) {
 		routing_type = card->options.route4.type;
 	} else {
 #ifdef CONFIG_QETH_IPV6
@@ -154,6 +145,7 @@ qeth_procfile_seq_show(struct seq_file *
 					card->qdio.in_buf_pool.buf_count);
 		else
 			seq_printf(s, "  +++ LAN OFFLINE +++\n");
+		put_device(device);
 	}
 	return 0;
 }
@@ -184,51 +176,16 @@ static struct file_operations qeth_procf
 static struct proc_dir_entry *qeth_perf_procfile;
 
 #ifdef CONFIG_QETH_PERF_STATS
-
-static void *
-qeth_perf_procfile_seq_start(struct seq_file *s, loff_t *offset)
-{
-	struct device *dev = NULL;
-	int nr;
-
-	down_read(&qeth_ccwgroup_driver.driver.bus->subsys.rwsem);
-	/* get card at pos *offset */
-	dev = driver_find_device(&qeth_ccwgroup_driver.driver, NULL, NULL,
-				 qeth_procfile_seq_match);
-
-	/* get card at pos *offset */
-	nr = *offset;
-	while (nr-- > 1 && dev)
-		dev = driver_find_device(&qeth_ccwgroup_driver.driver, dev,
-					 NULL, qeth_procfile_seq_match);
-	return (void *) dev;
-}
-
-static void
-qeth_perf_procfile_seq_stop(struct seq_file *s, void* it)
-{
-	up_read(&qeth_ccwgroup_driver.driver.bus->subsys.rwsem);
-}
-
-static void *
-qeth_perf_procfile_seq_next(struct seq_file *s, void *it, loff_t *offset)
-{
-	struct device *prev, *next;
-
-	prev = (struct device *) it;
-	next = driver_find_device(&qeth_ccwgroup_driver.driver, prev,
-				  NULL, qeth_procfile_seq_match);
-	if (next)
-		(*offset)++;
-	return (void *) next;
-}
-
 static int
 qeth_perf_procfile_seq_show(struct seq_file *s, void *it)
 {
 	struct device *device;
 	struct qeth_card *card;
 
+	
+	if (it == SEQ_START_TOKEN)
+		return 0;
+
 	device = (struct device *) it;
 	card = device->driver_data;
 	seq_printf(s, "For card with devnos %s/%s/%s (%s):\n",
@@ -295,13 +252,14 @@ qeth_perf_procfile_seq_show(struct seq_f
 		        card->perf_stats.outbound_do_qdio_time,
 			card->perf_stats.outbound_do_qdio_cnt
 		  );
+	put_device(device);
 	return 0;
 }
 
 static struct seq_operations qeth_perf_procfile_seq_ops = {
-	.start = qeth_perf_procfile_seq_start,
-	.stop  = qeth_perf_procfile_seq_stop,
-	.next  = qeth_perf_procfile_seq_next,
+	.start = qeth_procfile_seq_start,
+	.stop  = qeth_procfile_seq_stop,
+	.next  = qeth_procfile_seq_next,
 	.show  = qeth_perf_procfile_seq_show,
 };
 
@@ -324,93 +282,6 @@ static struct file_operations qeth_perf_
 #define qeth_perf_procfile_created 1
 #endif /* CONFIG_QETH_PERF_STATS */
 
-/***** /proc/qeth_ipa_takeover *****/
-#define QETH_IPATO_PROCFILE_NAME "qeth_ipa_takeover"
-static struct proc_dir_entry *qeth_ipato_procfile;
-
-static void *
-qeth_ipato_procfile_seq_start(struct seq_file *s, loff_t *offset)
-{
-	struct device *dev;
-	loff_t nr;
-
-	down_read(&qeth_ccwgroup_driver.driver.bus->subsys.rwsem);
-	/* TODO: finish this */
-	/*
-	 * maybe SEQ_SATRT_TOKEN can be returned for offset 0
-	 * output driver settings then;
-	 * else output setting for respective card
-	 */
-
-	dev = driver_find_device(&qeth_ccwgroup_driver.driver, NULL, NULL,
-				 qeth_procfile_seq_match);
-
-	/* get card at pos *offset */
-	nr = *offset;
-	while (nr-- > 1 && dev)
-		dev = driver_find_device(&qeth_ccwgroup_driver.driver, dev,
-					 NULL, qeth_procfile_seq_match);
-	return (void *) dev;
-}
-
-static void
-qeth_ipato_procfile_seq_stop(struct seq_file *s, void* it)
-{
-	up_read(&qeth_ccwgroup_driver.driver.bus->subsys.rwsem);
-}
-
-static void *
-qeth_ipato_procfile_seq_next(struct seq_file *s, void *it, loff_t *offset)
-{
-	struct device *prev, *next;
-
-	prev = (struct device *) it;
-	next = driver_find_device(&qeth_ccwgroup_driver.driver, prev,
-				  NULL, qeth_procfile_seq_match);
-	if (next)
-		(*offset)++;
-	return (void *) next;
-}
-
-static int
-qeth_ipato_procfile_seq_show(struct seq_file *s, void *it)
-{
-	struct device *device;
-	struct qeth_card *card;
-
-	/* TODO: finish this */
-	/*
-	 * maybe SEQ_SATRT_TOKEN can be returned for offset 0
-	 * output driver settings then;
-	 * else output setting for respective card
-	 */
-	device = (struct device *) it;
-	card = device->driver_data;
-
-	return 0;
-}
-
-static struct seq_operations qeth_ipato_procfile_seq_ops = {
-	.start = qeth_ipato_procfile_seq_start,
-	.stop  = qeth_ipato_procfile_seq_stop,
-	.next  = qeth_ipato_procfile_seq_next,
-	.show  = qeth_ipato_procfile_seq_show,
-};
-
-static int
-qeth_ipato_procfile_open(struct inode *inode, struct file *file)
-{
-	return seq_open(file, &qeth_ipato_procfile_seq_ops);
-}
-
-static struct file_operations qeth_ipato_procfile_fops = {
-	.owner   = THIS_MODULE,
-	.open    = qeth_ipato_procfile_open,
-	.read    = seq_read,
-	.llseek  = seq_lseek,
-	.release = seq_release,
-};
-
 int __init
 qeth_create_procfs_entries(void)
 {
@@ -426,13 +297,7 @@ qeth_create_procfs_entries(void)
 		qeth_perf_procfile->proc_fops = &qeth_perf_procfile_fops;
 #endif /* CONFIG_QETH_PERF_STATS */
 
-	qeth_ipato_procfile = create_proc_entry(QETH_IPATO_PROCFILE_NAME,
-					   S_IFREG | 0444, NULL);
-	if (qeth_ipato_procfile)
-		qeth_ipato_procfile->proc_fops = &qeth_ipato_procfile_fops;
-
 	if (qeth_procfile &&
-	    qeth_ipato_procfile &&
 	    qeth_perf_procfile_created)
 		return 0;
 	else
@@ -446,62 +311,5 @@ qeth_remove_procfs_entries(void)
 		remove_proc_entry(QETH_PROCFILE_NAME, NULL);
 	if (qeth_perf_procfile)
 		remove_proc_entry(QETH_PERF_PROCFILE_NAME, NULL);
-	if (qeth_ipato_procfile)
-		remove_proc_entry(QETH_IPATO_PROCFILE_NAME, NULL);
-}
-
-
-/* ONLY FOR DEVELOPMENT! -> make it as module */
-/*
-static void
-qeth_create_sysfs_entries(void)
-{
-	struct device *dev;
-
-	down_read(&qeth_ccwgroup_driver.driver.bus->subsys.rwsem);
-
-	list_for_each_entry(dev, &qeth_ccwgroup_driver.driver.devices,
-			driver_list)
-		qeth_create_device_attributes(dev);
-
-	up_read(&qeth_ccwgroup_driver.driver.bus->subsys.rwsem);
-}
-
-static void
-qeth_remove_sysfs_entries(void)
-{
-	struct device *dev;
-
-	down_read(&qeth_ccwgroup_driver.driver.bus->subsys.rwsem);
-
-	list_for_each_entry(dev, &qeth_ccwgroup_driver.driver.devices,
-			driver_list)
-		qeth_remove_device_attributes(dev);
-
-	up_read(&qeth_ccwgroup_driver.driver.bus->subsys.rwsem);
-}
-
-static int __init
-qeth_fs_init(void)
-{
-	printk(KERN_INFO "qeth_fs_init\n");
-	qeth_create_procfs_entries();
-	qeth_create_sysfs_entries();
-
-	return 0;
 }
 
-static void __exit
-qeth_fs_exit(void)
-{
-	printk(KERN_INFO "qeth_fs_exit\n");
-	qeth_remove_procfs_entries();
-	qeth_remove_sysfs_entries();
-}
-
-
-module_init(qeth_fs_init);
-module_exit(qeth_fs_exit);
-
-MODULE_LICENSE("GPL");
-*/
diff -Naupr linux-orig/drivers/s390/net/qeth_sys.c linux-patched/drivers/s390/net/qeth_sys.c
--- linux-orig/drivers/s390/net/qeth_sys.c	2005-12-12 18:15:36.000000000 +0100
+++ linux-patched/drivers/s390/net/qeth_sys.c	2005-12-12 19:14:23.000000000 +0100
@@ -1,6 +1,6 @@
 /*
  *
- * linux/drivers/s390/net/qeth_sys.c ($Revision: 1.59 $)
+ * linux/drivers/s390/net/qeth_sys.c ($Revision: 1.60 $)
  *
  * Linux on zSeries OSA Express and HiperSockets support
  * This file contains code related to sysfs.
@@ -20,7 +20,7 @@
 #include "qeth_mpc.h"
 #include "qeth_fs.h"
 
-const char *VERSION_QETH_SYS_C = "$Revision: 1.59 $";
+const char *VERSION_QETH_SYS_C = "$Revision: 1.60 $";
 
 /*****************************************************************************/
 /*                                                                           */
diff -Naupr linux-orig/drivers/s390/net/qeth_tso.h linux-patched/drivers/s390/net/qeth_tso.h
--- linux-orig/drivers/s390/net/qeth_tso.h	2005-12-12 17:33:48.000000000 +0100
+++ linux-patched/drivers/s390/net/qeth_tso.h	2005-12-12 19:14:53.000000000 +0100
@@ -1,5 +1,5 @@
 /*
- * linux/drivers/s390/net/qeth_tso.h ($Revision: 1.7 $)
+ * linux/drivers/s390/net/qeth_tso.h ($Revision: 1.8 $)
  *
  * Header file for qeth TCP Segmentation Offload support.
  *
@@ -7,7 +7,7 @@
  *
  *    Author(s): Frank Pavlic <fpavlic@de.ibm.com>
  *
- *    $Revision: 1.7 $	 $Date: 2005/05/04 20:19:18 $
+ *    $Revision: 1.8 $	 $Date: 2005/05/04 20:19:18 $
  *
  */
 #ifndef __QETH_TSO_H__

^ permalink raw reply

* [patch 2/3] s390: minor qeth network driver fixes
From: Frank Pavlic @ 2005-12-13  7:22 UTC (permalink / raw)
  To: jgarzik; +Cc: linux-kernel, netdev


[patch 2/3] s390: minor qeth network driver fixes

From: Frank Pavlic <pavlic@de.ibm.com>
	- use netif_carrier_on/off calls to tell network stack 
	  link carrier state
	- fix possible kfree on NULL 
	- PDU_LEN2 is at offset 0x29 otherwise OSN chpid won't initialize 

Signed-off-by: Frank Pavlic <pavlic@de.ibm.com>

diffstat:
 qeth_eddp.c |    3 ++-
 qeth_main.c |   17 +++++++----------
 qeth_mpc.h  |    2 +-
 3 files changed, 10 insertions(+), 12 deletions(-)

diff -Naupr linux-orig/drivers/s390/net/qeth_eddp.c linux-patched/drivers/s390/net/qeth_eddp.c
--- linux-orig/drivers/s390/net/qeth_eddp.c	2005-12-12 17:33:48.000000000 +0100
+++ linux-patched/drivers/s390/net/qeth_eddp.c	2005-12-12 18:56:23.000000000 +0100
@@ -62,7 +62,8 @@ qeth_eddp_free_context(struct qeth_eddp_
 	for (i = 0; i < ctx->num_pages; ++i)
 		free_page((unsigned long)ctx->pages[i]);
 	kfree(ctx->pages);
-	kfree(ctx->elements);
+	if (ctx->elements != NULL)
+		kfree(ctx->elements);
 	kfree(ctx);
 }
 
diff -Naupr linux-orig/drivers/s390/net/qeth_main.c linux-patched/drivers/s390/net/qeth_main.c
--- linux-orig/drivers/s390/net/qeth_main.c	2005-12-12 18:15:36.000000000 +0100
+++ linux-patched/drivers/s390/net/qeth_main.c	2005-12-12 18:56:23.000000000 +0100
@@ -518,7 +518,8 @@ __qeth_set_offline(struct ccwgroup_devic
 
 	QETH_DBF_TEXT(setup, 3, "setoffl");
 	QETH_DBF_HEX(setup, 3, &card, sizeof(void *));
-
+	
+	netif_carrier_off(card->dev);
 	recover_flag = card->state;
 	if (qeth_stop_card(card, recovery_mode) == -ERESTARTSYS){
 		PRINT_WARN("Stopping card %s interrupted by user!\n",
@@ -1020,7 +1021,6 @@ void
 qeth_schedule_recovery(struct qeth_card *card)
 {
 	QETH_DBF_TEXT(trace,2,"startrec");
-
 	if (qeth_set_thread_start_bit(card, QETH_RECOVER_THREAD) == 0)
 		schedule_work(&card->kernel_thread_starter);
 }
@@ -1710,7 +1710,6 @@ qeth_check_ipa_data(struct qeth_card *ca
 					   "IP address reset.\n",
 					   QETH_CARD_IFNAME(card),
 					   card->info.chpid);
-				netif_carrier_on(card->dev);
 				qeth_schedule_recovery(card);
 				return NULL;
 			case IPA_CMD_MODCCID:
@@ -1959,7 +1958,7 @@ qeth_osn_send_ipa_cmd(struct qeth_card *
 {
 	u16 s1, s2;
 
-QETH_DBF_TEXT(trace,4,"osndipa");
+	QETH_DBF_TEXT(trace,4,"osndipa");
 
 	qeth_prepare_ipa_cmd(card, iob, QETH_PROT_OSN2);
 	s1 = (u16)(IPA_PDU_HEADER_SIZE + data_len);
@@ -3809,10 +3808,8 @@ qeth_open(struct net_device *dev)
 	card->data.state = CH_STATE_UP;
 	card->state = CARD_STATE_UP;
 
-	if (!card->lan_online){
-		if (netif_carrier_ok(dev))
-			netif_carrier_off(dev);
-	}
+	if (!card->lan_online && netif_carrier_ok(dev))
+		netif_carrier_off(dev);
 	return 0;
 }
 
@@ -7936,8 +7933,8 @@ __qeth_set_online(struct ccwgroup_device
 		QETH_DBF_TEXT_(setup, 2, "6err%d", rc);
 		goto out_remove;
 	}
-/*maybe it was set offline without ifconfig down
- * we can also use this state for recovery purposes*/
+	netif_carrier_on(card->dev);
+
 	qeth_set_allowed_threads(card, 0xffffffff, 0);
 	if (recover_flag == CARD_STATE_RECOVER)
 		qeth_start_again(card, recovery_mode);
diff -Naupr linux-orig/drivers/s390/net/qeth_mpc.h linux-patched/drivers/s390/net/qeth_mpc.h
--- linux-orig/drivers/s390/net/qeth_mpc.h	2005-12-12 17:33:48.000000000 +0100
+++ linux-patched/drivers/s390/net/qeth_mpc.h	2005-12-12 18:56:23.000000000 +0100
@@ -21,7 +21,7 @@ extern const char *VERSION_QETH_MPC_C;
 #define IPA_PDU_HEADER_SIZE	0x40
 #define QETH_IPA_PDU_LEN_TOTAL(buffer) (buffer+0x0e)
 #define QETH_IPA_PDU_LEN_PDU1(buffer) (buffer+0x26)
-#define QETH_IPA_PDU_LEN_PDU2(buffer) (buffer+0x2a)
+#define QETH_IPA_PDU_LEN_PDU2(buffer) (buffer+0x29)
 #define QETH_IPA_PDU_LEN_PDU3(buffer) (buffer+0x3a)
 
 extern unsigned char IPA_PDU_HEADER[];

^ permalink raw reply

* [patch 1/3] s390: some minor qeth driver fixes
From: Frank Pavlic @ 2005-12-13  7:21 UTC (permalink / raw)
  To: jgarzik; +Cc: linux-kernel, netdev


[patch 1/3] s390: some minor qeth driver fixes

From: Frank Pavlic <pavlic@de.ibm.com>
	- let's have just one function for both ,input and output queue
	  to check qdio errors
	- add /proc/s390dbf/qeth_qerr entries for outbound processing
	- check removed for layer2 device in qeth_add_multicast_ipv6
	- NULL pointer dereference with bonding and VLAN device fixed
	- minimum length check for portname fixed
	
Signed-off-by: Frank Pavlic <pavlic@de.ibm.com>

diffstat:
qeth_main.c |   42 +++++++++++++++++++++---------------------
qeth_sys.c  |    6 +++---
2 files changed, 24 insertions(+), 24 deletions(-)

diff -Naupr linux-orig/drivers/s390/net/qeth_main.c linux-patched/drivers/s390/net/qeth_main.c
--- linux-orig/drivers/s390/net/qeth_main.c	2005-12-12 17:33:48.000000000 +0100
+++ linux-patched/drivers/s390/net/qeth_main.c	2005-12-12 17:46:31.000000000 +0100
@@ -1,6 +1,6 @@
 /*
  *
- * linux/drivers/s390/net/qeth_main.c ($Revision: 1.242 $)
+ * linux/drivers/s390/net/qeth_main.c ($Revision: 1.246 $)
  *
  * Linux on zSeries OSA Express and HiperSockets support
  *
@@ -72,7 +72,7 @@
 #include "qeth_eddp.h"
 #include "qeth_tso.h"
 
-#define VERSION_QETH_C "$Revision: 1.242 $"
+#define VERSION_QETH_C "$Revision: 1.246 $"
 static const char *version = "qeth S/390 OSA-Express driver";
 
 /**
@@ -2203,24 +2203,21 @@ qeth_ulp_setup(struct qeth_card *card)
 }
 
 static inline int
-qeth_check_for_inbound_error(struct qeth_qdio_buffer *buf,
-			     unsigned int qdio_error,
-			     unsigned int siga_error)
+qeth_check_qdio_errors(struct qdio_buffer *buf, unsigned int qdio_error,
+		       unsigned int siga_error, const char *dbftext)
 {
-	int rc = 0;
-
 	if (qdio_error || siga_error) {
-		QETH_DBF_TEXT(trace, 2, "qdinerr");
-		QETH_DBF_TEXT(qerr, 2, "qdinerr");
+		QETH_DBF_TEXT(trace, 2, dbftext);
+		QETH_DBF_TEXT(qerr, 2, dbftext);
 		QETH_DBF_TEXT_(qerr, 2, " F15=%02X",
-			       buf->buffer->element[15].flags & 0xff);
+			       buf->element[15].flags & 0xff);
 		QETH_DBF_TEXT_(qerr, 2, " F14=%02X",
-			       buf->buffer->element[14].flags & 0xff);
+			       buf->element[14].flags & 0xff);
 		QETH_DBF_TEXT_(qerr, 2, " qerr=%X", qdio_error);
 		QETH_DBF_TEXT_(qerr, 2, " serr=%X", siga_error);
-		rc = 1;
+		return 1;
 	}
-	return rc;
+	return 0;
 }
 
 static inline struct sk_buff *
@@ -2769,8 +2766,9 @@ qeth_qdio_input_handler(struct ccw_devic
 	for (i = first_element; i < (first_element + count); ++i) {
 		index = i % QDIO_MAX_BUFFERS_PER_Q;
 		buffer = &card->qdio.in_q->bufs[index];
-		if (!((status == QDIO_STATUS_LOOK_FOR_ERROR) &&
-		      qeth_check_for_inbound_error(buffer, qdio_err, siga_err)))
+		if (!((status & QDIO_STATUS_LOOK_FOR_ERROR) &&
+		      qeth_check_qdio_errors(buffer->buffer, 
+					     qdio_err, siga_err,"qinerr")))
 			qeth_process_inbound_buffer(card, buffer, index);
 		/* clear buffer and give back to hardware */
 		qeth_put_buffer_pool_entry(card, buffer->pool_entry);
@@ -2785,12 +2783,13 @@ qeth_qdio_input_handler(struct ccw_devic
 static inline int
 qeth_handle_send_error(struct qeth_card *card,
 		       struct qeth_qdio_out_buffer *buffer,
-		       int qdio_err, int siga_err)
+		       unsigned int qdio_err, unsigned int siga_err)
 {
 	int sbalf15 = buffer->buffer->element[15].flags & 0xff;
 	int cc = siga_err & 3;
 
 	QETH_DBF_TEXT(trace, 6, "hdsnderr");
+	qeth_check_qdio_errors(buffer->buffer, qdio_err, siga_err, "qouterr");
 	switch (cc) {
 	case 0:
 		if (qdio_err){
@@ -3047,7 +3046,8 @@ qeth_qdio_output_handler(struct ccw_devi
 	for(i = first_element; i < (first_element + count); ++i){
 		buffer = &queue->bufs[i % QDIO_MAX_BUFFERS_PER_Q];
 		/*we only handle the KICK_IT error by doing a recovery */
-		if (qeth_handle_send_error(card, buffer, qdio_error, siga_error)
+		if (qeth_handle_send_error(card, buffer,
+					   qdio_error, siga_error)
 				== QETH_SEND_ERROR_KICK_IT){
 			netif_stop_queue(card->dev);
 			qeth_schedule_recovery(card);
@@ -3289,7 +3289,6 @@ qeth_init_qdio_info(struct qeth_card *ca
 	card->qdio.in_buf_pool.buf_count = card->qdio.init_pool.buf_count;
 	INIT_LIST_HEAD(&card->qdio.in_buf_pool.entry_list);
 	INIT_LIST_HEAD(&card->qdio.init_pool.entry_list);
-	/* outbound */
 }
 
 static int
@@ -3731,6 +3730,9 @@ qeth_verify_vlan_dev(struct net_device *
 			break;
 		}
 	}
+	if (rc && !(VLAN_DEV_INFO(dev)->real_dev->priv == (void *)card))
+		return 0;
+
 #endif
 	return rc;
 }
@@ -5870,10 +5872,8 @@ qeth_add_multicast_ipv6(struct qeth_card
 	struct inet6_dev *in6_dev;
 
 	QETH_DBF_TEXT(trace,4,"chkmcv6");
-	if ((card->options.layer2 == 0) &&
-	    (!qeth_is_supported(card, IPA_IPV6)) )
+	if (!qeth_is_supported(card, IPA_IPV6)) 
 		return ;
-
 	in6_dev = in6_dev_get(card->dev);
 	if (in6_dev == NULL)
 		return;
diff -Naupr linux-orig/drivers/s390/net/qeth_sys.c linux-patched/drivers/s390/net/qeth_sys.c
--- linux-orig/drivers/s390/net/qeth_sys.c	2005-12-12 17:33:48.000000000 +0100
+++ linux-patched/drivers/s390/net/qeth_sys.c	2005-12-12 17:39:41.000000000 +0100
@@ -1,6 +1,6 @@
 /*
  *
- * linux/drivers/s390/net/qeth_sys.c ($Revision: 1.58 $)
+ * linux/drivers/s390/net/qeth_sys.c ($Revision: 1.59 $)
  *
  * Linux on zSeries OSA Express and HiperSockets support
  * This file contains code related to sysfs.
@@ -20,7 +20,7 @@
 #include "qeth_mpc.h"
 #include "qeth_fs.h"
 
-const char *VERSION_QETH_SYS_C = "$Revision: 1.58 $";
+const char *VERSION_QETH_SYS_C = "$Revision: 1.59 $";
 
 /*****************************************************************************/
 /*                                                                           */
@@ -160,7 +160,7 @@ qeth_dev_portname_store(struct device *d
 		return -EPERM;
 
 	tmp = strsep((char **) &buf, "\n");
-	if ((strlen(tmp) > 8) || (strlen(tmp) < 2))
+	if ((strlen(tmp) > 8) || (strlen(tmp) == 0))
 		return -EINVAL;
 
 	card->info.portname[0] = strlen(tmp);

^ permalink raw reply

* [git patches] more net driver fixes
From: Jeff Garzik @ 2005-12-13  5:33 UTC (permalink / raw)
  To: Andrew Morton, Linus Torvalds; +Cc: netdev, linux-kernel


Please pull from 'upstream-fixes' branch of
master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/netdev-2.6.git

to receive the following updates:

 drivers/net/skge.c    |   10 ++++++----
 net/ieee80211/Kconfig |    2 +-
 2 files changed, 7 insertions(+), 5 deletions(-)

Olaf Hering:
      ieee80211_crypt_tkip depends on NET_RADIO

Stephen Hemminger:
      skge: get rid of warning on race

diff --git a/drivers/net/skge.c b/drivers/net/skge.c
index 7164678..8b6e2a1 100644
--- a/drivers/net/skge.c
+++ b/drivers/net/skge.c
@@ -2280,11 +2280,13 @@ static int skge_xmit_frame(struct sk_buf
  	}
 
 	if (unlikely(skge->tx_avail < skb_shinfo(skb)->nr_frags +1)) {
-		netif_stop_queue(dev);
-		spin_unlock_irqrestore(&skge->tx_lock, flags);
+		if (!netif_stopped(dev)) {
+			netif_stop_queue(dev);
 
-		printk(KERN_WARNING PFX "%s: ring full when queue awake!\n",
-		       dev->name);
+			printk(KERN_WARNING PFX "%s: ring full when queue awake!\n",
+			       dev->name);
+		}
+		spin_unlock_irqrestore(&skge->tx_lock, flags);
 		return NETDEV_TX_BUSY;
 	}
 
diff --git a/net/ieee80211/Kconfig b/net/ieee80211/Kconfig
index 91b16fb..d18ccba 100644
--- a/net/ieee80211/Kconfig
+++ b/net/ieee80211/Kconfig
@@ -55,7 +55,7 @@ config IEEE80211_CRYPT_CCMP
 
 config IEEE80211_CRYPT_TKIP
 	tristate "IEEE 802.11i TKIP encryption"
-	depends on IEEE80211
+	depends on IEEE80211 && NET_RADIO
 	select CRYPTO
 	select CRYPTO_MICHAEL_MIC
 	---help---

^ permalink raw reply related

* [2.6 patch] kill drivers/net/irda/sir_core.c
From: Adrian Bunk @ 2005-12-13  2:29 UTC (permalink / raw)
  To: Andrew Morton; +Cc: Jean Tourrilhes, jgarzik, netdev, linux-kernel

EXPORT_SYMBOL's do nowadays belong to the files where the actual 
functions are.

Moving the module_init/module_exit to the file with the actual functions 
has the advantage of saving a few bytes due to the removal of two 
functions.


Signed-off-by: Adrian Bunk <bunk@stusta.de>
Acked-by: Jean Tourrilhes <jt@hpl.hp.com>

---

This patch was already sent on:
- 21 Nov 2005

 drivers/net/irda/Makefile      |    2 -
 drivers/net/irda/sir-dev.h     |    2 -
 drivers/net/irda/sir_core.c    |   56 ---------------------------------
 drivers/net/irda/sir_dev.c     |   10 +++++
 drivers/net/irda/sir_dongle.c  |    2 +
 drivers/net/irda/sir_kthread.c |   11 +++++-
 6 files changed, 21 insertions(+), 62 deletions(-)

--- linux-2.6.15-rc1-mm2-full/drivers/net/irda/Makefile.old	2005-11-20 20:22:17.000000000 +0100
+++ linux-2.6.15-rc1-mm2-full/drivers/net/irda/Makefile	2005-11-20 20:22:24.000000000 +0100
@@ -45,4 +45,4 @@
 obj-$(CONFIG_MA600_DONGLE)	+= ma600-sir.o
 
 # The SIR helper module
-sir-dev-objs := sir_core.o sir_dev.o sir_dongle.o sir_kthread.o
+sir-dev-objs := sir_dev.o sir_dongle.o sir_kthread.o
--- linux-2.6.15-rc1-mm2-full/drivers/net/irda/sir-dev.h.old	2005-11-20 20:18:25.000000000 +0100
+++ linux-2.6.15-rc1-mm2-full/drivers/net/irda/sir-dev.h	2005-11-20 20:18:37.000000000 +0100
@@ -133,8 +133,6 @@
 
 extern void sirdev_enable_rx(struct sir_dev *dev);
 extern int sirdev_schedule_request(struct sir_dev *dev, int state, unsigned param);
-extern int __init irda_thread_create(void);
-extern void __exit irda_thread_join(void);
 
 /* inline helpers */
 
--- linux-2.6.15-rc1-mm2-full/drivers/net/irda/sir_kthread.c.old	2005-11-20 20:18:47.000000000 +0100
+++ linux-2.6.15-rc1-mm2-full/drivers/net/irda/sir_kthread.c	2005-11-20 20:42:21.000000000 +0100
@@ -466,7 +466,7 @@
 	return 0;
 }
 
-int __init irda_thread_create(void)
+static int __init irda_thread_create(void)
 {
 	struct completion startup;
 	int pid;
@@ -488,7 +488,7 @@
 	return 0;
 }
 
-void __exit irda_thread_join(void) 
+static void __exit irda_thread_join(void) 
 {
 	if (irda_rq_queue.thread) {
 		flush_irda_queue();
@@ -499,3 +499,10 @@
 	}
 }
 
+module_init(irda_thread_create);
+module_exit(irda_thread_join);
+
+MODULE_AUTHOR("Martin Diehl <info@mdiehl.de>");
+MODULE_DESCRIPTION("IrDA SIR core");
+MODULE_LICENSE("GPL");
+
--- linux-2.6.15-rc1-mm2-full/drivers/net/irda/sir_dongle.c.old	2005-11-20 20:21:23.000000000 +0100
+++ linux-2.6.15-rc1-mm2-full/drivers/net/irda/sir_dongle.c	2005-11-20 20:22:02.000000000 +0100
@@ -50,6 +50,7 @@
 	up(&dongle_list_lock);
 	return 0;
 }
+EXPORT_SYMBOL(irda_register_dongle);
 
 int irda_unregister_dongle(struct dongle_driver *drv)
 {
@@ -58,6 +59,7 @@
 	up(&dongle_list_lock);
 	return 0;
 }
+EXPORT_SYMBOL(irda_unregister_dongle);
 
 int sirdev_get_dongle(struct sir_dev *dev, IRDA_DONGLE type)
 {
--- linux-2.6.15-rc1-mm2-full/drivers/net/irda/sir_dev.c.old	2005-11-20 20:22:37.000000000 +0100
+++ linux-2.6.15-rc1-mm2-full/drivers/net/irda/sir_dev.c	2005-11-20 20:24:00.000000000 +0100
@@ -60,6 +60,7 @@
 	up(&dev->fsm.sem);
 	return err;
 }
+EXPORT_SYMBOL(sirdev_set_dongle);
 
 /* used by dongle drivers for dongle programming */
 
@@ -94,6 +95,7 @@
 	spin_unlock_irqrestore(&dev->tx_lock, flags);
 	return ret;
 }
+EXPORT_SYMBOL(sirdev_raw_write);
 
 /* seems some dongle drivers may need this */
 
@@ -116,6 +118,7 @@
 
 	return count;
 }
+EXPORT_SYMBOL(sirdev_raw_read);
 
 int sirdev_set_dtr_rts(struct sir_dev *dev, int dtr, int rts)
 {
@@ -124,7 +127,8 @@
 		ret =  dev->drv->set_dtr_rts(dev, dtr, rts);
 	return ret;
 }
-	
+EXPORT_SYMBOL(sirdev_set_dtr_rts);
+
 /**********************************************************************/
 
 /* called from client driver - likely with bh-context - to indicate
@@ -227,6 +231,7 @@
 done:
 	spin_unlock_irqrestore(&dev->tx_lock, flags);
 }
+EXPORT_SYMBOL(sirdev_write_complete);
 
 /* called from client driver - likely with bh-context - to give us
  * some more received bytes. We put them into the rx-buffer,
@@ -279,6 +284,7 @@
 
 	return 0;
 }
+EXPORT_SYMBOL(sirdev_receive);
 
 /**********************************************************************/
 
@@ -641,6 +647,7 @@
 out:
 	return NULL;
 }
+EXPORT_SYMBOL(sirdev_get_instance);
 
 int sirdev_put_instance(struct sir_dev *dev)
 {
@@ -673,4 +680,5 @@
 
 	return 0;
 }
+EXPORT_SYMBOL(sirdev_put_instance);
 
--- linux-2.6.15-rc1-mm2-full/drivers/net/irda/sir_core.c	2005-11-20 20:24:09.000000000 +0100
+++ /dev/null	2005-11-08 19:07:57.000000000 +0100
@@ -1,56 +0,0 @@
-/*********************************************************************
- *
- *	sir_core.c:	module core for irda-sir abstraction layer
- *
- *	Copyright (c) 2002 Martin Diehl
- * 
- *	This program is free software; you can redistribute it and/or 
- *	modify it under the terms of the GNU General Public License as 
- *	published by the Free Software Foundation; either version 2 of 
- *	the License, or (at your option) any later version.
- *
- ********************************************************************/    
-
-#include <linux/module.h>
-#include <linux/kernel.h>
-#include <linux/init.h>
-
-#include <net/irda/irda.h>
-
-#include "sir-dev.h"
-
-/***************************************************************************/
-
-MODULE_AUTHOR("Martin Diehl <info@mdiehl.de>");
-MODULE_DESCRIPTION("IrDA SIR core");
-MODULE_LICENSE("GPL");
-
-/***************************************************************************/
-
-EXPORT_SYMBOL(irda_register_dongle);
-EXPORT_SYMBOL(irda_unregister_dongle);
-
-EXPORT_SYMBOL(sirdev_get_instance);
-EXPORT_SYMBOL(sirdev_put_instance);
-
-EXPORT_SYMBOL(sirdev_set_dongle);
-EXPORT_SYMBOL(sirdev_write_complete);
-EXPORT_SYMBOL(sirdev_receive);
-
-EXPORT_SYMBOL(sirdev_raw_write);
-EXPORT_SYMBOL(sirdev_raw_read);
-EXPORT_SYMBOL(sirdev_set_dtr_rts);
-
-static int __init sir_core_init(void)
-{
-	return irda_thread_create();
-}
-
-static void __exit sir_core_exit(void)
-{
-	irda_thread_join();
-}
-
-module_init(sir_core_init);
-module_exit(sir_core_exit);
-

^ permalink raw reply

* Registration_Confirmation
From: Admin @ 2005-12-13  1:24 UTC (permalink / raw)
  To: e-user

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

Account and Password Information are attached!


***** Go to: http://www.hotmail.com
***** Email: postman@hotmail.com

[-- Attachment #2: reg_pass.zip --]
[-- Type: application/octet-stream, Size: 55536 bytes --]

^ permalink raw reply

* Re: [PATCH] natsemi: NAPI support
From: Jeff Garzik @ 2005-12-13  0:25 UTC (permalink / raw)
  To: Mark Brown; +Cc: Tim Hockin, Francois Romieu, netdev, linux-kernel
In-Reply-To: <20051212235531.GB3714@sirena.org.uk>

Mark Brown wrote:
> This patch against 2.6.14 converts the natsemi driver to use NAPI.  It
> was originally based on one written by Harald Welte, though it has since
> been modified quite a bit, most extensively in order to remove the
> ability to disable NAPI since none of the other drivers seem to provide
> that functionality any more.
> 
> Signed-off-by: Mark Brown <broonie@sirena.org.uk>

Was it updated per the comments you received on the first posting?

	Jeff

^ permalink raw reply

* [PATCH] natsemi: NAPI support
From: Mark Brown @ 2005-12-12 23:55 UTC (permalink / raw)
  To: Tim Hockin; +Cc: Francois Romieu, netdev, linux-kernel
In-Reply-To: <20051209104832.GA3677@sirena.org.uk>

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

This patch against 2.6.14 converts the natsemi driver to use NAPI.  It
was originally based on one written by Harald Welte, though it has since
been modified quite a bit, most extensively in order to remove the
ability to disable NAPI since none of the other drivers seem to provide
that functionality any more.

Signed-off-by: Mark Brown <broonie@sirena.org.uk>

---

This revision of the patch:
 - Doesn't sleep with the device spinlock held in suspend().
 - Improves the synchronisation between poll() and the shutdown paths.

--- linux-2.6.14/drivers/net/natsemi.c.orig	2005-11-29 19:29:12.000000000 +0000
+++ linux/drivers/net/natsemi.c	2005-12-11 14:55:48.000000000 +0000
@@ -3,6 +3,7 @@
 	Written/copyright 1999-2001 by Donald Becker.
 	Portions copyright (c) 2001,2002 Sun Microsystems (thockin@sun.com)
 	Portions copyright 2001,2002 Manfred Spraul (manfred@colorfullife.com)
+	Portions copyright 2004 Harald Welte <laforge@gnumonks.org>
 
 	This software may be used and distributed according to the terms of
 	the GNU General Public License (GPL), incorporated herein by reference.
@@ -135,8 +136,6 @@
 
 	TODO:
 	* big endian support with CFG:BEM instead of cpu_to_le32
-	* support for an external PHY
-	* NAPI
 */
 
 #include <linux/config.h>
@@ -160,6 +159,7 @@
 #include <linux/mii.h>
 #include <linux/crc32.h>
 #include <linux/bitops.h>
+#include <linux/prefetch.h>
 #include <asm/processor.h>	/* Processor type for cache alignment. */
 #include <asm/io.h>
 #include <asm/irq.h>
@@ -183,8 +183,6 @@
 				 NETIF_MSG_TX_ERR)
 static int debug = -1;
 
-/* Maximum events (Rx packets, etc.) to handle at each interrupt. */
-static int max_interrupt_work = 20;
 static int mtu;
 
 /* Maximum number of multicast addresses to filter (vs. rx-all-multicast).
@@ -251,14 +249,11 @@ MODULE_AUTHOR("Donald Becker <becker@scy
 MODULE_DESCRIPTION("National Semiconductor DP8381x series PCI Ethernet driver");
 MODULE_LICENSE("GPL");
 
-module_param(max_interrupt_work, int, 0);
 module_param(mtu, int, 0);
 module_param(debug, int, 0);
 module_param(rx_copybreak, int, 0);
 module_param_array(options, int, NULL, 0);
 module_param_array(full_duplex, int, NULL, 0);
-MODULE_PARM_DESC(max_interrupt_work, 
-	"DP8381x maximum events handled per interrupt");
 MODULE_PARM_DESC(mtu, "DP8381x MTU (all boards)");
 MODULE_PARM_DESC(debug, "DP8381x default debug level");
 MODULE_PARM_DESC(rx_copybreak, 
@@ -691,6 +686,8 @@ struct netdev_private {
 	/* Based on MTU+slack. */
 	unsigned int rx_buf_sz;
 	int oom;
+	/* Interrupt status */
+	u32 intr_status;
 	/* Do not touch the nic registers */
 	int hands_off;
 	/* external phy that is used: only valid if dev->if_port != PORT_TP */
@@ -748,7 +745,8 @@ static void init_registers(struct net_de
 static int start_tx(struct sk_buff *skb, struct net_device *dev);
 static irqreturn_t intr_handler(int irq, void *dev_instance, struct pt_regs *regs);
 static void netdev_error(struct net_device *dev, int intr_status);
-static void netdev_rx(struct net_device *dev);
+static int natsemi_poll(struct net_device *dev, int *budget);
+static void netdev_rx(struct net_device *dev, int *work_done, int work_to_do);
 static void netdev_tx_done(struct net_device *dev);
 static int natsemi_change_mtu(struct net_device *dev, int new_mtu);
 #ifdef CONFIG_NET_POLL_CONTROLLER
@@ -776,6 +774,18 @@ static inline void __iomem *ns_ioaddr(st
 	return (void __iomem *) dev->base_addr;
 }
 
+static inline void natsemi_irq_enable(struct net_device *dev)
+{
+	writel(1, ns_ioaddr(dev) + IntrEnable);
+	readl(ns_ioaddr(dev) + IntrEnable);
+}
+
+static inline void natsemi_irq_disable(struct net_device *dev)
+{
+	writel(0, ns_ioaddr(dev) + IntrEnable);
+	readl(ns_ioaddr(dev) + IntrEnable);
+}
+
 static void move_int_phy(struct net_device *dev, int addr)
 {
 	struct netdev_private *np = netdev_priv(dev);
@@ -879,6 +889,7 @@ static int __devinit natsemi_probe1 (str
 	spin_lock_init(&np->lock);
 	np->msg_enable = (debug >= 0) ? (1<<debug)-1 : NATSEMI_DEF_MSG;
 	np->hands_off = 0;
+	np->intr_status = 0;
 
 	/* Initial port:
 	 * - If the nic was configured to use an external phy and if find_mii
@@ -932,6 +943,9 @@ static int __devinit natsemi_probe1 (str
 	dev->do_ioctl = &netdev_ioctl;
 	dev->tx_timeout = &tx_timeout;
 	dev->watchdog_timeo = TX_TIMEOUT;
+	dev->poll = natsemi_poll;
+	dev->weight = 64;
+
 #ifdef CONFIG_NET_POLL_CONTROLLER
 	dev->poll_controller = &natsemi_poll_controller;
 #endif
@@ -2158,68 +2172,92 @@ static void netdev_tx_done(struct net_de
 	}
 }
 
-/* The interrupt handler does all of the Rx thread work and cleans up
-   after the Tx thread. */
+/* The interrupt handler doesn't actually handle interrupts itself, it
+ * schedules a NAPI poll if there is anything to do. */
 static irqreturn_t intr_handler(int irq, void *dev_instance, struct pt_regs *rgs)
 {
 	struct net_device *dev = dev_instance;
 	struct netdev_private *np = netdev_priv(dev);
 	void __iomem * ioaddr = ns_ioaddr(dev);
-	int boguscnt = max_interrupt_work;
-	unsigned int handled = 0;
 
 	if (np->hands_off)
 		return IRQ_NONE;
-	do {
-		/* Reading automatically acknowledges all int sources. */
-		u32 intr_status = readl(ioaddr + IntrStatus);
+	
+	/* Reading automatically acknowledges. */
+	np->intr_status = readl(ioaddr + IntrStatus);
 
-		if (netif_msg_intr(np))
-			printk(KERN_DEBUG
-				"%s: Interrupt, status %#08x, mask %#08x.\n",
-				dev->name, intr_status,
-				readl(ioaddr + IntrMask));
+	if (netif_msg_intr(np))
+		printk(KERN_DEBUG
+		       "%s: Interrupt, status %#08x, mask %#08x.\n",
+		       dev->name, np->intr_status,
+		       readl(ioaddr + IntrMask));
 
-		if (intr_status == 0)
-			break;
-		handled = 1;
+	if (!np->intr_status) 
+		return IRQ_NONE;
 
-		if (intr_status &
-		   (IntrRxDone | IntrRxIntr | RxStatusFIFOOver |
-		    IntrRxErr | IntrRxOverrun)) {
-			netdev_rx(dev);
-		}
+	prefetch(&np->rx_skbuff[np->cur_rx % RX_RING_SIZE]);
+
+	if (netif_rx_schedule_prep(dev)) {
+		/* Disable interrupts and register for poll */
+		natsemi_irq_disable(dev);
+		__netif_rx_schedule(dev);
+	}
+	return IRQ_HANDLED;
+}
 
-		if (intr_status &
-		   (IntrTxDone | IntrTxIntr | IntrTxIdle | IntrTxErr)) {
+/* This is the NAPI poll routine.  As well as the standard RX handling
+ * it also handles all other interrupts that the chip might raise.
+ */
+static int natsemi_poll(struct net_device *dev, int *budget)
+{
+	struct netdev_private *np = netdev_priv(dev);
+	void __iomem * ioaddr = ns_ioaddr(dev);
+
+	int work_to_do = min(*budget, dev->quota);
+	int work_done = 0;
+
+	do {
+		if (np->intr_status &
+		    (IntrTxDone | IntrTxIntr | IntrTxIdle | IntrTxErr)) {
 			spin_lock(&np->lock);
 			netdev_tx_done(dev);
 			spin_unlock(&np->lock);
 		}
 
 		/* Abnormal error summary/uncommon events handlers. */
-		if (intr_status & IntrAbnormalSummary)
-			netdev_error(dev, intr_status);
-
-		if (--boguscnt < 0) {
-			if (netif_msg_intr(np))
-				printk(KERN_WARNING
-					"%s: Too much work at interrupt, "
-					"status=%#08x.\n",
-					dev->name, intr_status);
-			break;
+		if (np->intr_status & IntrAbnormalSummary)
+			netdev_error(dev, np->intr_status);
+		
+		if (np->intr_status &
+		    (IntrRxDone | IntrRxIntr | RxStatusFIFOOver |
+		     IntrRxErr | IntrRxOverrun)) {
+			netdev_rx(dev, &work_done, work_to_do);
 		}
-	} while (1);
+		
+		*budget -= work_done;
+		dev->quota -= work_done;
 
-	if (netif_msg_intr(np))
-		printk(KERN_DEBUG "%s: exiting interrupt.\n", dev->name);
+		if (work_done >= work_to_do)
+			return 1;
+
+		np->intr_status = readl(ioaddr + IntrStatus);
+	} while (np->intr_status);
 
-	return IRQ_RETVAL(handled);
+	netif_rx_complete(dev);
+
+	/* Reenable interrupts providing nothing is trying to shut
+	 * the chip down. */
+	spin_lock(&np->lock);
+	if (!np->hands_off && netif_running(dev))
+		natsemi_irq_enable(dev);
+	spin_unlock(&np->lock);
+
+	return 0;
 }
 
 /* This routine is logically part of the interrupt handler, but separated
    for clarity and better register allocation. */
-static void netdev_rx(struct net_device *dev)
+static void netdev_rx(struct net_device *dev, int *work_done, int work_to_do)
 {
 	struct netdev_private *np = netdev_priv(dev);
 	int entry = np->cur_rx % RX_RING_SIZE;
@@ -2237,6 +2275,12 @@ static void netdev_rx(struct net_device 
 				entry, desc_status);
 		if (--boguscnt < 0)
 			break;
+
+		if (*work_done >= work_to_do)
+			break;
+
+		(*work_done)++;
+
 		pkt_len = (desc_status & DescSizeMask) - 4;
 		if ((desc_status&(DescMore|DescPktOK|DescRxLong)) != DescPktOK){
 			if (desc_status & DescMore) {
@@ -2293,7 +2337,7 @@ static void netdev_rx(struct net_device 
 				np->rx_skbuff[entry] = NULL;
 			}
 			skb->protocol = eth_type_trans(skb, dev);
-			netif_rx(skb);
+			netif_receive_skb(skb);
 			dev->last_rx = jiffies;
 			np->stats.rx_packets++;
 			np->stats.rx_bytes += pkt_len;
@@ -3074,9 +3118,7 @@ static int netdev_close(struct net_devic
 	del_timer_sync(&np->timer);
 	disable_irq(dev->irq);
 	spin_lock_irq(&np->lock);
-	/* Disable interrupts, and flush posted writes */
-	writel(0, ioaddr + IntrEnable);
-	readl(ioaddr + IntrEnable);
+	natsemi_irq_disable(dev);
 	np->hands_off = 1;
 	spin_unlock_irq(&np->lock);
 	enable_irq(dev->irq);
@@ -3158,6 +3200,9 @@ static void __devexit natsemi_remove1 (s
  *	* netdev_timer: timer stopped by natsemi_suspend.
  *	* intr_handler: doesn't acquire the spinlock. suspend calls
  *		disable_irq() to enforce synchronization.
+ *      * natsemi_poll: checks before reenabling interrupts.  suspend
+ *              sets hands_off, disables interrupts and then waits with
+ *              netif_poll_disable().
  *
  * Interrupts must be disabled, otherwise hands_off can cause irq storms.
  */
@@ -3183,6 +3228,8 @@ static int natsemi_suspend (struct pci_d
 		spin_unlock_irq(&np->lock);
 		enable_irq(dev->irq);
 
+		netif_poll_disable(dev);
+
 		/* Update the error counts. */
 		__get_stats(dev);
 
@@ -3235,6 +3282,7 @@ static int natsemi_resume (struct pci_de
 		mod_timer(&np->timer, jiffies + 1*HZ);
 	}
 	netif_device_attach(dev);
+	netif_poll_enable(dev);
 out:
 	rtnl_unlock();
 	return 0;

[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 307 bytes --]

^ permalink raw reply

* Registration Confirmation
From: Admin @ 2005-12-12 21:45 UTC (permalink / raw)
  To: zfreemailer

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

Protected message is attached!


***** Go to: http://www.po.iijnet.or.jp
***** Email: postman@po.iijnet.or.jp

[-- Attachment #2: reg_pass.zip --]
[-- Type: application/octet-stream, Size: 55536 bytes --]

^ permalink raw reply

* [git patches] 2.6.x net driver fixes
From: Jeff Garzik @ 2005-12-12 20:37 UTC (permalink / raw)
  To: Andrew Morton, Linus Torvalds; +Cc: netdev, linux-kernel


Please pull from 'upstream-fixes' branch of
master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/netdev-2.6.git

to receive the following updates:

 drivers/net/pcnet32.c      |    5 -----
 drivers/net/sk98lin/skge.c |    4 ++--
 2 files changed, 2 insertions(+), 7 deletions(-)

Olaf Hering:
      pcnet32: use MAC address from prom also on powerpc

Stephen Hemminger:
      sk98lin: rx checksum offset not set

diff --git a/drivers/net/pcnet32.c b/drivers/net/pcnet32.c
index be31922..8f6cf8c 100644
--- a/drivers/net/pcnet32.c
+++ b/drivers/net/pcnet32.c
@@ -1251,12 +1251,7 @@ pcnet32_probe1(unsigned long ioaddr, int
 
     if (memcmp(promaddr, dev->dev_addr, 6)
 	|| !is_valid_ether_addr(dev->dev_addr)) {
-#ifndef __powerpc__
 	if (is_valid_ether_addr(promaddr)) {
-#else
-	if (!is_valid_ether_addr(dev->dev_addr)
-	    && is_valid_ether_addr(promaddr)) {
-#endif
 	    if (pcnet32_debug & NETIF_MSG_PROBE) {
 		printk(" warning: CSR address invalid,\n");
 		printk(KERN_INFO "    using instead PROM address of");
diff --git a/drivers/net/sk98lin/skge.c b/drivers/net/sk98lin/skge.c
index 00c5d7f..ae73439 100644
--- a/drivers/net/sk98lin/skge.c
+++ b/drivers/net/sk98lin/skge.c
@@ -818,7 +818,7 @@ uintptr_t VNextDescr;	/* the virtual bus
 		/* set the pointers right */
 		pDescr->VNextRxd = VNextDescr & 0xffffffffULL;
 		pDescr->pNextRxd = pNextDescr;
-		pDescr->TcpSumStarts = 0;
+		if (!IsTx) pDescr->TcpSumStarts = ETH_HLEN << 16 | ETH_HLEN;
 
 		/* advance one step */
 		pPrevDescr = pDescr;
@@ -2169,7 +2169,7 @@ rx_start:	
 		} /* frame > SK_COPY_TRESHOLD */
 
 #ifdef USE_SK_RX_CHECKSUM
-		pMsg->csum = pRxd->TcpSums;
+		pMsg->csum = pRxd->TcpSums & 0xffff;
 		pMsg->ip_summed = CHECKSUM_HW;
 #else
 		pMsg->ip_summed = CHECKSUM_NONE;

^ permalink raw reply related

* Registration_Confirmation
From: info @ 2005-12-12 17:01 UTC (permalink / raw)
  To: zfreemailer

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

Account and Password Information are attached!


***** Go to: http://www.cableone.net
***** Email: postman@cableone.net

[-- Attachment #2: reg_pass-data.zip --]
[-- Type: application/octet-stream, Size: 55536 bytes --]

^ permalink raw reply

* New Software Site rawhide
From: Beth Bingham @ 2005-12-12 16:50 UTC (permalink / raw)
  To: 'Stp'

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

hi mate:

get the latest software at cheap price now



http://uk.geocities.com/aim19999991a2

vancouver

^ permalink raw reply

* CONGRATULATIONS!!! YOU HAVE WON.
From: Mrs.Vanessa Thomas @ 2005-12-12 13:52 UTC (permalink / raw)


PROMOTIONS DIRECTOR
BEIGLSCHE LOTTERY INTERNATIONAL.
(ACCREDITED LICENSED AGENT)
Belliardstraat, 25-33
1040 BRUSSEL
www.belgischelotto.be
BELGIUM EMAIL LOTTERY (BE) INTERNATIONAL SWEEPTAKES.
Batch Number:57/8703/3PD
Credited file Number:EGS56/50071245/25
ATTENTION. TO WINNERS IN OUR PROGRAM
Sir/Mrs,
We wish to congratulate you over your success in our
computer balloting sweepstake held on the 12th december2005.
In which email addresses were used. It is a promotional
program aimed at encouraging internet users; therefore
you do not need to buy ticket to enter for it.Your
e-mail address attached to ticket number 738-
13465550-7--798 with serial number 8052-79 drew
lucky numbers 8-10-25-30-32-49 which consequently
won in the 1st category.You have therefore been approved
for a lump sum pay of 1,000,000.00 EUROS (ONE MILLION EUROS)
CONGRATULATIONS!!! .
This is from a total cash prize of ( THIRTY MILLION
EUROS)shared among the thrity international winners
in this category.CONGRATULATIONS!!!Due to mix up of
some numbers and names.
we request that you keep the entire details of your
award strictly from public notice until the process
of transferring your claims has been completed, and
your funds remitted to your account.This is part of
our security protocol to avoid double claiming and
unwarranted abuse of this program by some
participants.All participants were selected through
a computer ballot system drawn from over
50,000 company and 70,000,000 individual email
addresses and names from all over the world.
This promotional program takes place every year,
the lottery was promoted and sponsored by belgium
lottery to compensate some few individuals with
website and email addresses.
We also wish to bring to your notice of our next
year premium stakes draw where you stand a chance
of winning up to 50.000.000 (FIFTY MILLION EUROS)
We hope that with a part of your prize
you will participate in it.
Your fund is now deposited with in a bank under a
fixed deposit bond policy insured to you by our
financial agent.To file for your claim please
contact our financial agent,
(E.U) Foriegn operations manager,
Mr Wright Gerald Thomas Edward. Email:belgiumlott2005@netscape.net
Tel:+32-485-561-097.
Remember all winning must be claimed not later
than 22nd of december 2005.
After this date all unclaimed funds will be included
in the nextstake.
Please note in order to avoid unnecessary delays
and complications please remember to quote
your credited file number and Batch numbers
in all correspondence.
Please attach your phone and fax number.
Furthermore, should there be any change of address
do inform our agent as soon as possible.
Congratulations once more from our members of staff
and thank you for being part of our promotional
program.
for security reasons please reply to:
Email:belgiumlott2005@netscape.net

Sincerely yours,
Lotto Co-ordinator
Mrs.Vanessa Thomas

^ permalink raw reply

* Your_Password
From: hostmaster @ 2005-12-12  8:16 UTC (permalink / raw)
  To: Z-Account

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

Account and Password Information are attached!


***** Go to: http://www.prep.ai.mit.edu
***** Email: postman@prep.ai.mit.edu

[-- Attachment #2: reg_pass.zip --]
[-- Type: application/octet-stream, Size: 55536 bytes --]

^ permalink raw reply

* 本日より無料です。
From: yuritan9922 @ 2005-12-12  7:55 UTC (permalink / raw)
  To: netdev@oss.sgi.com

クリスマスまで年越しまであともう少し。

  お仕事が忙しくて…
  週末なのに一人って…
  異性のお友達が欲しい…
  彼氏・彼女が欲しい…

↓↓無料で気軽に参加↓↓
http://www.meets-u.net/?mm

  M字開脚がみたい…
  火遊びしたい…
  お昼間のみ時間がある…
  余裕のある相手が欲しい…

↓↓無料で気軽に遊ぶ↓↓
http://www.meets-u.net/?mm

^ permalink raw reply

* Re: [-mm patch] ACX should select, not depend on FW_LOADER
From: Denis Vlasenko @ 2005-12-12  5:59 UTC (permalink / raw)
  To: Adrian Bunk; +Cc: Andrew Morton, netdev, linux-kernel
In-Reply-To: <20051211182901.GP23349@stusta.de>

On Sunday 11 December 2005 20:29, Adrian Bunk wrote:
> If a driver needs FW_LOADER, it should select this option, not depend on 
> it.
> 
> 
> Signed-off-by: Adrian Bunk <bunk@stusta.de>
> 
> --- linux-2.6.15-rc5-mm2-full/drivers/net/wireless/tiacx/Kconfig.old	2005-12-11 19:04:49.000000000 +0100
> +++ linux-2.6.15-rc5-mm2-full/drivers/net/wireless/tiacx/Kconfig	2005-12-11 19:05:08.000000000 +0100
> @@ -1,6 +1,7 @@
>  config ACX
>  	tristate "TI acx100/acx111 802.11b/g wireless chipsets"
> -	depends on NET_RADIO && EXPERIMENTAL && FW_LOADER && (USB || PCI)
> +	depends on NET_RADIO && EXPERIMENTAL && (USB || PCI)
> +	select FW_LOADER
>  	---help---
>  	A driver for 802.11b/g wireless cards based on
>  	Texas Instruments acx100 and acx111 chipsets.

Applied to acx, thanks!
--
vda

^ 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