Netdev List
 help / color / mirror / Atom feed
* [2.6 patch] rename hostap.c to hostap_main.c
From: Adrian Bunk @ 2005-11-13 16:27 UTC (permalink / raw)
  To: hostap, linux-kernel, jgarzik, netdev; +Cc: sam
In-Reply-To: <20051106041543.GC8972@jm.kir.nu>

On Sat, Nov 05, 2005 at 08:15:43PM -0800, Jouni Malinen wrote:
> On Sun, Nov 06, 2005 at 01:53:43AM +0100, Adrian Bunk wrote:
> > I wanted to remove the #include "hostap_ioctl.c" from hostap.c and build 
> > hostap_ioctl.c separately, but this doesn't work since hostap.c has the 
> > same name as the module.
> 
> Is this patch changing anything in hostap.c or is it just a rename of
> the file? Patch file is not exactly ideal for this kind of changes and I
> hope git has a better way of storing this kind of rename.

There's no other change.

If you agree, Jeff might be able to do the

  mv drivers/net/wireless/hostap/hostap.c \
    drivers/net/wireless/hostap/hostap_main.c

plus applying the patch below.

> I would rather not rename the file, but if this is the only way of
> getting the module built in pieces, I'm okay with the change (assuming
> nothing else changed in hostap.c in this changeset).
>...

AFAIK you can't build a module hostap.o consisting of multiple objects 
with the source files of one of them named hostap.c (Sam Cc'ed for this).

> Jouni Malinen                                            PGP id EFC895FA

cu
Adrian



<--  snip  -->


I wanted to remove the #include "hostap_ioctl.c" from hostap.c and build 
hostap_ioctl.c separately, but this doesn't work since hostap.c has the 
same name as the module.

After renaming hostap.c this will be possible.


Signed-off-by: Adrian Bunk <bunk@stusta.de>

--- linux-2.6.14-mm2-full/drivers/net/wireless/hostap/Makefile.old	2005-11-13 17:10:33.000000000 +0100
+++ linux-2.6.14-mm2-full/drivers/net/wireless/hostap/Makefile	2005-11-13 17:11:11.000000000 +0100
@@ -1,3 +1,4 @@
+hostap-y := hostap_main.o
 obj-$(CONFIG_HOSTAP) += hostap.o
 
 obj-$(CONFIG_HOSTAP_CS) += hostap_cs.o

^ permalink raw reply

* [PATCH]small fix for __ipv6_addr_type(...)
From: Yan Zheng @ 2005-11-13  8:01 UTC (permalink / raw)
  To: netdev; +Cc: linux-kernel, yoshfuji

Hi.

I think the scope for loopback address should be node local.

Regards

Signed-off-by: Yan Zheng <yanzheng@21cn.com>

========================================================================
--- linux-2.6.15-rc1/net/ipv6/addrconf.c	2005-11-13 12:23:06.000000000 +0800
+++ linux/net/ipv6/addrconf.c	2005-11-13 15:50:03.000000000 +0800
@@ -249,7 +249,7 @@ int __ipv6_addr_type(const struct in6_ad
 
 			if (addr->s6_addr32[3] == htonl(0x00000001))
 				return (IPV6_ADDR_LOOPBACK | IPV6_ADDR_UNICAST |
-					IPV6_ADDR_SCOPE_TYPE(IPV6_ADDR_SCOPE_LINKLOCAL));	/* addr-select 3.4 */
+					IPV6_ADDR_SCOPE_TYPE(IPV6_ADDR_SCOPE_NODELOCAL));	/* addr-select 3.4 */
 
 			return (IPV6_ADDR_COMPATv4 | IPV6_ADDR_UNICAST |
 				IPV6_ADDR_SCOPE_TYPE(IPV6_ADDR_SCOPE_GLOBAL));	/* addr-select 3.3 */

^ permalink raw reply

* Re: [PATCH] [NETFILTER]: Allow SYN+PSH as valid flag combination
From: David S. Miller @ 2005-11-12 20:14 UTC (permalink / raw)
  To: laforge; +Cc: netdev, netfilter-devel, vlad, kaber
In-Reply-To: <20051112103918.GG10584@sunbeam.de.gnumonks.org>

From: Harald Welte <laforge@netfilter.org>
Date: Sat, 12 Nov 2005 11:39:18 +0100

> [NETFILTER] {ip,nf}_conntrack TCP: Accept SYN+PUSH like SYN
> 
> Some devices (e.g. Qlogic iSCSI HBA hardware like QLA4010 up to firmware
> 3.0.0.4) initiates TCP with SYN and PUSH flags set.
> 
> The Linux TCP/IP stack deals fine with that, but the connection tracking
> code doesn't.
> 
> This patch alters TCP connection tracking to accept SYN+PUSH as a valid
> flag combination.
> 
> Signed-off-by: Vlad Drukker <vlad@storewiz.com>
> Signed-off-by: Harald Welte <laforge@netfilter.org>

Applied.

I think this one is a -stable candidate (sans the nf_conntrack
bits of course :-).  But that's up to you.

^ permalink raw reply

* [PATCH] ipw2100: Fix 'Driver using old /proc/net/wireless...' message
From: James Ketrenos @ 2005-11-12 18:50 UTC (permalink / raw)
  To: NetDev, linux-kernel; +Cc: Benoit Boissinot, Jeff Garzik

ipw2100: Fix 'Driver using old /proc/net/wireless...' message

Wireless extensions moved the get_wireless_stats handler from being
in net_device into wireless_handler.

A prior instance of this patch resolved the issue for the ipw2200.  This
one fixes it for the ipw2100.

Signed-off-by: Benoit Boissinot <benoit.boissinot@ens-lyon.org>
Signed-off-by: James Ketrenos <jketreno@linux.intel.com>
---
Also available as overlay at rsync://bughost.org/repos/ipw-delta/.git/
---
 drivers/net/wireless/ipw2100.c |   29 ++++++++++++++++++-----------
 drivers/net/wireless/ipw2100.h |    2 ++
 2 files changed, 20 insertions(+), 11 deletions(-)
---
diff --git a/drivers/net/wireless/ipw2100.c b/drivers/net/wireless/ipw2100.c
index a2e6214..77d2a21 100644
--- a/drivers/net/wireless/ipw2100.c
+++ b/drivers/net/wireless/ipw2100.c
@@ -6344,7 +6344,8 @@ static struct net_device *ipw2100_alloc_
 	dev->ethtool_ops = &ipw2100_ethtool_ops;
 	dev->tx_timeout = ipw2100_tx_timeout;
 	dev->wireless_handlers = &ipw2100_wx_handler_def;
-	dev->get_wireless_stats = ipw2100_wx_wireless_stats;
+	priv->wireless_data.ieee80211 = priv->ieee;
+	dev->wireless_data = &priv->wireless_data;
 	dev->set_mac_address = ipw2100_set_address;
 	dev->watchdog_timeo = 3 * HZ;
 	dev->irq = 0;
@@ -7178,6 +7179,11 @@ static int ipw2100_wx_get_range(struct n
 	}
 	range->num_frequency = val;
 
+	/* Event capability (kernel + driver) */
+	range->event_capa[0] = (IW_EVENT_CAPA_K_0 |
+				IW_EVENT_CAPA_MASK(SIOCGIWAP));
+	range->event_capa[1] = IW_EVENT_CAPA_K_1;
+
 	IPW_DEBUG_WX("GET Range\n");
 
 	return 0;
@@ -8446,16 +8452,6 @@ static iw_handler ipw2100_private_handle
 #endif				/* CONFIG_IPW2100_MONITOR */
 };
 
