Skip to contentSkip to conversation

Linux 2.4.18pre7-ac1

DISCUSSION Alan Cox 4 participants 4 messages Jan 29, 2002 – Jan 30, 2002

Subsystems (2)
lore
Share & tools
lore

Alan Cox

author
#0 lore raw

This is just a standing still release. Most of the work was actually done by Arjan van de Ven.

[+ indicates stuff that went to Marcelo, o stuff that has not,
* indicates stuff that is merged in mainstream now, X stuff that proved bad and was dropped out]

Linux 2.4.18pre7-ac1
o Merge with 2.4.18pre7 (Arjan van de Ven)
| + some quota fixups redone by me
| several 18pre7 netfilter bugs left unfixed for now
o Rmap-12a (Rik van Riel and co)

Linux 2.4.18pre3-ac2

o Re-merge the IDE patches (Andre Hedrick and co)
* Fix check/request region in ali_ircc and lowcomx(Steven Walter)

	com90xx, sealevel, sb1000

* Remove unused message from 6pack driver (Adrian Bunk)
* Fix unused variable warning in i60scsi (Adrian Bunk)
o Fix off by one floppy oops (Keith Owens)
o Fix i2o_config use of undefined C (Andreas Dilger)
* Fix fdomain scsi oopses (Per Larsson)
* Fix sf16fmi hang on boot (me)
o Add bridge resources to the resource tree (Ivan Kokshaysky)
* Fix iphase ATM oops on close in on case (Till Immanuel Patzschke)
+ Enable OOSTORE on winchip processors (Dave Jones, me)
| Worth about 10-20% performance
* Code Page 1250 support (Petr Titera)
* Fix sdla and hpfs doc typos (Sven Vermeulen)
o Document /proc/stat (Sven Heinicke)
* Update cs4281 drivers (Tom Woller)

	| Fixes xmms stutter, remove wrapper code
	| handle tosh boxes, allow record device change
	| trigger wakeups on ioctl triggered changes

o Fix locking of file struct stuff found by ibm (Dipankar Sarma)
audit
o Use spin_lock_init in serial.c (Dave Miller)
* Fix AF_UNIX shutdown bug (Dave Miller)

Linux 2.4.18pre3-ac1

o 32bit uid quota
o rmap-11b VM (Rik van Riel,
William Irwin etc)
o Make scsi printer visible (Stefan Wieseckel)
* Report Hercules Fortissimo card (Minya Sorakinu)
* Fix O_NDELAY close mishandling on the following (me)

	sound cards: cmpci, cs46xx, es1370, es1371,
	esssolo1, sonicvibes

* tdfx pixclock handling fix (Jurriaan)
o Fix mishandling of file system size limiting (Andrea Arcangeli)
o generic_serial cleanups (Rasmus Andersen)
o serial.c locking fixes for SMP - move from cli (Kees)
too
o Truncate fixes from old -ac tree (Andrew Morton)
o Hopefully fix the i2o oops (me)
| Not the right fix but it'll do till I rewrite this
* Fix non blocking tty blocking bug (Peter Benie)
o IRQ routing workaround for problem HP laptops (Cory Bell)
* Fix the rcpci driver (Pete Popov)
* Fix documentation of aedsp location (Adrian Bunk)
* Fix the worst of the APM ate my cpu problems (Andreas Steinmetz)
* Correct icmp documentation (Pierre Lombard)
* Multiple mxser crash on boot fix (Stephan von Krawczynski)
o ldm header fix (Anton Altaparmakov)
* Fix unchecked kmalloc in i2c_proc (Ragnar Hojland Espinosa)
* Fix unchecked kmalloc in airo_cs (Ragnar Hojland Espinosa)
* Fix unchecked kmalloc in btaudio (Ragnar Hojland Espinosa)
* Fix unchecked kmalloc in qnx4/inode.c (Ragnar Hojland Espinosa)
* Disable DRM4.1 GMX2000 driver (4.0 required) (me)
* Fix sb16 lower speed limit bug (Jori Liesenborgs)
o Fix compilation of orinoco driver (Ben Herrenschmidt)
o ISAPnP init fix (Chris Rankin)
o Export release_console_sem (Andrew Morton)
* Output nat crash fix (Rusty Russell)
* Fix PLIP (Niels Jensen)
o Natsemi driver hang fix (Manfred Spraul)
* Add mono/stereo reporting to gemtek pci radio (Jonathan Hudson)

