r2432 - in trunk/kernel/s390/kernel-image-2.6.10-s390: debian diffs
Bastian Blank
waldi@costa.debian.org
Tue, 01 Feb 2005 08:23:51 +0100
Author: waldi
Date: 2005-02-01 08:23:50 +0100 (Tue, 01 Feb 2005)
New Revision: 2432
Added:
trunk/kernel/s390/kernel-image-2.6.10-s390/diffs/eui64.diff
trunk/kernel/s390/kernel-image-2.6.10-s390/diffs/kerntypes.diff
Removed:
trunk/kernel/s390/kernel-image-2.6.10-s390/diffs/ibm.diff
Modified:
trunk/kernel/s390/kernel-image-2.6.10-s390/debian/changelog
Log:
* debian/changelog: Update.
* diffs/eui64.diff: Add upstream patch.
* diffs/ibm.diff: Remove.
* diffs/kerntypes.diff
- Copy relevant parts from diffs/ibm.diff.
- Add missing parts from IBM patch.
Modified: trunk/kernel/s390/kernel-image-2.6.10-s390/debian/changelog
===================================================================
--- trunk/kernel/s390/kernel-image-2.6.10-s390/debian/changelog 2005-02-01 07:03:14 UTC (rev 2431)
+++ trunk/kernel/s390/kernel-image-2.6.10-s390/debian/changelog 2005-02-01 07:23:50 UTC (rev 2432)
@@ -1,3 +1,11 @@
+kernel-image-2.6.10-s390 (2.6.10-2) UNRELEASED; urgency=low
+
+ * diffs:
+ - Split ibm into eui64 and kerntypes.
+ - Replace eui64 with upstream patch.
+
+ -- Bastian Blank <waldi@debian.org> Mon, 31 Jan 2005 17:01:04 +0100
+
kernel-image-2.6.10-s390 (2.6.10-1) unstable; urgency=low
* New upstream release.
Added: trunk/kernel/s390/kernel-image-2.6.10-s390/diffs/eui64.diff
===================================================================
--- trunk/kernel/s390/kernel-image-2.6.10-s390/diffs/eui64.diff 2005-02-01 07:03:14 UTC (rev 2431)
+++ trunk/kernel/s390/kernel-image-2.6.10-s390/diffs/eui64.diff 2005-02-01 07:23:50 UTC (rev 2432)
@@ -0,0 +1,90 @@
+--- drivers/s390/net/qeth_main.c 2005-01-04 00:49:39 +01:00
++++ drivers/s390/net/qeth_main.c 2005-01-16 12:33:52 +01:00
+@@ -5033,27 +5033,6 @@
+ return 0;
+ }
+
+-#ifdef CONFIG_QETH_IPV6
+-int
+-qeth_ipv6_generate_eui64(u8 * eui, struct net_device *dev)
+-{
+- switch (dev->type) {
+- case ARPHRD_ETHER:
+- case ARPHRD_FDDI:
+- case ARPHRD_IEEE802_TR:
+- if (dev->addr_len != ETH_ALEN)
+- return -1;
+- memcpy(eui, dev->dev_addr, 3);
+- memcpy(eui + 5, dev->dev_addr + 3, 3);
+- eui[3] = (dev->dev_id >> 8) & 0xff;
+- eui[4] = dev->dev_id & 0xff;
+- return 0;
+- }
+- return -1;
+-
+-}
+-#endif
+-
+ static void
+ qeth_get_mac_for_ipm(__u32 ipm, char *mac, struct net_device *dev)
+ {
+@@ -5587,11 +5566,8 @@
+ }
+ #ifdef CONFIG_QETH_IPV6
+ /*IPv6 address autoconfiguration stuff*/
+- card->dev->dev_id = card->info.unique_id & 0xffff;
+ if (!(card->info.unique_id & UNIQUE_ID_NOT_BY_CARD))
+- card->dev->generate_eui64 = qeth_ipv6_generate_eui64;
+-
+-
++ card->dev->dev_id = card->info.unique_id & 0xffff;
+ #endif
+ dev->hard_header_parse = NULL;
+ dev->set_mac_address = qeth_layer2_set_mac_address;
+--- include/linux/netdevice.h 2005-01-10 21:23:55 +01:00
++++ include/linux/netdevice.h 2005-01-16 12:32:07 +01:00
+@@ -345,6 +345,7 @@
+ unsigned char broadcast[MAX_ADDR_LEN]; /* hw bcast add */
+ unsigned char dev_addr[MAX_ADDR_LEN]; /* hw address */
+ unsigned char addr_len; /* hardware address length */
++ unsigned short dev_id; /* for shared network cards */
+
+ struct dev_mc_list *mc_list; /* Multicast mac addresses */
+ int mc_count; /* Number of installed mcasts */
+--- net/ipv6/addrconf.c 2005-01-14 22:30:07 +01:00
++++ net/ipv6/addrconf.c 2005-01-16 12:29:51 +01:00
+@@ -1079,10 +1079,29 @@
+ if (dev->addr_len != ETH_ALEN)
+ return -1;
+ memcpy(eui, dev->dev_addr, 3);
+- memcpy(eui + 5, dev->dev_addr+3, 3);
+- eui[3] = 0xFF;
+- eui[4] = 0xFE;
+- eui[0] ^= 2;
++ memcpy(eui + 5, dev->dev_addr + 3, 3);
++
++ /*
++ * The zSeries OSA network cards can be shared among various
++ * OS instances, but the OSA cards have only one MAC address.
++ * This leads to duplicate address conflicts in conjunction
++ * with IPv6 if more than one instance uses the same card.
++ *
++ * The driver for these cards can deliver a unique 16-bit
++ * identifier for each instance sharing the same card. It is
++ * placed instead of 0xFFFE in the interface identifier. The
++ * "u" bit of the interface identifier is not inverted in this
++ * case. Hence the resulting interface identifier has local
++ * scope according to RFC2373.
++ */
++ if (dev->dev_id) {
++ eui[3] = (dev->dev_id >> 8) & 0xFF;
++ eui[4] = dev->dev_id & 0xFF;
++ } else {
++ eui[3] = 0xFF;
++ eui[4] = 0xFE;
++ eui[0] ^= 2;
++ }
+ return 0;
+ case ARPHRD_ARCNET:
+ /* XXX: inherit EUI-64 from other interface -- yoshfuji */
+
Deleted: trunk/kernel/s390/kernel-image-2.6.10-s390/diffs/ibm.diff
===================================================================
--- trunk/kernel/s390/kernel-image-2.6.10-s390/diffs/ibm.diff 2005-02-01 07:03:14 UTC (rev 2431)
+++ trunk/kernel/s390/kernel-image-2.6.10-s390/diffs/ibm.diff 2005-02-01 07:23:50 UTC (rev 2432)
@@ -1,189 +0,0 @@
---- arch/s390/boot/kerntypes.c
-+++ arch/s390/boot/kerntypes.c
-@@ -0,0 +1,58 @@
-+/*
-+ * kerntypes.c
-+ *
-+ * Dummy module that includes headers for all kernel types of interest.
-+ * The kernel type information is used by the lcrash utility when
-+ * analyzing system crash dumps or the live system. Using the type
-+ * information for the running system, rather than kernel header files,
-+ * makes for a more flexible and robust analysis tool.
-+ *
-+ * This source code is released under the GNU GPL.
-+ */
-+
-+/* generate version for this file */
-+typedef char *COMPILE_VERSION;
-+
-+/* General linux types */
-+
-+#include <linux/autoconf.h>
-+#include <linux/compile.h>
-+#include <linux/config.h>
-+#include <linux/utsname.h>
-+#include <linux/module.h>
-+#include <linux/sched.h>
-+#include <linux/mm.h>
-+
-+#include <asm/lowcore.h>
-+#include <asm/debug.h>
-+#include <asm/ccwdev.h>
-+#include <asm/ccwgroup.h>
-+#include <asm/qdio.h>
-+
-+/* channel subsystem driver */
-+#include "drivers/s390/cio/cio.h"
-+#include "drivers/s390/cio/chsc.h"
-+#include "drivers/s390/cio/css.h"
-+#include "drivers/s390/cio/device.h"
-+#include "drivers/s390/cio/qdio.h"
-+
-+/* dasd device driver */
-+#include "drivers/s390/block/dasd_int.h"
-+#include "drivers/s390/block/dasd_diag.h"
-+#include "drivers/s390/block/dasd_eckd.h"
-+#include "drivers/s390/block/dasd_fba.h"
-+
-+/* networking drivers */
-+#include "drivers/s390/net/fsm.h"
-+#include "drivers/s390/net/iucv.h"
-+#include "drivers/s390/net/lcs.h"
-+
-+/* zfcp device driver */
-+#include "drivers/s390/scsi/zfcp_def.h"
-+#include "drivers/s390/scsi/zfcp_fsf.h"
-+
-+/* include sched.c for types:
-+ * - struct prio_array
-+ * - struct runqueue
-+ */
-+#include "kernel/sched.c"
---- include/linux/netdevice.h
-+++ include/linux/netdevice.h
-@@ -475,6 +475,9 @@
- #ifdef CONFIG_NET_POLL_CONTROLLER
- void (*poll_controller)(struct net_device *dev);
- #endif
-+#ifdef CONFIG_X_NET_DEVICE_SPECIFIC_EUI64
-+ int (*generate_eui64)(u8 *eui, struct net_device *dev);
-+#endif
-
- /* bridge stuff */
- struct net_bridge_port *br_port;
-@@ -486,6 +489,12 @@
-
- /* class/net/name entry */
- struct class_device class_dev;
-+
-+#ifdef CONFIG_X_NET_DEVICE_SPECIFIC_EUI64
-+ /* use dev_id in conjunction with shared network cards*/
-+ unsigned short dev_id;
-+#endif
-+
- /* how much padding had been added by alloc_netdev() */
- int padded;
- };
---- include/net/addrconf.h
-+++ include/net/addrconf.h
-@@ -69,6 +69,9 @@
- struct in6_addr *daddr,
- struct in6_addr *saddr);
- extern int ipv6_get_lladdr(struct net_device *dev, struct in6_addr *);
-+#ifdef CONFIG_X_NET_DEVICE_SPECIFIC_EUI64
-+extern int ipv6_generate_eui64(u8 *eui, struct net_device *dev);
-+#endif
- extern int ipv6_rcv_saddr_equal(const struct sock *sk,
- const struct sock *sk2);
- extern void addrconf_join_solict(struct net_device *dev,
---- net/8021q/vlan.c
-+++ net/8021q/vlan.c
-@@ -454,6 +454,12 @@
-
- new_dev->state = real_dev->state & VLAN_LINK_STATE_MASK;
-
-+#ifdef CONFIG_X_NET_DEVICE_SPECIFIC_EUI64
-+ /* ipv6 shared card related stuff */
-+ new_dev->dev_id = real_dev->dev_id;
-+ new_dev->generate_eui64 = real_dev->generate_eui64;
-+#endif
-+
- /* need 4 bytes for extra VLAN header info,
- * hope the underlying device can handle it.
- */
---- net/ipv6/addrconf.c
-+++ net/ipv6/addrconf.c
-@@ -1074,7 +1074,10 @@
- __ipv6_dev_ac_dec(ifp->idev, &addr);
- }
-
--static int ipv6_generate_eui64(u8 *eui, struct net_device *dev)
-+#ifndef CONFIG_X_NET_DEVICE_SPECIFIC_EUI64
-+static
-+#endif
-+int ipv6_generate_eui64(u8 *eui, struct net_device *dev)
- {
- switch (dev->type) {
- case ARPHRD_ETHER:
-@@ -1132,7 +1135,11 @@
-
- dev = idev->dev;
-
-+#ifdef CONFIG_X_NET_DEVICE_SPECIFIC_EUI64
-+ if (dev->generate_eui64(idev->work_eui64, dev)) {
-+#else
- if (ipv6_generate_eui64(idev->work_eui64, dev)) {
-+#endif
- printk(KERN_INFO
- "__ipv6_regen_rndid(idev=%p): cannot get EUI64 identifier; use random bytes.\n",
- idev);
-@@ -1396,7 +1403,11 @@
-
- if (pinfo->prefix_len == 64) {
- memcpy(&addr, &pinfo->prefix, 8);
-+#ifdef CONFIG_X_NET_DEVICE_SPECIFIC_EUI64
-+ if (dev->generate_eui64(addr.s6_addr + 8, dev) &&
-+#else
- if (ipv6_generate_eui64(addr.s6_addr + 8, dev) &&
-+#endif
- ipv6_inherit_eui64(addr.s6_addr + 8, in6_dev)) {
- in6_dev_put(in6_dev);
- return;
-@@ -1799,6 +1810,11 @@
- return;
- }
-
-+#ifdef CONFIG_X_NET_DEVICE_SPECIFIC_EUI64
-+ if (!dev->generate_eui64)
-+ dev->generate_eui64 = ipv6_generate_eui64;
-+#endif
-+
- idev = addrconf_add_dev(dev);
- if (idev == NULL)
- return;
-@@ -1806,7 +1822,11 @@
- memset(&addr, 0, sizeof(struct in6_addr));
- addr.s6_addr32[0] = htonl(0xFE800000);
-
-+#ifdef CONFIG_X_NET_DEVICE_SPECIFIC_EUI64
-+ if (dev->generate_eui64(addr.s6_addr + 8, dev) == 0)
-+#else
- if (ipv6_generate_eui64(addr.s6_addr + 8, dev) == 0)
-+#endif
- addrconf_add_linklocal(idev, &addr);
- }
-
---- net/Kconfig
-+++ net/Kconfig
-@@ -647,6 +647,11 @@
- config NET_POLL_CONTROLLER
- def_bool NETPOLL
-
-+config X_NET_DEVICE_SPECIFIC_EUI64
-+ bool
-+ default y
-+ depends on ARCH_S390
-+
- source "net/ax25/Kconfig"
-
- source "net/irda/Kconfig"
Copied: trunk/kernel/s390/kernel-image-2.6.10-s390/diffs/kerntypes.diff (from rev 2396, trunk/kernel/s390/kernel-image-2.6.10-s390/diffs/ibm.diff)
===================================================================
--- trunk/kernel/s390/kernel-image-2.6.10-s390/diffs/ibm.diff 2005-01-24 07:26:45 UTC (rev 2396)
+++ trunk/kernel/s390/kernel-image-2.6.10-s390/diffs/kerntypes.diff 2005-02-01 07:23:50 UTC (rev 2432)
@@ -0,0 +1,94 @@
+--- arch/s390/Makefile Sun Apr 4 05:36:26 2004
++++ arch/s390/Makefile Tue Apr 13 10:35:18 2004
+@@ -52,12 +52,12 @@
+
+ boot := arch/$(ARCH)/boot
+
+-all: image
++all: image kerntypes.o
+
+ install: vmlinux
+ $(Q)$(MAKE) $(build)=$(boot) $@
+
+-image: vmlinux
++image kerntypes.o: vmlinux
+ $(Q)$(MAKE) $(build)=$(boot) $(boot)/$@
+
+ archclean:
+--- arch/s390/boot/Makefile Sun Apr 4 05:38:27 2004
++++ arch/s390/boot/Makefile Tue Apr 13 10:35:18 2004
+@@ -8,11 +8,11 @@
+
+ EXTRA_CFLAGS := -DCOMPILE_VERSION=$(COMPILE_VERSION) -gstabs -I.
+
+-targets := image
++targets := image kerntypes.o
+
+ $(obj)/image: vmlinux FORCE
+ $(call if_changed,objcopy)
+
+ install: $(CONFIGURE) $(obj)/image
+ sh -x $(srctree)/$(obj)/install.sh $(KERNELRELEASE) $(obj)/image \
+- System.map Kerntypes "$(INSTALL_PATH)"
++ System.map "$(INSTALL_PATH)"
+--- arch/s390/boot/kerntypes.c Thu Jan 1 01:00:00 1970
++++ arch/s390/boot/kerntypes.c Tue Apr 13 10:35:18 2004
+@@ -0,0 +1,58 @@
++/*
++ * kerntypes.c
++ *
++ * Dummy module that includes headers for all kernel types of interest.
++ * The kernel type information is used by the lcrash utility when
++ * analyzing system crash dumps or the live system. Using the type
++ * information for the running system, rather than kernel header files,
++ * makes for a more flexible and robust analysis tool.
++ *
++ * This source code is released under the GNU GPL.
++ */
++
++/* generate version for this file */
++typedef char *COMPILE_VERSION;
++
++/* General linux types */
++
++#include <linux/autoconf.h>
++#include <linux/compile.h>
++#include <linux/config.h>
++#include <linux/utsname.h>
++#include <linux/module.h>
++#include <linux/sched.h>
++#include <linux/mm.h>
++
++#include <asm/lowcore.h>
++#include <asm/debug.h>
++#include <asm/ccwdev.h>
++#include <asm/ccwgroup.h>
++#include <asm/qdio.h>
++
++/* channel subsystem driver */
++#include "drivers/s390/cio/cio.h"
++#include "drivers/s390/cio/chsc.h"
++#include "drivers/s390/cio/css.h"
++#include "drivers/s390/cio/device.h"
++#include "drivers/s390/cio/qdio.h"
++
++/* dasd device driver */
++#include "drivers/s390/block/dasd_int.h"
++#include "drivers/s390/block/dasd_diag.h"
++#include "drivers/s390/block/dasd_eckd.h"
++#include "drivers/s390/block/dasd_fba.h"
++
++/* networking drivers */
++#include "drivers/s390/net/fsm.h"
++#include "drivers/s390/net/iucv.h"
++#include "drivers/s390/net/lcs.h"
++
++/* zfcp device driver */
++#include "drivers/s390/scsi/zfcp_def.h"
++#include "drivers/s390/scsi/zfcp_fsf.h"
++
++/* include sched.c for types:
++ * - struct prio_array
++ * - struct runqueue
++ */
++#include "kernel/sched.c"