-static struct iw_handler_def ipw2100_wx_handler_def = {
-	.standard = ipw2100_wx_handlers,
-	.num_standard = sizeof(ipw2100_wx_handlers) / sizeof(iw_handler),
-	.num_private = sizeof(ipw2100_private_handler) / sizeof(iw_handler),
-	.num_private_args = sizeof(ipw2100_private_args) /
-	    sizeof(struct iw_priv_args),
-	.private = (iw_handler *) ipw2100_private_handler,
-	.private_args = (struct iw_priv_args *)ipw2100_private_args,
-};
-
 /*
  * Get wireless statistics.
  * Called by /proc/net/wireless
@@ -8597,6 +8593,17 @@ static struct iw_statistics *ipw2100_wx_
 	return (struct iw_statistics *)NULL;
 }
 
+static struct iw_handler_def ipw2100_wx_handler_def = {
+	.standard = ipw2100_wx_handlers,
+	.num_standard = sizeof(ipw2100_wx_handlers) / sizeof(iw_handler),
+	.num_private = sizeof(ipw2100_private_handler) / sizeof(iw_handler),
+	.num_private_args = sizeof(ipw2100_private_args) /
+	    sizeof(struct iw_priv_args),
+	.private = (iw_handler *) ipw2100_private_handler,
+	.private_args = (struct iw_priv_args *)ipw2100_private_args,
+	.get_wireless_stats = ipw2100_wx_wireless_stats,
+};
+
 static void ipw2100_wx_event_work(struct ipw2100_priv *priv)
 {
 	union iwreq_data wrqu;
diff --git a/drivers/net/wireless/ipw2100.h b/drivers/net/wireless/ipw2100.h
index a1a9cbc..7f20cf3 100644
--- a/drivers/net/wireless/ipw2100.h
+++ b/drivers/net/wireless/ipw2100.h
@@ -572,6 +572,8 @@ struct ipw2100_priv {
 	struct net_device *net_dev;
 	struct iw_statistics wstats;
 
+	struct iw_public_data wireless_data;
+
 	struct tasklet_struct irq_tasklet;
 
 	struct workqueue_struct *workqueue;

^ permalink raw reply related

* Get rid of everything you are indebted for without paying an other cent
From: domitila ramos @ 2005-11-12 15:57 UTC (permalink / raw)
  To: Windy Murray

Eliminate all you owe with out paying another dollar.  End the embarrassing
phone calls. Bring a stop to the mailing of checks! As it turns out nearly
all lending orgizations not following the laws here in the US. Unbelievable
but true!

Go to our web site for detailed information about our technique at N O 
expense or commitment. You have naught to loose and ample to obtain.

http://it.geocities.com/melitta_sutorius/?w=1n.Eradicate all that you are
indebted for without sending an other dollar
Detailed information or to stop receiving or to observe postal address

Raise cash flow and your customer base within 24 hours using knowledgeable
and massive online mail marketing blitz
Join with biggest and the best markupholders@gawab.com


When they saw Rob at liberty, and their comrade lying apparently dead, the
chief cried out in surprise, using some expressive words in his own
language. If it's just the same to you, old chap, said Rob, coolly, I won't
be eaten to-day
You can make a pie of that fellow on the ground

^ permalink raw reply

* Re: [RFC: 2.6 patch] remove ISA legacy functions
From: Al Viro @ 2005-11-12 13:48 UTC (permalink / raw)
  To: Matthew Wilcox
  Cc: Jeff Garzik, Adrian Bunk, Andrew Morton, linux-kernel, linux-scsi,
	netdev, jonathan, tlinux-users, Jaroslav Kysela
In-Reply-To: <20051112052918.GG1658@parisc-linux.org>

On Fri, Nov 11, 2005 at 10:29:18PM -0700, Matthew Wilcox wrote:
> I think they work fine everywhere.  Adrian wants to remove the API they
> use.
> 
> I think this is a bad idea.  The drivers should be converted.

They are - I'll send patches later today...

^ permalink raw reply

* Re: [-mm patch] drivers/net/wireless/tiacx/: add missing #include <linux/vmalloc.h>'a
From: Denis Vlasenko @ 2005-11-12 12:02 UTC (permalink / raw)
  To: Adrian Bunk; +Cc: jgarzik, netdev, linux-kernel
In-Reply-To: <20051111200735.GO5376@stusta.de>

On Friday 11 November 2005 22:07, Adrian Bunk wrote:
> This is required for always getting the vmalloc()/vfree() prototypes.
> 
> Signed-off-by: Adrian Bunk <bunk@stusta.de>

Applied, thanks.
--
vda

^ permalink raw reply

* [PATCH] [NETFILTER]: Allow SYN+PSH as valid flag combination
From: Harald Welte @ 2005-11-12 10:39 UTC (permalink / raw)
  To: David S. Miller; +Cc: Linux Netdev List, netfilter-devel, vlad, kaber
In-Reply-To: <20051111.114801.112784817.davem@davemloft.net>

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

On Fri, Nov 11, 2005 at 11:48:01AM -0800, David S. Miller wrote:
> From: Patrick McHardy <kaber@trash.net>
> Date: Fri, 11 Nov 2005 14:58:01 +0100
> 
> > Unfortunately this is unlikely to happen, and if Linux itself
> > accepts SYN|PSH, I don't see a reason why ip_conntrack shouldn't
> > as well.
> 
> I totally agree.

Me, too.  However, we also need to update nf_conntrack now:


[NETFILTER] {ip,nf}_conntrack TCP: Accept SYN+PUSH like SYN

Some devices (e.g. Qlogic iSCSI HBA hardware like QLA4010 up to firmware
3.0.0.4) initiates TCP with SYN and PUSH flags set.

The Linux TCP/IP stack deals fine with that, but the connection tracking
code doesn't.

This patch alters TCP connection tracking to accept SYN+PUSH as a valid
flag combination.

Signed-off-by: Vlad Drukker <vlad@storewiz.com>
Signed-off-by: Harald Welte <laforge@netfilter.org>

---
commit 933c4adfa34fbc151dd9908b2ce59335b22e6fe4
tree 041e7fc4116cd3b2774429cf8da9caee6e77a74b
parent 106c77b9b51b61bcd926ab5100761b2832791b74
author Harald Welte <laforge@netfilter.org> Sat, 12 Nov 2005 11:36:56 +0100
committer Harald Welte <laforge@netfilter.org> Sat, 12 Nov 2005 11:36:56 +0100

 net/ipv4/netfilter/ip_conntrack_proto_tcp.c |    1 +
 net/netfilter/nf_conntrack_proto_tcp.c      |    1 +
 2 files changed, 2 insertions(+), 0 deletions(-)

diff --git a/net/ipv4/netfilter/ip_conntrack_proto_tcp.c b/net/ipv4/netfilter/ip_conntrack_proto_tcp.c
--- a/net/ipv4/netfilter/ip_conntrack_proto_tcp.c
+++ b/net/ipv4/netfilter/ip_conntrack_proto_tcp.c
@@ -814,6 +814,7 @@ static u8 tcp_valid_flags[(TH_FIN|TH_SYN
 {
 	[TH_SYN]			= 1,
 	[TH_SYN|TH_ACK]			= 1,
+	[TH_SYN|TH_PUSH]		= 1,
 	[TH_SYN|TH_ACK|TH_PUSH]		= 1,
 	[TH_RST]			= 1,
 	[TH_RST|TH_ACK]			= 1,
diff --git a/net/netfilter/nf_conntrack_proto_tcp.c b/net/netfilter/nf_conntrack_proto_tcp.c
--- a/net/netfilter/nf_conntrack_proto_tcp.c
+++ b/net/netfilter/nf_conntrack_proto_tcp.c
@@ -779,6 +779,7 @@ static u8 tcp_valid_flags[(TH_FIN|TH_SYN
 {
 	[TH_SYN]			= 1,
 	[TH_SYN|TH_ACK]			= 1,
+	[TH_SYN|TH_PUSH]		= 1,
 	[TH_SYN|TH_ACK|TH_PUSH]		= 1,
 	[TH_RST]			= 1,
 	[TH_RST|TH_ACK]			= 1,

-- 
- Harald Welte <laforge@netfilter.org>                 http://netfilter.org/
============================================================================
  "Fragmentation is like classful addressing -- an interesting early
   architectural error that shows how much experimentation was going
   on while IP was being designed."                    -- Paul Vixie

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

^ permalink raw reply

* Re: Re: [PATCH] ebtables: Port ebt_[u]log.c to nf[netlink]_log
From: Harald Welte @ 2005-11-12  9:49 UTC (permalink / raw)
  To: Bart De Schuymer
  Cc: Linux Netdev List,
	ebtables-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f
In-Reply-To: <1129648337.4504.3.camel-bi+AKbBUZKY6gyzm1THtWbp2dZbC/Bob@public.gmane.org>

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

Sorry for this extremely delayed follow-up, but I just noticed that this
is the only patch in my 'master' branch that is not yet merged mainline.

On Tue, Oct 18, 2005 at 03:12:17PM +0000, Bart De Schuymer wrote:
> OK, but please fix the typo then. Shouldn't a similar comment be in
> ebt_ulog?

I've addressed both of your concerns (typo and similar comment/message
in ebt_ulog).

If you deem the attached patch fine, please submit it to davem.


[NETFILTER] ebtables: Support nf_log API from ebt_log and ebt_ulog

This makes ebt_log and ebt_ulog use the new nf_log api.  This enables the
bridging packet filter to log packets e.g. via nfnetlink_log.

Signed-off-by: Harald Welte <laforge-Cap9r6Oaw4JrovVCs/uTlw@public.gmane.org>

diff --git a/net/bridge/netfilter/Kconfig b/net/bridge/netfilter/Kconfig
--- a/net/bridge/netfilter/Kconfig
+++ b/net/bridge/netfilter/Kconfig
@@ -196,9 +196,13 @@ config BRIDGE_EBT_LOG
 	  To compile it as a module, choose M here.  If unsure, say N.
 
 config BRIDGE_EBT_ULOG
-	tristate "ebt: ulog support"
+	tristate "ebt: ulog support (OBSOLETE)"
 	depends on BRIDGE_NF_EBTABLES
 	help
+	  This option enables the old bridge-specific "ebt_ulog" implementation
+	  which has been obsoleted by the new "nfnetlink_log" code (see
+	  CONFIG_NETFILTER_NETLINK_LOG).
+
 	  This option adds the ulog watcher, that you can use in any rule
 	  in any ebtables table. The packet is passed to a userspace
 	  logging daemon using netlink multicast sockets. This differs
diff --git a/net/bridge/netfilter/ebt_log.c b/net/bridge/netfilter/ebt_log.c
--- a/net/bridge/netfilter/ebt_log.c
+++ b/net/bridge/netfilter/ebt_log.c
@@ -3,6 +3,7 @@
  *
  *	Authors:
  *	Bart De Schuymer <bdschuym-LPO8gxj9N8aZIoH1IeqzKA@public.gmane.org>
+ *	Harald Welte <laforge-Cap9r6Oaw4JrovVCs/uTlw@public.gmane.org>
  *
  *  April, 2002
  *
@@ -10,6 +11,7 @@
 
 #include <linux/netfilter_bridge/ebtables.h>
 #include <linux/netfilter_bridge/ebt_log.h>
+#include <linux/netfilter.h>
 #include <linux/module.h>
 #include <linux/ip.h>
 #include <linux/if_arp.h>
@@ -55,17 +57,19 @@ static void print_MAC(unsigned char *p)
 }
 
 #define myNIPQUAD(a) a[0], a[1], a[2], a[3]
-static void ebt_log(const struct sk_buff *skb, unsigned int hooknr,
-   const struct net_device *in, const struct net_device *out,
-   const void *data, unsigned int datalen)
+static void
+ebt_log_packet(unsigned int pf, unsigned int hooknum,
+   const struct sk_buff *skb, const struct net_device *in,
+   const struct net_device *out, const struct nf_loginfo *loginfo,
+   const char *prefix)
 {
-	struct ebt_log_info *info = (struct ebt_log_info *)data;
 	char level_string[4] = "< >";
+	unsigned int bitmask;
 
-	level_string[1] = '0' + info->loglevel;
+	level_string[1] = '0' + loginfo->u.log.level;
 	spin_lock_bh(&ebt_log_lock);
 	printk(level_string);
-	printk("%s IN=%s OUT=%s ", info->prefix, in ? in->name : "",
+	printk("%s IN=%s OUT=%s ", prefix, in ? in->name : "",
 	   out ? out->name : "");
 
 	printk("MAC source = ");
@@ -75,7 +79,12 @@ static void ebt_log(const struct sk_buff
 
 	printk("proto = 0x%04x", ntohs(eth_hdr(skb)->h_proto));
 
-	if ((info->bitmask & EBT_LOG_IP) && eth_hdr(skb)->h_proto ==
+	if (loginfo->type == NF_LOG_TYPE_LOG)
+		bitmask = loginfo->u.log.logflags;
+	else
+		bitmask = NF_LOG_MASK;
+
+	if ((bitmask & EBT_LOG_IP) && eth_hdr(skb)->h_proto ==
 	   htons(ETH_P_IP)){
 		struct iphdr _iph, *ih;
 
@@ -104,7 +113,7 @@ static void ebt_log(const struct sk_buff
 		goto out;
 	}
 
-	if ((info->bitmask & EBT_LOG_ARP) &&
+	if ((bitmask & EBT_LOG_ARP) &&
 	    ((eth_hdr(skb)->h_proto == htons(ETH_P_ARP)) ||
 	     (eth_hdr(skb)->h_proto == htons(ETH_P_RARP)))) {
 		struct arphdr _arph, *ah;
@@ -144,6 +153,21 @@ static void ebt_log(const struct sk_buff
 out:
 	printk("\n");
 	spin_unlock_bh(&ebt_log_lock);
+
+}
+
+static void ebt_log(const struct sk_buff *skb, unsigned int hooknr,
+   const struct net_device *in, const struct net_device *out,
+   const void *data, unsigned int datalen)
+{
+	struct ebt_log_info *info = (struct ebt_log_info *)data;
+	struct nf_loginfo li;
+
+	li.type = NF_LOG_TYPE_LOG;
+	li.u.log.level = info->loglevel;
+	li.u.log.logflags = info->bitmask;
+
+	nf_log_packet(PF_BRIDGE, hooknr, skb, in, out, &li, info->prefix);
 }
 
 static struct ebt_watcher log =
@@ -154,13 +178,32 @@ static struct ebt_watcher log =
 	.me		= THIS_MODULE,
 };
 
+static struct nf_logger ebt_log_logger = {
+	.name 		= "ebt_log",
+	.logfn		= &ebt_log_packet,
+	.me		= THIS_MODULE,
+};
+
 static int __init init(void)
 {
-	return ebt_register_watcher(&log);
+	int ret;
+
+	ret = ebt_register_watcher(&log);
+	if (ret < 0)
+		return ret;
+	if (nf_log_register(PF_BRIDGE, &ebt_log_logger) < 0) {
+		printk(KERN_WARNING "ebt_log: not logging via system console "
+		       "since somebody else already registered for PF_INET\n");
+		/* we cannot make module load fail here, since otherwise 
+		 * ebtables userspace would abort */
+	}
+
+	return 0;
 }
 
 static void __exit fini(void)
 {
+	nf_log_unregister_logger(&ebt_log_logger);
 	ebt_unregister_watcher(&log);
 }
 