#1 lore raw

Hello.

Compiling fails with the following output:

ld: cannot open ipt_ah.o: No such file or directory
make[3]: *** [netfilter.o] Error 1
make[3]: Leaving directory `/usr/src/linux-2.4.18-pre7-ac1/net/ipv4/netfilter' make[2]: *** [first_rule] Error 2
make[2]: Leaving directory `/usr/src/linux-2.4.18-pre7-ac1/net/ipv4/netfilter' make[1]: *** [_subdir_ipv4/netfilter] Error 2
make[1]: Leaving directory `/usr/src/linux-2.4.18-pre7-ac1/net'
make: *** [_dir_net] Error 2

This is related to CONFIG_IP_NF_MATCH_AH_ESP. Switching it off will not reveal this error (because there's no file called ipt_ah.c).

Same with option CONFIG_IP_NF_TARGET_ULOG.

I read this before on the list, but found no answer.

Maybe that was meant with

Quoted 1 line

several 18pre7 netfilter bugs left unfixed for now

Thanks,
*Kristian

:... [snd.science] ...:
::
:: http://www.korseby.net
:: http://gsmp.sf.net
:.........................:: ~/$ [email protected] :

#2 lore raw
Quoted 3 lines

Compiling fails with the following output:

ld: cannot open ipt_ah.o: No such file or directory

Thats a bug in the base 2.4.18pre7

Quoted 2 lines

Maybe that was meant with

Quoted 1 line

several 18pre7 netfilter bugs left unfixed for now

Yep

#3 lore raw

From: Alan Cox <[email protected]>
Date: Tue, 29 Jan 2002 23:27:23 +0000 (GMT)

Quoted 3 lines

Compiling fails with the following output:

ld: cannot open ipt_ah.o: No such file or directory

Thats a bug in the base 2.4.18pre7

Quoted 2 lines

Maybe that was meant with

Quoted 1 line

several 18pre7 netfilter bugs left unfixed for now

Yep

I've sent Marcelo fixes for all of this (which I attach below) but I have not heard from him for at least 4 days now. Probably he is at or on his way to some conference :-)

include/linux/netfilter_ipv4/ipt_ULOG.h renamed from vanilla/2.4/linux/include/linux/netfilter_ipv4/ipt_ULOG.h +46 -0
diff -u --recursive --new-file --exclude=CVS --exclude=.cvsignore ../vanilla/2.4/linux/include/linux/netfilter_ipv4/ipt_ULOG.h linux/include/linux/netfilter_ipv4/ipt_ULOG.h
@@ -0,0 +1,46 @@
+/* Header file for IP tables userspace logging, Version 1.8
+ *
+ * (C) 2000-2002 by Harald Welte <[email protected]>
+ * 
+ * Distributed under the terms of GNU GPL */
+
+#ifndef _IPT_ULOG_H
+#define _IPT_ULOG_H
+
+#ifndef NETLINK_NFLOG
+#define NETLINK_NFLOG 	5
+#endif
+
+#define ULOG_MAC_LEN	80
+#define ULOG_PREFIX_LEN	32
+
+#define ULOG_MAX_QLEN	50
+/* Why 50? Well... there is a limit imposed by the slab cache 131000
+ * bytes. So the multipart netlink-message has to be < 131000 bytes.
+ * Assuming a standard ethernet-mtu of 1500, we could define this up
+ * to 80... but even 50 seems to be big enough. */
+
+/* private data structure for each rule with a ULOG target */
+struct ipt_ulog_info {
+	unsigned int nl_group;
+	size_t copy_range;
+	size_t qthreshold;
+	char prefix[ULOG_PREFIX_LEN];
+};
+
+/* Format of the ULOG packets passed through netlink */
+typedef struct ulog_packet_msg {
+	unsigned long mark;
+	long timestamp_sec;
+	long timestamp_usec;
+	unsigned int hook;
+	char indev_name[IFNAMSIZ];
+	char outdev_name[IFNAMSIZ];
+	size_t data_len;
+	char prefix[ULOG_PREFIX_LEN];
+	unsigned char mac_len;
+	unsigned char mac[ULOG_MAC_LEN];
+	unsigned char payload[0];
+} ulog_packet_msg_t;
+
+#endif /*_IPT_ULOG_H*/
include/linux/netfilter_ipv4/ipt_ah.h renamed from vanilla/2.4/linux/include/linux/netfilter_ipv4/ipt_ah.h +16 -0
diff -u --recursive --new-file --exclude=CVS --exclude=.cvsignore ../vanilla/2.4/linux/include/linux/netfilter_ipv4/ipt_ah.h linux/include/linux/netfilter_ipv4/ipt_ah.h
@@ -0,0 +1,16 @@
+#ifndef _IPT_AH_H
+#define _IPT_AH_H
+
+struct ipt_ah
+{
+	u_int32_t spis[2];			/* Security Parameter Index */
+	u_int8_t  invflags;			/* Inverse flags */
+};
+
+
+
+/* Values for "invflags" field in struct ipt_ah. */
+#define IPT_AH_INV_SPI		0x01	/* Invert the sense of spi. */
+#define IPT_AH_INV_MASK	0x01	/* All possible flags. */
+
+#endif /*_IPT_AH_H*/
include/linux/netfilter_ipv4/ipt_esp.h renamed from vanilla/2.4/linux/include/linux/netfilter_ipv4/ipt_esp.h +16 -0
diff -u --recursive --new-file --exclude=CVS --exclude=.cvsignore ../vanilla/2.4/linux/include/linux/netfilter_ipv4/ipt_esp.h linux/include/linux/netfilter_ipv4/ipt_esp.h
@@ -0,0 +1,16 @@
+#ifndef _IPT_ESP_H
+#define _IPT_ESP_H
+
+struct ipt_esp
+{
+	u_int32_t spis[2];			/* Security Parameter Index */
+	u_int8_t  invflags;			/* Inverse flags */
+};
+
+
+
+/* Values for "invflags" field in struct ipt_esp. */
+#define IPT_ESP_INV_SPI		0x01	/* Invert the sense of spi. */
+#define IPT_ESP_INV_MASK	0x01	/* All possible flags. */
+
+#endif /*_IPT_ESP_H*/
include/linux/netfilter_ipv4.h renamed from vanilla/2.4/linux/include/linux/netfilter_ipv4.h +77 -0

81 lines not on this page · raw message

net/ipv4/netfilter/ip_nat_standalone.c renamed from vanilla/2.4/linux/net/ipv4/netfilter/ip_nat_standalone.c +0 -40
diff -u --recursive --new-file --exclude=CVS --exclude=.cvsignore ../vanilla/2.4/linux/net/ipv4/netfilter/ip_nat_standalone.c linux/net/ipv4/netfilter/ip_nat_standalone.c
@@ -166,46 +166,6 @@
 	return ip_nat_fn(hooknum, pskb, in, out, okfn);
 }
 
-static int route_me_harder(struct sk_buff **pskb)
-{
-	struct iphdr *iph = (*pskb)->nh.iph;
-	struct rtable *rt;
-	struct rt_key key = { dst:iph->daddr,
-			      src:iph->saddr,
-			      oif:(*pskb)->sk ? (*pskb)->sk->bound_dev_if : 0,
-			      tos:RT_TOS(iph->tos)|RTO_CONN,
-#ifdef CONFIG_IP_ROUTE_FWMARK
-			      fwmark:(*pskb)->nfmark
-#endif
-			    };
-
-	if (ip_route_output_key(&rt, &key) != 0) {
-		printk("route_me_harder: No more route.\n");
-		return -EINVAL;
-	}
-
-	/* Drop old route. */
-	dst_release((*pskb)->dst);
-
-	(*pskb)->dst = &rt->u.dst;
-
-	/* Change in oif may mean change in hh_len. */
-	if (skb_headroom(*pskb) < (*pskb)->dst->dev->hard_header_len) {
-		struct sk_buff *nskb;
-
-		nskb = skb_realloc_headroom(*pskb,
-					    (*pskb)->dst->dev
-					    ->hard_header_len);
-		if (!nskb)
-			return -ENOMEM;
-		if ((*pskb)->sk)
-			skb_set_owner_w(nskb, (*pskb)->sk);
-		kfree_skb(*pskb);
-		*pskb = nskb;
-	}
-	return 0;
-}
-
 static unsigned int
 ip_nat_local_fn(unsigned int hooknum,
 		struct sk_buff **pskb,
net/ipv4/netfilter/ip_queue.c renamed from vanilla/2.4/linux/net/ipv4/netfilter/ip_queue.c +1 -27
diff -u --recursive --new-file --exclude=CVS --exclude=.cvsignore ../vanilla/2.4/linux/net/ipv4/netfilter/ip_queue.c linux/net/ipv4/netfilter/ip_queue.c
@@ -216,32 +216,6 @@
 	kfree(q);
 }
 
-/* With a chainsaw... */
-static int route_me_harder(struct sk_buff *skb)
-{
-	struct iphdr *iph = skb->nh.iph;
-	struct rtable *rt;
-
-	struct rt_key key = {
-				dst:iph->daddr, src:iph->saddr,
-				oif:skb->sk ? skb->sk->bound_dev_if : 0,
-				tos:RT_TOS(iph->tos)|RTO_CONN,
-#ifdef CONFIG_IP_ROUTE_FWMARK
-				fwmark:skb->nfmark
-#endif
-			};
-
-	if (ip_route_output_key(&rt, &key) != 0) {
-		printk("route_me_harder: No more route.\n");
-		return -EINVAL;
-	}
-
-	/* Drop old route. */
-	dst_release(skb->dst);
-	skb->dst = &rt->u.dst;
-	return 0;
-}
-
 static int ipq_mangle_ipv4(ipq_verdict_msg_t *v, ipq_queue_element_t *e)
 {
 	int diff;
@@ -287,7 +261,7 @@
 		if (!(iph->tos == e->rt_info.tos
 		      && iph->daddr == e->rt_info.daddr
 		      && iph->saddr == e->rt_info.saddr))
-			return route_me_harder(e->skb);
+			return route_me_harder(&e->skb);
 	}
 	return 0;
 }
net/ipv4/netfilter/ipfwadm_core.c renamed from vanilla/2.4/linux/net/ipv4/netfilter/ipfwadm_core.c +5 -5
diff -u --recursive --new-file --exclude=CVS --exclude=.cvsignore ../vanilla/2.4/linux/net/ipv4/netfilter/ipfwadm_core.c linux/net/ipv4/netfilter/ipfwadm_core.c
@@ -20,7 +20,7 @@
  *	license in recognition of the original copyright.
  *				-- Alan Cox.
  *
- *	$Id: ipfwadm_core.c,v 1.9.2.1 2002/01/23 13:18:19 davem Exp $
+ *	$Id: ipfwadm_core.c,v 1.9.2.2 2002/01/24 15:50:42 davem Exp $
  *
  *	Ported from BSD to Linux,
  *		Alan Cox 22/Nov/1994.
@@ -688,7 +688,7 @@
 		ftmp = *chainptr;
 		*chainptr = ftmp->fw_next;
 		kfree(ftmp);
-		MOD_DEC_USE_COUNT();
+		MOD_DEC_USE_COUNT;
 	}
 	restore_flags(flags);
 }
@@ -732,7 +732,7 @@
 	ftmp->fw_next = *chainptr;
        	*chainptr=ftmp;
 	restore_flags(flags);
-	MOD_INC_USE_COUNT();
+	MOD_INC_USE_COUNT;
 	return(0);
 }
 
@@ -783,7 +783,7 @@
 	else
         	*chainptr=ftmp;
 	restore_flags(flags);
-	MOD_INC_USE_COUNT();
+	MOD_INC_USE_COUNT;
 	return(0);
 }
 
@@ -858,7 +858,7 @@
 	}
 	restore_flags(flags);
 	if (was_found) {
-		MOD_DEC_USE_COUNT();
+		MOD_DEC_USE_COUNT;
 		return 0;
 	} else
 		return(EINVAL);
net/ipv4/netfilter/ipt_ULOG.c renamed from vanilla/2.4/linux/net/ipv4/netfilter/ipt_ULOG.c +349 -0

349 lines not on this page · raw message

net/ipv4/netfilter/ipt_ah.c renamed from vanilla/2.4/linux/net/ipv4/netfilter/ipt_ah.c +105 -0

105 lines not on this page · raw message

net/ipv4/netfilter/ipt_esp.c renamed from vanilla/2.4/linux/net/ipv4/netfilter/ipt_esp.c +105 -0

105 lines not on this page · raw message

net/ipv4/netfilter/iptable_mangle.c renamed from vanilla/2.4/linux/net/ipv4/netfilter/iptable_mangle.c +1 -29
diff -u --recursive --new-file --exclude=CVS --exclude=.cvsignore ../vanilla/2.4/linux/net/ipv4/netfilter/iptable_mangle.c linux/net/ipv4/netfilter/iptable_mangle.c
@@ -129,34 +129,6 @@
 	return ipt_do_table(pskb, hook, in, out, &packet_mangler, NULL);
 }
 
-/* FIXME: change in oif may mean change in hh_len.  Check and realloc
-   --RR */
-static int
-route_me_harder(struct sk_buff *skb)
-{
-	struct iphdr *iph = skb->nh.iph;
-	struct rtable *rt;
-	struct rt_key key = { dst:iph->daddr,
-			      src:iph->saddr,
-			      oif:skb->sk ? skb->sk->bound_dev_if : 0,
-			      tos:RT_TOS(iph->tos)|RTO_CONN,
-#ifdef CONFIG_IP_ROUTE_FWMARK
-			      fwmark:skb->nfmark
-#endif
-			    };
-
-	if (ip_route_output_key(&rt, &key) != 0) {
-		printk("route_me_harder: No more route.\n");
-		return -EINVAL;
-	}
-
-	/* Drop old route. */
-	dst_release(skb->dst);
-
-	skb->dst = &rt->u.dst;
-	return 0;
-}
-
 static unsigned int
 ipt_local_hook(unsigned int hook,
 		   struct sk_buff **pskb,
@@ -190,7 +162,7 @@
 		|| (*pskb)->nh.iph->daddr != daddr
 		|| (*pskb)->nfmark != nfmark
 		|| (*pskb)->nh.iph->tos != tos))
-		return route_me_harder(*pskb) == 0 ? ret : NF_DROP;
+		return route_me_harder(pskb) == 0 ? ret : NF_DROP;
 
 	return ret;
 }
net/ipv6/netfilter/ip6_queue.c renamed from vanilla/2.4/linux/net/ipv6/netfilter/ip6_queue.c +721 -0

721 lines not on this page · raw message