diff --git a/net/bridge/netfilter/ebt_ulog.c b/net/bridge/netfilter/ebt_ulog.c
--- a/net/bridge/netfilter/ebt_ulog.c
+++ b/net/bridge/netfilter/ebt_ulog.c
@@ -3,6 +3,7 @@
  *
  *	Authors:
  *	Bart De Schuymer <bdschuym-LPO8gxj9N8aZIoH1IeqzKA@public.gmane.org>
+ *	Harald Welte <laforge-Cap9r6Oaw4JrovVCs/uTlw@public.gmane.org>
  *
  *  November, 2004
  *
@@ -115,14 +116,13 @@ static struct sk_buff *ulog_alloc_skb(un
 	return skb;
 }
 
-static void ebt_ulog(const struct sk_buff *skb, unsigned int hooknr,
+static void ebt_ulog_packet(unsigned int hooknr, const struct sk_buff *skb,
    const struct net_device *in, const struct net_device *out,
-   const void *data, unsigned int datalen)
+   const struct ebt_ulog_info *uloginfo, const char *prefix)
 {
 	ebt_ulog_packet_msg_t *pm;
 	size_t size, copy_len;
 	struct nlmsghdr *nlh;
-	struct ebt_ulog_info *uloginfo = (struct ebt_ulog_info *)data;
 	unsigned int group = uloginfo->nlgroup;
 	ebt_ulog_buff_t *ub = &ulog_buffers[group];
 	spinlock_t *lock = &ub->lock;
@@ -216,6 +216,39 @@ alloc_failure:
 	goto unlock;
 }
 
+/* this function is registered with the netfilter core */
+static void ebt_log_packet(unsigned int pf, unsigned int hooknum,
+   const struct sk_buff *skb, const struct net_device *in,
+   const struct net_device *out, const struct nf_loginfo *li,
+   const char *prefix)
+{
+	struct ebt_ulog_info loginfo;
+
+	if (!li || li->type != NF_LOG_TYPE_ULOG) {
+		loginfo.nlgroup = EBT_ULOG_DEFAULT_NLGROUP;
+		loginfo.cprange = 0;
+		loginfo.qthreshold = EBT_ULOG_DEFAULT_QTHRESHOLD;
+		loginfo.prefix[0] = '\0';
+	} else {
+		loginfo.nlgroup = li->u.ulog.group;
+		loginfo.cprange = li->u.ulog.copy_len;
+		loginfo.qthreshold = li->u.ulog.qthreshold;
+		strlcpy(loginfo.prefix, prefix, sizeof(loginfo.prefix));
+	}
+
+	ebt_ulog_packet(hooknum, skb, in, out, &loginfo, prefix);
+}
+
+static void ebt_ulog(const struct sk_buff *skb, unsigned int hooknr,
+   const struct net_device *in, const struct net_device *out,
+   const void *data, unsigned int datalen)
+{
+	struct ebt_ulog_info *uloginfo = (struct ebt_ulog_info *)data;
+
+	ebt_ulog_packet(hooknr, skb, in, out, uloginfo, NULL);
+}
+
+
 static int ebt_ulog_check(const char *tablename, unsigned int hookmask,
    const struct ebt_entry *e, void *data, unsigned int datalen)
 {
@@ -240,6 +273,12 @@ static struct ebt_watcher ulog = {
 	.me		= THIS_MODULE,
 };
 
+static struct nf_logger ebt_ulog_logger = {
+	.name		= EBT_ULOG_WATCHER,
+	.logfn		= &ebt_log_packet,
+	.me		= THIS_MODULE,
+};
+
 static int __init init(void)
 {
 	int i, ret = 0;
@@ -265,6 +304,13 @@ static int __init init(void)
 	else if ((ret = ebt_register_watcher(&ulog)))
 		sock_release(ebtulognl->sk_socket);
 
+	if (nf_log_register(PF_BRIDGE, &ebt_ulog_logger) < 0) {
+		printk(KERN_WARNING "ebt_ulog: not logging via ulog "
+		       "since somebody else already registered for PF_BRIDGE\n");
+		/* we cannot make module load fail here, since otherwise
+		 * ebtables userspace would abort */
+	}
+
 	return ret;
 }
 
@@ -273,6 +319,7 @@ static void __exit fini(void)
 	ebt_ulog_buff_t *ub;
 	int i;
 
+	nf_log_unregister_logger(&ebt_ulog_logger);
 	ebt_unregister_watcher(&ulog);
 	for (i = 0; i < EBT_ULOG_MAXNLGROUPS; i++) {
 		ub = &ulog_buffers[i];
-- 
- Harald Welte <laforge-TgoAw6mPHtdg9hUCZPvPmw@public.gmane.org>          	        http://gnumonks.org/
============================================================================
"Privacy in residential applications is a desirable marketing option."
                                                  (ETSI EN 300 175-7 Ch. A6)

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

^ permalink raw reply

* Re: [RFC: 2.6 patch] remove ISA legacy functions
From: Christoph Hellwig @ 2005-11-12  7:12 UTC (permalink / raw)
  To: Adrian Bunk
  Cc: Andrew Morton, linux-kernel, linux-scsi, netdev, jonathan,
	tlinux-users, Jaroslav Kysela, viro
In-Reply-To: <20051112045216.GY5376@stusta.de>

On Sat, Nov 12, 2005 at 05:52:16AM +0100, Adrian Bunk wrote:
> This patch removes the ISA legacy functions that are deprecated since 
> kernel 2.4 and that aren't available on all architectures.
> 
> The 7 drivers that were still using this obsolete API are now marked
> as BROKEN.

NACK.  Al has patches pending to convert them to proper APIs, please
wait until after that patchseries has landed.


^ permalink raw reply

* Re: [2.6.15-rc1] VFS: file-max limit 400490 reached
From: Jeff Garzik @ 2005-11-12  6:03 UTC (permalink / raw)
  To: Linux Kernel, Netdev List
In-Reply-To: <43757D18.9090109@pobox.com>

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

Jeff Garzik wrote:
> 
> I rebooted my RHEL4-based ipv4/ipv6 gateway/server into 2.6.15-rc1, and 
> very soon the box was brought to its knees, spewing
> 
>     VFS: file-max limit 400490 reached

Follow-up:  I may have excised too much from the head of the log I posted.

It now looks like the radvd troubles may have started with a link 
up/down event.

Attached is some additional lines found at the -head- of the previously 
posted log.


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

Nov 11 22:38:32 pretzel dhcpd: dhcpd startup succeeded
Nov 11 22:38:33 pretzel exim: exim startup succeeded
Nov 11 22:38:34 pretzel httpd: httpd startup succeeded
Nov 11 22:38:34 pretzel crond: crond startup succeeded
Nov 11 22:38:34 pretzel anacron: anacron startup succeeded
Nov 11 22:38:35 pretzel atd: atd startup succeeded
Nov 11 22:38:40 pretzel login(pam_unix)[4705]: session opened for user root by LOGIN(uid=0)
Nov 11 22:38:40 pretzel  -- root[4705]: ROOT LOGIN ON tty1
Nov 11 22:38:55 pretzel login(pam_unix)[4705]: session closed for user root
Nov 11 22:45:54 pretzel sshd(pam_unix)[5241]: session opened for user jgarzik by (uid=0)
Nov 11 22:45:58 pretzel sshd(pam_unix)[5283]: session opened for user jgarzik by (uid=0)
Nov 11 23:01:01 pretzel crond(pam_unix)[28125]: session opened for user root by (uid=0)
Nov 11 23:01:02 pretzel crond(pam_unix)[28125]: session closed for user root
Nov 11 23:01:39 pretzel sshd(pam_unix)[29561]: session opened for user jgarzik by (uid=0)
Nov 11 23:01:48 pretzel sshd(pam_unix)[29561]: session closed for user jgarzik
Nov 11 23:34:00 pretzel kernel: e1000: eth1: e1000_watchdog_task: NIC Link is Down
Nov 11 23:34:01 pretzel netplugd[4112]: eth1: state ACTIVE flags 0x00001043 UP,BROADCAST,RUNNING,MULTICAST -> 0x00001003 UP,BROADCAST,MULTICAST
Nov 11 23:34:01 pretzel netplugd[25700]: /etc/netplug.d/netplug eth1 out -> pid 25700
Nov 11 23:34:01 pretzel radvd[4428]: resetting ipv6-allrouters membership on eth1
Nov 11 23:34:01 pretzel radvd[4428]: can't join ipv6-allrouters on eth1
Nov 11 23:34:07 pretzel kernel: e1000: eth1: e1000_watchdog_task: NIC Link is Up 1000 Mbps Full Duplex
Nov 11 23:34:07 pretzel netplugd[4112]: eth1: state OUTING flags 0x00001003 UP,BROADCAST,MULTICAST -> 0x00001043 UP,BROADCAST,RUNNING,MULTICAST
Nov 11 23:34:10 pretzel radvd[4428]: resetting ipv6-allrouters membership on eth1
Nov 11 23:34:10 pretzel radvd[4428]: can't join ipv6-allrouters on eth1
Nov 11 23:34:16 pretzel radvd[4428]: resetting ipv6-allrouters membership on eth1
Nov 11 23:34:16 pretzel radvd[4428]: can't join ipv6-allrouters on eth1
Nov 11 23:34:23 pretzel radvd[4428]: resetting ipv6-allrouters membership on eth1
Nov 11 23:34:23 pretzel radvd[4428]: can't join ipv6-allrouters on eth1
Nov 11 23:34:31 pretzel radvd[4428]: resetting ipv6-allrouters membership on eth1
Nov 11 23:34:31 pretzel radvd[4428]: can't join ipv6-allrouters on eth1
Nov 11 23:34:37 pretzel radvd[4428]: resetting ipv6-allrouters membership on eth1
[...]

^ permalink raw reply

* Re: [2.6.15-rc1] VFS: file-max limit 400490 reached
From: Jeff Garzik @ 2005-11-12  5:34 UTC (permalink / raw)
  To: Chris Wedgwood; +Cc: Linux Kernel, Netdev List
In-Reply-To: <20051112053052.GA1210@taniwha.stupidest.org>

Chris Wedgwood wrote:
> On Sat, Nov 12, 2005 at 12:26:48AM -0500, Jeff Garzik wrote:
> 
> 
>>	VFS: file-max limit 400490 reached
> 
> 
> does lsof show anything useful?

Alas, no.  [from memory, I've since rebooted]

lsof | wc -l
808

^ permalink raw reply

* Re: [2.6.15-rc1] VFS: file-max limit 400490 reached
From: Chris Wedgwood @ 2005-11-12  5:30 UTC (permalink / raw)
  To: Jeff Garzik; +Cc: Linux Kernel, Netdev List
In-Reply-To: <43757D18.9090109@pobox.com>

On Sat, Nov 12, 2005 at 12:26:48AM -0500, Jeff Garzik wrote:

> 	VFS: file-max limit 400490 reached

does lsof show anything useful?

^ permalink raw reply

* Re: [RFC: 2.6 patch] remove ISA legacy functions
From: Matthew Wilcox @ 2005-11-12  5:29 UTC (permalink / raw)
  To: Jeff Garzik
  Cc: Adrian Bunk, Andrew Morton, linux-kernel, linux-scsi, netdev,
	jonathan, tlinux-users, Jaroslav Kysela
In-Reply-To: <43757D5C.8030308@pobox.com>

On Sat, Nov 12, 2005 at 12:27:56AM -0500, Jeff Garzik wrote:
> Matthew Wilcox wrote:
> >On Sat, Nov 12, 2005 at 12:08:29AM -0500, Jeff Garzik wrote:
> >
> >>it's not valid to mark working drivers broken, IMO.
> >>
> >>Mark them x86-only, perhaps.
> >
> >
> >hp100 works fine on parisc.
> 
> Certainly.  The point was, don't mark them broken, limit them to the 
> arches where they work.

I think they work fine everywhere.  Adrian wants to remove the API they
use.

I think this is a bad idea.  The drivers should be converted.

^ permalink raw reply

* Re: [RFC: 2.6 patch] remove ISA legacy functions
From: Jeff Garzik @ 2005-11-12  5:27 UTC (permalink / raw)
  To: Matthew Wilcox
  Cc: Adrian Bunk, Andrew Morton, linux-kernel, linux-scsi, netdev,
	jonathan, tlinux-users, Jaroslav Kysela
In-Reply-To: <20051112051102.GF1658@parisc-linux.org>

Matthew Wilcox wrote:
> On Sat, Nov 12, 2005 at 12:08:29AM -0500, Jeff Garzik wrote:
> 
>>it's not valid to mark working drivers broken, IMO.
>>
>>Mark them x86-only, perhaps.
> 
> 
> hp100 works fine on parisc.

Certainly.  The point was, don't mark them broken, limit them to the 
arches where they work.

	Jeff

^ permalink raw reply

* [2.6.15-rc1] VFS: file-max limit 400490 reached
From: Jeff Garzik @ 2005-11-12  5:26 UTC (permalink / raw)
  To: Linux Kernel, Netdev List

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


I rebooted my RHEL4-based ipv4/ipv6 gateway/server into 2.6.15-rc1, and 
very soon the box was brought to its knees, spewing

	VFS: file-max limit 400490 reached

with the resultant userspace breakage associated with that.  Data points:

* recent 2.6.14-git-recent works
* 2.6.15-rc1 fails
* besides the above error, the only other notable syslog item is 
complaints from radvd (ipv6 router advertisement daemon)
* past logs don't show this radvd error
* machine: Intel x86 HT SMP SATA e1000 8139too (kernel config attached)

So, my guess is that something broke in rtnetlink ipv6.

But I could be wildly wrong.  This might not have anything to do with 
the net stack at all.



[-- Attachment #2: log.txt.bz2 --]
[-- Type: application/x-bzip2, Size: 1507 bytes --]

[-- Attachment #3: config.bz2 --]
[-- Type: application/x-bzip2, Size: 7304 bytes --]

^ permalink raw reply

* Re: [RFC: 2.6 patch] remove ISA legacy functions
From: Matthew Wilcox @ 2005-11-12  5:11 UTC (permalink / raw)
  To: Jeff Garzik
  Cc: Adrian Bunk, Andrew Morton, linux-kernel, linux-scsi, netdev,
	jonathan, tlinux-users, Jaroslav Kysela
In-Reply-To: <437578CD.1080501@pobox.com>

On Sat, Nov 12, 2005 at 12:08:29AM -0500, Jeff Garzik wrote:
> it's not valid to mark working drivers broken, IMO.
> 
> Mark them x86-only, perhaps.

hp100 works fine on parisc.

^ permalink raw reply

* Re: [RFC: 2.6 patch] remove ISA legacy functions
From: Jeff Garzik @ 2005-11-12  5:08 UTC (permalink / raw)
  To: Adrian Bunk
  Cc: Andrew Morton, linux-kernel, linux-scsi, netdev, jonathan,
	tlinux-users, Jaroslav Kysela
In-Reply-To: <20051112045216.GY5376@stusta.de>

Adrian Bunk wrote:
> This patch removes the ISA legacy functions that are deprecated since 
> kernel 2.4 and that aren't available on all architectures.
> 
> The 7 drivers that were still using this obsolete API are now marked
> as BROKEN.
> 
> 
> Signed-off-by: Adrian Bunk <bunk@stusta.de>

it's not valid to mark working drivers broken, IMO.

Mark them x86-only, perhaps.

	Jeff




^ permalink raw reply

* [RFC: 2.6 patch] remove ISA legacy functions
From: Adrian Bunk @ 2005-11-12  4:52 UTC (permalink / raw)
  To: Andrew Morton
  Cc: linux-kernel, linux-scsi, netdev, jonathan, tlinux-users,
	Jaroslav Kysela
In-Reply-To: <20051111203601.GR5376@stusta.de>

This patch removes the ISA legacy functions that are deprecated since 
kernel 2.4 and that aren't available on all architectures.

The 7 drivers that were still using this obsolete API are now marked
as BROKEN.


Signed-off-by: Adrian Bunk <bunk@stusta.de>

---

 Documentation/DocBook/deviceiobook.tmpl |   19 -----
 arch/i386/Kconfig                       |    1 
 drivers/net/Kconfig                     |    6 -
 drivers/net/arcnet/Kconfig              |    4 -
 drivers/scsi/Kconfig                    |    2 
 include/asm-alpha/io.h                  |   83 ------------------------
 include/asm-arm/arch-aaec2000/io.h      |    1 
 include/asm-arm/arch-clps711x/io.h      |    1 
 include/asm-arm/arch-ebsa285/io.h       |    8 --
 include/asm-arm/arch-integrator/io.h    |    1 
 include/asm-arm/arch-iop3xx/io.h        |    1 
 include/asm-arm/arch-l7200/io.h         |    1 
 include/asm-arm/arch-lh7a40x/io.h       |    1 
 include/asm-arm/arch-omap/io.h          |    1 
 include/asm-arm/arch-pxa/io.h           |    1 
 include/asm-arm/arch-realview/io.h      |    1 
 include/asm-arm/arch-sa1100/io.h        |    1 
 include/asm-arm/arch-versatile/io.h     |    1 
 include/asm-arm/io.h                    |   36 ----------
 include/asm-i386/io.h                   |   11 ---
 include/asm-m68k/io.h                   |   21 ++----
 include/asm-mips/io.h                   |   23 ------
 include/asm-parisc/io.h                 |   18 -----
 include/asm-sh/io.h                     |   13 ---
 include/asm-x86_64/io.h                 |   11 ---
 25 files changed, 15 insertions(+), 252 deletions(-)

--- linux-2.6.14-mm2-full/Documentation/DocBook/deviceiobook.tmpl.old	2005-11-11 21:44:08.000000000 +0100
+++ linux-2.6.14-mm2-full/Documentation/DocBook/deviceiobook.tmpl	2005-11-11 21:44:18.000000000 +0100
@@ -270,25 +270,6 @@
       </para>
     </sect1>
 
-    <sect1>
-      <title>ISA legacy functions</title>
-      <para>
-	On older kernels (2.2 and earlier) the ISA bus could be read or
-	written with these functions and without ioremap being used. This is
-	no longer true in Linux 2.4. A set of equivalent functions exist for
-	easy legacy driver porting. The functions available are prefixed
-	with 'isa_' and are <function>isa_readb</function>,
-	<function>isa_writeb</function>, <function>isa_readw</function>, 
-	<function>isa_writew</function>, <function>isa_readl</function>,
-	<function>isa_writel</function>, <function>isa_memcpy_fromio</function>
-	and <function>isa_memcpy_toio</function>
-      </para>
-      <para>
-	These functions should not be used in new drivers, and will
-	eventually be going away.
-      </para>
-    </sect1>
-
   </chapter>
 
   <chapter>
--- linux-2.6.14-mm2-full/include/asm-alpha/io.h.old	2005-11-11 21:39:55.000000000 +0100
+++ linux-2.6.14-mm2-full/include/asm-alpha/io.h	2005-11-11 21:59:27.000000000 +0100
@@ -534,9 +534,6 @@
 #define eth_io_copy_and_sum(skb,src,len,unused) \
   memcpy_fromio((skb)->data,src,len)
 
-#define isa_eth_io_copy_and_sum(skb,src,len,unused) \
-  isa_memcpy_fromio((skb)->data,src,len)
-
 static inline int
 check_signature(const volatile void __iomem *io_addr,
 		const unsigned char *signature, int length)
@@ -552,86 +549,6 @@
 
 
 /*
- * ISA space is mapped to some machine-specific location on Alpha.
- * Call into the existing hooks to get the address translated.
- */
-
-static inline u8
-isa_readb(unsigned long offset)
-{
-	void __iomem *addr = ioremap(offset, 1);
-	u8 ret = readb(addr);
-	iounmap(addr);
-	return ret;
-}
-
-static inline u16
-isa_readw(unsigned long offset)
-{
-	void __iomem *addr = ioremap(offset, 2);
-	u16 ret = readw(addr);
-	iounmap(addr);
-	return ret;
-}
-
-static inline u32
-isa_readl(unsigned long offset)
-{
-	void __iomem *addr = ioremap(offset, 2);
-	u32 ret = readl(addr);
-	iounmap(addr);
-	return ret;
-}
-
-static inline void
-isa_writeb(u8 b, unsigned long offset)
-{
-	void __iomem *addr = ioremap(offset, 2);
-	writeb(b, addr);
-	iounmap(addr);
-}
-
-static inline void
-isa_writew(u16 w, unsigned long offset)
-{
-	void __iomem *addr = ioremap(offset, 2);
-	writew(w, addr);
-	iounmap(addr);
-}
-
-static inline void
-isa_writel(u32 l, unsigned long offset)
-{
-	void __iomem *addr = ioremap(offset, 2);
-	writel(l, addr);
-	iounmap(addr);
-}
-
-static inline void
-isa_memset_io(unsigned long offset, u8 val, long n)
-{
-	void __iomem *addr = ioremap(offset, n);
-	memset_io(addr, val, n);
-	iounmap(addr);
-}
-
-static inline void
-isa_memcpy_fromio(void *dest, unsigned long offset, long n)
-{
-	void __iomem *addr = ioremap(offset, n);
-	memcpy_fromio(dest, addr, n);
-	iounmap(addr);
-}
-
-static inline void
-isa_memcpy_toio(unsigned long offset, const void *src, long n)
-{
-	void __iomem *addr = ioremap(offset, n);
-	memcpy_toio(addr, src, n);
-	iounmap(addr);
-}
-
-/*
  * The Alpha Jensen hardware for some rather strange reason puts
  * the RTC clock at 0x170 instead of 0x70. Probably due to some
  * misguided idea about using 0x70 for NMI stuff.
--- linux-2.6.14-mm2-full/include/asm-arm/io.h.old	2005-11-11 21:40:42.000000000 +0100
+++ linux-2.6.14-mm2-full/include/asm-arm/io.h	2005-11-11 21:59:36.000000000 +0100
@@ -215,42 +215,6 @@
 #endif	/* __mem_pci */
 
 /*
- * If this architecture has ISA IO, then define the isa_read/isa_write
- * macros.
- */
-#ifdef __mem_isa
-
-#define isa_readb(addr)			__raw_readb(__mem_isa(addr))
-#define isa_readw(addr)			__raw_readw(__mem_isa(addr))
-#define isa_readl(addr)			__raw_readl(__mem_isa(addr))
-#define isa_writeb(val,addr)		__raw_writeb(val,__mem_isa(addr))
-#define isa_writew(val,addr)		__raw_writew(val,__mem_isa(addr))
-#define isa_writel(val,addr)		__raw_writel(val,__mem_isa(addr))
-#define isa_memset_io(a,b,c)		_memset_io(__mem_isa(a),(b),(c))
-#define isa_memcpy_fromio(a,b,c)	_memcpy_fromio((a),__mem_isa(b),(c))
-#define isa_memcpy_toio(a,b,c)		_memcpy_toio(__mem_isa((a)),(b),(c))
-
-#define isa_eth_io_copy_and_sum(a,b,c,d) \
-				eth_copy_and_sum((a),__mem_isa(b),(c),(d))
-
-#else	/* __mem_isa */
-
-#define isa_readb(addr)			(__readwrite_bug("isa_readb"),0)
-#define isa_readw(addr)			(__readwrite_bug("isa_readw"),0)
-#define isa_readl(addr)			(__readwrite_bug("isa_readl"),0)
-#define isa_writeb(val,addr)		__readwrite_bug("isa_writeb")
-#define isa_writew(val,addr)		__readwrite_bug("isa_writew")
-#define isa_writel(val,addr)		__readwrite_bug("isa_writel")
-#define isa_memset_io(a,b,c)		__readwrite_bug("isa_memset_io")
-#define isa_memcpy_fromio(a,b,c)	__readwrite_bug("isa_memcpy_fromio")
-#define isa_memcpy_toio(a,b,c)		__readwrite_bug("isa_memcpy_toio")
-
-#define isa_eth_io_copy_and_sum(a,b,c,d) \
-				__readwrite_bug("isa_eth_io_copy_and_sum")
-
-#endif	/* __mem_isa */
-
-/*
  * ioremap and friends.
  *
  * ioremap takes a PCI memory address, as specified in
--- linux-2.6.14-mm2-full/include/asm-i386/io.h.old	2005-11-11 21:41:07.000000000 +0100
+++ linux-2.6.14-mm2-full/include/asm-i386/io.h	2005-11-12 00:37:26.000000000 +0100
@@ -214,23 +214,12 @@
  */
 #define __ISA_IO_base ((char __iomem *)(PAGE_OFFSET))
 
-#define isa_readb(a) readb(__ISA_IO_base + (a))
-#define isa_readw(a) readw(__ISA_IO_base + (a))
-#define isa_readl(a) readl(__ISA_IO_base + (a))
-#define isa_writeb(b,a) writeb(b,__ISA_IO_base + (a))
-#define isa_writew(w,a) writew(w,__ISA_IO_base + (a))
-#define isa_writel(l,a) writel(l,__ISA_IO_base + (a))
-#define isa_memset_io(a,b,c)		memset_io(__ISA_IO_base + (a),(b),(c))
-#define isa_memcpy_fromio(a,b,c)	memcpy_fromio((a),__ISA_IO_base + (b),(c))
-#define isa_memcpy_toio(a,b,c)		memcpy_toio(__ISA_IO_base + (a),(b),(c))
-
 
 /*
  * Again, i386 does not require mem IO specific function.
  */
 
 #define eth_io_copy_and_sum(a,b,c,d)		eth_copy_and_sum((a),(void __force *)(b),(c),(d))
-#define isa_eth_io_copy_and_sum(a,b,c,d)	eth_copy_and_sum((a),(void __force *)(__ISA_IO_base + (b)),(c),(d))
 
 /**
  *	check_signature		-	find BIOS signatures
--- linux-2.6.14-mm2-full/include/asm-mips/io.h.old	2005-11-11 21:41:23.000000000 +0100
+++ linux-2.6.14-mm2-full/include/asm-mips/io.h	2005-11-11 22:00:31.000000000 +0100
@@ -563,33 +563,10 @@
 extern void pci_iounmap(struct pci_dev *dev, void __iomem *);
 
 /*
- * ISA space is 'always mapped' on currently supported MIPS systems, no need
- * to explicitly ioremap() it. The fact that the ISA IO space is mapped
- * to PAGE_OFFSET is pure coincidence - it does not mean ISA values
- * are physical addresses. The following constant pointer can be
- * used as the IO-area pointer (it can be iounmapped as well, so the
- * analogy with PCI is quite large):
- */
-#define __ISA_IO_base ((char *)(isa_slot_offset))
-
-#define isa_readb(a)		readb(__ISA_IO_base + (a))
-#define isa_readw(a)		readw(__ISA_IO_base + (a))
-#define isa_readl(a)		readl(__ISA_IO_base + (a))
-#define isa_readq(a)		readq(__ISA_IO_base + (a))
-#define isa_writeb(b,a)		writeb(b,__ISA_IO_base + (a))
-#define isa_writew(w,a)		writew(w,__ISA_IO_base + (a))
-#define isa_writel(l,a)		writel(l,__ISA_IO_base + (a))
-#define isa_writeq(q,a)		writeq(q,__ISA_IO_base + (a))
-#define isa_memset_io(a,b,c)	memset_io(__ISA_IO_base + (a),(b),(c))
-#define isa_memcpy_fromio(a,b,c) memcpy_fromio((a),__ISA_IO_base + (b),(c))
-#define isa_memcpy_toio(a,b,c)	memcpy_toio(__ISA_IO_base + (a),(b),(c))
-
-/*
  * We don't have csum_partial_copy_fromio() yet, so we cheat here and
  * just copy it. The net code will then do the checksum later.
  */
 #define eth_io_copy_and_sum(skb,src,len,unused) memcpy_fromio((skb)->data,(src),(len))
-#define isa_eth_io_copy_and_sum(a,b,c,d) eth_copy_and_sum((a),(b),(c),(d))
 
 /*
  *     check_signature         -       find BIOS signatures
--- linux-2.6.14-mm2-full/include/asm-parisc/io.h.old	2005-11-11 21:41:44.000000000 +0100
+++ linux-2.6.14-mm2-full/include/asm-parisc/io.h	2005-11-11 22:01:12.000000000 +0100
@@ -294,22 +294,6 @@
 void memcpy_fromio(void *dst, const volatile void __iomem *src, int count);
 void memcpy_toio(volatile void __iomem *dst, const void *src, int count);
 
-/* Support old drivers which don't ioremap.
- * NB this interface is scheduled to disappear in 2.5
- */
-
-#define __isa_addr(x) (void __iomem *)(F_EXTEND(0xfc000000) | (x))
-#define isa_readb(a) readb(__isa_addr(a))
-#define isa_readw(a) readw(__isa_addr(a))
-#define isa_readl(a) readl(__isa_addr(a))
-#define isa_writeb(b,a) writeb((b), __isa_addr(a))
-#define isa_writew(b,a) writew((b), __isa_addr(a))
-#define isa_writel(b,a) writel((b), __isa_addr(a))
-#define isa_memset_io(a,b,c) memset_io(__isa_addr(a), (b), (c))
-#define isa_memcpy_fromio(a,b,c) memcpy_fromio((a), __isa_addr(b), (c))
-#define isa_memcpy_toio(a,b,c) memcpy_toio(__isa_addr(a), (b), (c))
-
-
 /*
  * XXX - We don't have csum_partial_copy_fromio() yet, so we cheat here and 
  * just copy it. The net code will then do the checksum later. Presently 
@@ -318,8 +302,6 @@
 
 #define eth_io_copy_and_sum(skb,src,len,unused) \
   memcpy_fromio((skb)->data,(src),(len))
-#define isa_eth_io_copy_and_sum(skb,src,len,unused) \
-  isa_memcpy_fromio((skb)->data,(src),(len))
 
 /* Port-space IO */
 
--- linux-2.6.14-mm2-full/include/asm-x86_64/io.h.old	2005-11-11 21:41:58.000000000 +0100
+++ linux-2.6.14-mm2-full/include/asm-x86_64/io.h	2005-11-12 00:38:07.000000000 +0100
@@ -264,23 +264,12 @@
  */
 #define __ISA_IO_base ((char __iomem *)(PAGE_OFFSET))
 
-#define isa_readb(a) readb(__ISA_IO_base + (a))
-#define isa_readw(a) readw(__ISA_IO_base + (a))
-#define isa_readl(a) readl(__ISA_IO_base + (a))
-#define isa_writeb(b,a) writeb(b,__ISA_IO_base + (a))
-#define isa_writew(w,a) writew(w,__ISA_IO_base + (a))
-#define isa_writel(l,a) writel(l,__ISA_IO_base + (a))
-#define isa_memset_io(a,b,c)		memset_io(__ISA_IO_base + (a),(b),(c))
-#define isa_memcpy_fromio(a,b,c)	memcpy_fromio((a),__ISA_IO_base + (b),(c))
-#define isa_memcpy_toio(a,b,c)		memcpy_toio(__ISA_IO_base + (a),(b),(c))
-
 
 /*
  * Again, x86-64 does not require mem IO specific function.
  */
 
 #define eth_io_copy_and_sum(a,b,c,d)		eth_copy_and_sum((a),(void *)(b),(c),(d))
-#define isa_eth_io_copy_and_sum(a,b,c,d)	eth_copy_and_sum((a),(void *)(__ISA_IO_base + (b)),(c),(d))
 
 /**
  *	check_signature		-	find BIOS signatures
--- linux-2.6.14-mm2-full/include/asm-m68k/io.h.old	2005-11-11 21:49:11.000000000 +0100
+++ linux-2.6.14-mm2-full/include/asm-m68k/io.h	2005-11-11 21:56:15.000000000 +0100
@@ -191,15 +191,6 @@
 #define isa_outb(val,port) out_8(isa_itb(port),(val))
 #define isa_outw(val,port) (ISA_SEX ? out_be16(isa_itw(port),(val)) : out_le16(isa_itw(port),(val)))
 
-#define isa_readb(p)       in_8(isa_mtb((unsigned long)(p)))
-#define isa_readw(p)       \
-	(ISA_SEX ? in_be16(isa_mtw((unsigned long)(p)))	\
-		 : in_le16(isa_mtw((unsigned long)(p))))
-#define isa_writeb(val,p)  out_8(isa_mtb((unsigned long)(p)),(val))
-#define isa_writew(val,p)  \
-	(ISA_SEX ? out_be16(isa_mtw((unsigned long)(p)),(val))	\
-		 : out_le16(isa_mtw((unsigned long)(p)),(val)))
-
 static inline void isa_delay(void)
 {
   switch(ISA_TYPE)
@@ -254,10 +245,14 @@
 #define insw    isa_insw
 #define outsb   isa_outsb
 #define outsw   isa_outsw
-#define readb   isa_readb
-#define readw   isa_readw
-#define writeb  isa_writeb
-#define writew  isa_writew
+#define readb(p) in_8(isa_mtb((unsigned long)(p)))
+#define readw(p)       \
+	(ISA_SEX ? in_be16(isa_mtw((unsigned long)(p)))	\
+		 : in_le16(isa_mtw((unsigned long)(p))))
+#define writeb(val,p)  out_8(isa_mtb((unsigned long)(p)),(val))
+#define writew(val,p)  \
+	(ISA_SEX ? out_be16(isa_mtw((unsigned long)(p)),(val))	\
+		 : out_le16(isa_mtw((unsigned long)(p)),(val)))
 #endif /* CONFIG_ISA */
 
 #if defined(CONFIG_PCI)
--- linux-2.6.14-mm2-full/include/asm-sh/io.h.old	2005-11-11 21:50:43.000000000 +0100
+++ linux-2.6.14-mm2-full/include/asm-sh/io.h	2005-11-11 22:01:37.000000000 +0100
@@ -159,19 +159,6 @@
 	generic_io_base = pbase;
 }
 
-#define isa_readb(a) readb(isa_port2addr(a))
-#define isa_readw(a) readw(isa_port2addr(a))
-#define isa_readl(a) readl(isa_port2addr(a))
-#define isa_writeb(b,a) writeb(b,isa_port2addr(a))
-#define isa_writew(w,a) writew(w,isa_port2addr(a))
-#define isa_writel(l,a) writel(l,isa_port2addr(a))
-#define isa_memset_io(a,b,c) \
-  memset((void *)(isa_port2addr((unsigned long)a)),(b),(c))
-#define isa_memcpy_fromio(a,b,c) \
-  memcpy((a),(void *)(isa_port2addr((unsigned long)(b))),(c))
-#define isa_memcpy_toio(a,b,c) \
-  memcpy((void *)(isa_port2addr((unsigned long)(a))),(b),(c))
-
 /* We really want to try and get these to memcpy etc */
 extern void memcpy_fromio(void *, unsigned long, unsigned long);
 extern void memcpy_toio(unsigned long, const void *, unsigned long);
--- linux-2.6.14-mm2-full/arch/i386/Kconfig.old	2005-11-11 21:44:56.000000000 +0100
+++ linux-2.6.14-mm2-full/arch/i386/Kconfig	2005-11-11 21:45:09.000000000 +0100
@@ -307,6 +307,7 @@
 
 config TOSHIBA
 	tristate "Toshiba Laptop support"
+	depends on BROKEN
 	---help---
 	  This adds a driver to safely access the System Management Mode of
 	  the CPU on Toshiba portables with a genuine Toshiba BIOS. It does
--- linux-2.6.14-mm2-full/drivers/net/Kconfig.old	2005-11-11 21:52:55.000000000 +0100
+++ linux-2.6.14-mm2-full/drivers/net/Kconfig	2005-11-11 22:02:32.000000000 +0100
@@ -726,7 +726,7 @@
 
 config LANCE
 	tristate "AMD LANCE and PCnet (AT1500 and NE2100) support"
-	depends on NET_ETHERNET && ISA && ISA_DMA_API
+	depends on NET_ETHERNET && ISA && ISA_DMA_API && BROKEN
 	help
 	  If you have a network (Ethernet) card of this type, say Y and read
 	  the Ethernet-HOWTO, available from
@@ -935,7 +935,7 @@
 
 config HP100
 	tristate "HP 10/100VG PCLAN (ISA, EISA, PCI) support"
-	depends on NET_ETHERNET && (ISA || EISA || PCI)
+	depends on NET_ETHERNET && (ISA || EISA || PCI) && BROKEN
 	help
 	  If you have a network (Ethernet) card of this type, say Y and read
 	  the Ethernet-HOWTO, available from
@@ -1021,7 +1021,7 @@
 
 config HPLAN_PLUS
 	tristate "HP PCLAN+ (27247B and 27252A) support"
-	depends on NET_ISA
+	depends on NET_ISA && BROKEN
 	select CRC32
 	help
 	  If you have a network (Ethernet) card of this type, say Y and read
--- linux-2.6.14-mm2-full/drivers/net/arcnet/Kconfig.old	2005-11-11 21:45:50.000000000 +0100
+++ linux-2.6.14-mm2-full/drivers/net/arcnet/Kconfig	2005-11-11 21:46:22.000000000 +0100
@@ -80,7 +80,7 @@
 
 config ARCNET_COM90xx
 	tristate "ARCnet COM90xx (normal) chipset driver"
-	depends on ARCNET
+	depends on ARCNET && BROKEN
 	help
 	  This is the chipset driver for the standard COM90xx cards. If you
 	  have always used the old ARCnet driver without knowing what type of
@@ -105,7 +105,7 @@
 
 config ARCNET_RIM_I
 	tristate "ARCnet COM90xx (RIM I) chipset driver"
-	depends on ARCNET
+	depends on ARCNET && BROKEN
 	---help---
 	  This is yet another chipset driver for the COM90xx cards, but this
 	  time only using memory-mapped mode, and no IO ports at all. This
--- linux-2.6.14-mm2-full/drivers/scsi/Kconfig.old	2005-11-11 21:47:56.000000000 +0100
+++ linux-2.6.14-mm2-full/drivers/scsi/Kconfig	2005-11-11 21:48:17.000000000 +0100
@@ -474,7 +474,7 @@
 
 config SCSI_IN2000
 	tristate "Always IN2000 SCSI support"
-	depends on ISA && SCSI
+	depends on ISA && SCSI && BROKEN
 	help
 	  This is support for an ISA bus SCSI host adapter.  You'll find more
 	  information in <file:Documentation/scsi/in2000.txt>. If it doesn't work
--- linux-2.6.14-mm2-full/include/asm-arm/arch-aaec2000/io.h.old	2005-11-12 05:46:17.000000000 +0100
+++ linux-2.6.14-mm2-full/include/asm-arm/arch-aaec2000/io.h	2005-11-12 05:46:35.000000000 +0100
@@ -16,6 +16,5 @@
  */
 #define __io(a)			((void __iomem *)(a))
 #define __mem_pci(a)		(a)
-#define __mem_isa(a)		(a)
 
 #endif
--- linux-2.6.14-mm2-full/include/asm-arm/arch-clps711x/io.h.old	2005-11-12 05:46:40.000000000 +0100
+++ linux-2.6.14-mm2-full/include/asm-arm/arch-clps711x/io.h	2005-11-12 05:46:47.000000000 +0100
@@ -26,7 +26,6 @@
 
 #define __io(a)			((void __iomem *)(a))
 #define __mem_pci(a)		(a)
-#define __mem_isa(a)		(a)
 
 /*
  * We don't support ins[lb]/outs[lb].  Make them fault.
--- linux-2.6.14-mm2-full/include/asm-arm/arch-ebsa285/io.h.old	2005-11-12 05:47:02.000000000 +0100
+++ linux-2.6.14-mm2-full/include/asm-arm/arch-ebsa285/io.h	2005-11-12 05:47:43.000000000 +0100
@@ -24,7 +24,6 @@
 #define __io(a)			((void __iomem *)(PCIO_BASE + (a)))
 #if 1
 #define __mem_pci(a)		(a)
-#define __mem_isa(a)		((a) + PCIMEM_BASE)
 #else
 
 static inline void __iomem *___mem_pci(void __iomem *p)
@@ -34,14 +33,7 @@
 	return p;
 }
 
-static inline void __iomem *___mem_isa(void __iomem *p)
-{
-	unsigned long a = (unsigned long)p;
-	BUG_ON(a >= 16*1048576);
-	return p + PCIMEM_BASE;
-}
 #define __mem_pci(a)		___mem_pci(a)
-#define __mem_isa(a)		___mem_isa(a)
 #endif
 
 #endif
--- linux-2.6.14-mm2-full/include/asm-arm/arch-integrator/io.h.old	2005-11-12 05:48:52.000000000 +0100
+++ linux-2.6.14-mm2-full/include/asm-arm/arch-integrator/io.h	2005-11-12 05:48:56.000000000 +0100
@@ -32,6 +32,5 @@
 
 #define __io(a)			((void __iomem *)(PCI_IO_VADDR + (a)))
 #define __mem_pci(a)		(a)
-#define __mem_isa(a)		((a) + PCI_MEMORY_VADDR)
 
 #endif
--- linux-2.6.14-mm2-full/include/asm-arm/arch-iop3xx/io.h.old	2005-11-12 05:49:04.000000000 +0100
+++ linux-2.6.14-mm2-full/include/asm-arm/arch-iop3xx/io.h	2005-11-12 05:49:07.000000000 +0100
@@ -17,6 +17,5 @@
 
 #define __io(p)			((void __iomem *)(p))
 #define __mem_pci(a)		(a)
-#define __mem_isa(a)		(a)
 
 #endif
--- linux-2.6.14-mm2-full/include/asm-arm/arch-l7200/io.h.old	2005-11-12 05:49:23.000000000 +0100
+++ linux-2.6.14-mm2-full/include/asm-arm/arch-l7200/io.h	2005-11-12 05:49:28.000000000 +0100
@@ -19,7 +19,6 @@
  */
 #define __io_pci(a)		((void __iomem *)(PCIO_BASE + (a)))
 #define __mem_pci(a)		(a)
-#define __mem_isa(a)		(a)
 
 #define __ioaddr(p)             __io_pci(p)
 
--- linux-2.6.14-mm2-full/include/asm-arm/arch-lh7a40x/io.h.old	2005-11-12 05:49:42.000000000 +0100
+++ linux-2.6.14-mm2-full/include/asm-arm/arch-lh7a40x/io.h	2005-11-12 05:49:47.000000000 +0100
@@ -18,6 +18,5 @@
 /* No ISA or PCI bus on this machine. */
 #define __io(a)			((void __iomem *)(a))
 #define __mem_pci(a)		(a)
-#define __mem_isa(a)		(a)
 
 #endif /* __ASM_ARCH_IO_H */
--- linux-2.6.14-mm2-full/include/asm-arm/arch-omap/io.h.old	2005-11-12 05:49:57.000000000 +0100
+++ linux-2.6.14-mm2-full/include/asm-arm/arch-omap/io.h	2005-11-12 05:50:01.000000000 +0100
@@ -44,7 +44,6 @@
  */
 #define __io(a)			((void __iomem *)(PCIO_BASE + (a)))
 #define __mem_pci(a)		(a)
-#define __mem_isa(a)		(a)
 
 /*
  * ----------------------------------------------------------------------------
--- linux-2.6.14-mm2-full/include/asm-arm/arch-pxa/io.h.old	2005-11-12 05:50:11.000000000 +0100
+++ linux-2.6.14-mm2-full/include/asm-arm/arch-pxa/io.h	2005-11-12 05:50:14.000000000 +0100
@@ -16,6 +16,5 @@
  */
 #define __io(a)			((void __iomem *)(a))
 #define __mem_pci(a)		(a)
-#define __mem_isa(a)		(a)
 
 #endif
--- linux-2.6.14-mm2-full/include/asm-arm/arch-sa1100/io.h.old	2005-11-12 05:50:22.000000000 +0100
+++ linux-2.6.14-mm2-full/include/asm-arm/arch-sa1100/io.h	2005-11-12 05:50:25.000000000 +0100
@@ -24,6 +24,5 @@
 }
 #define __io(a)			__io(a)
 #define __mem_pci(a)		(a)
-#define __mem_isa(a)		(a)
 
 #endif
--- linux-2.6.14-mm2-full/include/asm-arm/arch-versatile/io.h.old	2005-11-12 05:50:34.000000000 +0100
+++ linux-2.6.14-mm2-full/include/asm-arm/arch-versatile/io.h	2005-11-12 05:50:37.000000000 +0100
@@ -28,6 +28,5 @@
 }
 #define __io(a)	__io(a)
 #define __mem_pci(a)		(a)
-#define __mem_isa(a)		(a)
 
 #endif
--- linux-2.6.14-mm2-full/include/asm-arm/arch-realview/io.h.old	2005-11-12 05:50:45.000000000 +0100
+++ linux-2.6.14-mm2-full/include/asm-arm/arch-realview/io.h	2005-11-12 05:50:48.000000000 +0100
@@ -29,6 +29,5 @@
 
 #define __io(a)			__io(a)
 #define __mem_pci(a)		(a)
-#define __mem_isa(a)		(a)
 
 #endif


^ permalink raw reply

* [-mm patch] drivers/net/wireless/tiacx/: add missing #include <linux/vmalloc.h>'a
From: Adrian Bunk @ 2005-11-11 20:07 UTC (permalink / raw)
  To: jgarzik; +Cc: netdev, linux-kernel

This is required for always getting the vmalloc()/vfree() prototypes.


Signed-off-by: Adrian Bunk <bunk@stusta.de>

---

 drivers/net/wireless/tiacx/common.c |    1 +
 drivers/net/wireless/tiacx/pci.c    |    1 +
 drivers/net/wireless/tiacx/usb.c    |    1 +
 3 files changed, 3 insertions(+)

--- linux-2.6.14-mm2-full/drivers/net/wireless/tiacx/common.c.old	2005-11-11 20:51:52.000000000 +0100
+++ linux-2.6.14-mm2-full/drivers/net/wireless/tiacx/common.c	2005-11-11 20:52:07.000000000 +0100
@@ -45,6 +45,7 @@
 #include <linux/etherdevice.h>
 #include <linux/wireless.h>
 #include <linux/pm.h>
+#include <linux/vmalloc.h>
 #if WIRELESS_EXT >= 13
 #include <net/iw_handler.h>
 #endif /* WE >= 13 */
--- linux-2.6.14-mm2-full/drivers/net/wireless/tiacx/pci.c.old	2005-11-11 21:04:38.000000000 +0100
+++ linux-2.6.14-mm2-full/drivers/net/wireless/tiacx/pci.c	2005-11-11 21:05:09.000000000 +0100
@@ -52,6 +52,7 @@
 #include <linux/ioport.h>
 #include <linux/pci.h>
 #include <linux/pm.h>
+#include <linux/vmalloc.h>
 
 #include "acx.h"
 
--- linux-2.6.14-mm2-full/drivers/net/wireless/tiacx/usb.c.old	2005-11-11 21:06:13.000000000 +0100
+++ linux-2.6.14-mm2-full/drivers/net/wireless/tiacx/usb.c	2005-11-11 21:06:31.000000000 +0100
@@ -64,6 +64,7 @@
 #if WIRELESS_EXT >= 13
 #include <net/iw_handler.h>
 #endif
+#include <linux/vmalloc.h>
 
 #include "acx.h"
 

^ permalink raw reply

* Re: [PATCH] TCP build fix
From: David S. Miller @ 2005-11-11 19:57 UTC (permalink / raw)
  To: jgarzik; +Cc: akpm, torvalds, shemminger, linux-kernel, netdev
In-Reply-To: <20051111094347.GA10876@havoc.gtf.org>

From: Jeff Garzik <jgarzik@pobox.com>
Date: Fri, 11 Nov 2005 04:43:47 -0500

> Recent TCP changes broke the build.
> 
> Signed-off-by: Jeff Garzik <jgarzik@pobox.com>

Thanks for catching this Jeff.

^ permalink raw reply

* [2.6 patch] drivers/net/sk98lin/skge.c: make SkPciWriteCfgDWord() a static inline
From: Adrian Bunk @ 2005-11-11 19:44 UTC (permalink / raw)
  To: jgarzik; +Cc: netdev, linux-kernel

No external user and that small - such a function should be static 
inline and not a global function.


Signed-off-by: Adrian Bunk <bunk@stusta.de>

---

 drivers/net/sk98lin/h/skvpd.h |    8 ------
 drivers/net/sk98lin/skge.c    |   43 ++++++++++++++++------------------
 2 files changed, 21 insertions(+), 30 deletions(-)

--- linux-2.6.14-mm2-full/drivers/net/sk98lin/h/skvpd.h.old	2005-11-11 20:30:25.000000000 +0100
+++ linux-2.6.14-mm2-full/drivers/net/sk98lin/h/skvpd.h	2005-11-11 20:30:44.000000000 +0100
@@ -130,14 +130,12 @@
 #ifndef VPD_DO_IO
 #define VPD_OUT8(pAC,IoC,Addr,Val)	(void)SkPciWriteCfgByte(pAC,Addr,Val)
 #define VPD_OUT16(pAC,IoC,Addr,Val)	(void)SkPciWriteCfgWord(pAC,Addr,Val)
-#define VPD_OUT32(pAC,IoC,Addr,Val)	(void)SkPciWriteCfgDWord(pAC,Addr,Val)
 #define VPD_IN8(pAC,IoC,Addr,pVal)	(void)SkPciReadCfgByte(pAC,Addr,pVal)
 #define VPD_IN16(pAC,IoC,Addr,pVal)	(void)SkPciReadCfgWord(pAC,Addr,pVal)
 #define VPD_IN32(pAC,IoC,Addr,pVal)	(void)SkPciReadCfgDWord(pAC,Addr,pVal)
 #else	/* VPD_DO_IO */
 #define VPD_OUT8(pAC,IoC,Addr,Val)	SK_OUT8(IoC,PCI_C(Addr),Val)
 #define VPD_OUT16(pAC,IoC,Addr,Val)	SK_OUT16(IoC,PCI_C(Addr),Val)
-#define VPD_OUT32(pAC,IoC,Addr,Val)	SK_OUT32(IoC,PCI_C(Addr),Val)
 #define VPD_IN8(pAC,IoC,Addr,pVal)	SK_IN8(IoC,PCI_C(Addr),pVal)
 #define VPD_IN16(pAC,IoC,Addr,pVal)	SK_IN16(IoC,PCI_C(Addr),pVal)
 #define VPD_IN32(pAC,IoC,Addr,pVal)	SK_IN32(IoC,PCI_C(Addr),pVal)
@@ -155,12 +153,6 @@
 		else						\
 			SK_OUT16(pAC,PCI_C(Addr),Val);		\
 		}
-#define VPD_OUT32(pAC,Ioc,Addr,Val) {			\
-		if ((pAC)->DgT.DgUseCfgCycle)			\
-			SkPciWriteCfgDWord(pAC,Addr,Val);	\
-		else						\
-			SK_OUT32(pAC,PCI_C(Addr),Val); 		\
-		}
 #define VPD_IN8(pAC,Ioc,Addr,pVal) {			\
 		if ((pAC)->DgT.DgUseCfgCycle) 			\
 			SkPciReadCfgByte(pAC,Addr,pVal);	\
--- linux-2.6.14-mm2-full/drivers/net/sk98lin/skge.c.old	2005-11-11 20:31:05.000000000 +0100
+++ linux-2.6.14-mm2-full/drivers/net/sk98lin/skge.c	2005-11-11 20:32:39.000000000 +0100
@@ -279,6 +279,27 @@
 
 /*****************************************************************************
  *
+ *	SkPciWriteCfgDWord - write a 32 bit value to pci config space
+ *
+ * Description:
+ *	This routine writes a 32 bit value to the pci configuration
+ *	space.
+ *
+ * Returns:
+ *	0 - indicate everything worked ok.
+ *	!= 0 - error indication
+ */
+static inline int SkPciWriteCfgDWord(
+SK_AC *pAC,	/* Adapter Control structure pointer */
+int PciAddr,		/* PCI register address */
+SK_U32 Val)		/* pointer to store the read value */
+{
+	pci_write_config_dword(pAC->PciDev, PciAddr, Val);
+	return(0);
+} /* SkPciWriteCfgDWord */
+
+/*****************************************************************************
+ *
  * 	SkGeInitPCI - Init the PCI resources
  *
  * Description:
@@ -4085,28 +4106,6 @@
 
 /*****************************************************************************
  *
- *	SkPciWriteCfgDWord - write a 32 bit value to pci config space
- *
- * Description:
- *	This routine writes a 32 bit value to the pci configuration
- *	space.
- *
- * Returns:
- *	0 - indicate everything worked ok.
- *	!= 0 - error indication
- */
-int SkPciWriteCfgDWord(
-SK_AC *pAC,	/* Adapter Control structure pointer */
-int PciAddr,		/* PCI register address */
-SK_U32 Val)		/* pointer to store the read value */
-{
-	pci_write_config_dword(pAC->PciDev, PciAddr, Val);
-	return(0);
-} /* SkPciWriteCfgDWord */
-
-
-/*****************************************************************************
- *
  *	SkPciWriteCfgWord - write a 16 bit value to pci config space
  *
  * Description:

^ permalink raw reply

* Re: [PATCH] TCP build fix
From: Stephen Hemminger @ 2005-11-11 18:41 UTC (permalink / raw)
  To: Jeff Garzik; +Cc: Andrew Morton, Linus Torvalds, davem, linux-kernel, netdev
In-Reply-To: <20051111094347.GA10876@havoc.gtf.org>

Jeff Garzik wrote:

>Recent TCP changes broke the build.
>
>Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
>
>diff --git a/net/ipv4/tcp_vegas.c b/net/ipv4/tcp_vegas.c
>index 4376814..b7d296a 100644
>--- a/net/ipv4/tcp_vegas.c
>+++ b/net/ipv4/tcp_vegas.c
>@@ -236,7 +236,7 @@ static void tcp_vegas_cong_avoid(struct 
> 			/* We don't have enough RTT samples to do the Vegas
> 			 * calculation, so we'll behave like Reno.
> 			 */
>-			tcp_reno_cong_avoid(sk, ack, seq_rtt, in_flight, cnt);
>+			tcp_reno_cong_avoid(sk, ack, seq_rtt, in_flight, flag);
> 		} else {
> 			u32 rtt, target_cwnd, diff;
> 
>  
>
Sorry, must have happened when juggling the test and release tree.

^ permalink raw reply

* Re: RED qdisc not working...
From: Andy Furniss @ 2005-11-11 15:15 UTC (permalink / raw)
  To: Daniel J Blueman; +Cc: netdev, lartc
In-Reply-To: <6278d2220511071626j3646afa7n5ac33228e8b3fc82@mail.gmail.com>

Daniel J Blueman wrote:
> Has anyone been able to get the RED (random early detection) qdisc
> working lately?
> 
> I can't get anything going through it to be dropped or marked; the
> 'marked', 'early', 'pdrop' and 'other' fields remain at 0 [1]. In my
> example script [2], I get the 3072Kbits/s transfer into eth0, which
> you'd expect if the RED qdisc wasn't there.
> 
> I have tried with a recent 2.6.12 debian kernel and stock 2.6.14 on
> x86_64 debian. I built new iproute and iptables packages from latest
> clean upstream sources, but to no avail.
> 
> Any ideas? Please CC me on replies, as I am not subscribed.
> 
> Dan
> 
> --- [1]
> 
> # tc -s qdisc show dev eth0
> qdisc htb 1: r2q 10 default 10 direct_packets_stat 0
>  Sent 53985530 bytes 36757 pkts (dropped 0, overlimits 45125)
> qdisc red 10: parent 1:10 limit 512Kb min 64Kb max 128Kb
>  Sent 53985530 bytes 36757 pkts (dropped 0, overlimits 0)
>   marked 0 early 0 pdrop 0 other 0
> 
> --- [2]
> 
> tc qdisc del dev eth0 root
> 
> tc qdisc add dev eth0 root handle 1: htb default 10
> tc class add dev eth0 parent 1: classid 1:1 htb rate 4096kbit ceil 4096kbit
> tc class add dev eth0 parent 1:1 classid 1:10 htb rate 3072kbit ceil 3072kbit
> tc qdisc add dev eth0 parent 1:10 handle 10: red \
>   limit 4096kbit min 512kbit max 1024kbit avpkt 1000 \
>   burst 100 probability 0.02 bandwidth 1024kbit
> ___
> Daniel J Blueman

You need to test with several tcp connections, one will not have a big 
enough rwin to fill the queue enough to reach the buffer thresholds - 
which for clarity I would specify in kb not kbit.

Andy.


Andy.

^ permalink raw reply

* Re: [PATCH] gianfar mii needs to zero out the mii_bus structure
From: Jeff Garzik @ 2005-11-11 13:27 UTC (permalink / raw)
  To: Kumar Gala; +Cc: netdev, linuxppc-embedded
In-Reply-To: <Pine.LNX.4.44.0511091211030.26349-100000@gate.crashing.org>

applied

^ 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