diff --git a/debian/arch/config b/debian/arch/config index 9b67a168e..142c6cc72 100644 --- a/debian/arch/config +++ b/debian/arch/config @@ -145,8 +145,10 @@ CONFIG_RAMFS=y CONFIG_CRAMFS=y CONFIG_NFS_FS=m CONFIG_NFS_V3=y +CONFIG_NFS_V3_ACL=y CONFIG_NFSD=m CONFIG_NFSD_V3=y +CONFIG_NFSD_V3_ACL=y CONFIG_NFSD_TCP=y CONFIG_LOCKD=m CONFIG_LOCKD_V4=y diff --git a/debian/arch/s390/config b/debian/arch/s390/config index 685f2eea1..74e25ff18 100644 --- a/debian/arch/s390/config +++ b/debian/arch/s390/config @@ -92,6 +92,7 @@ CONFIG_S390_TAPE=m CONFIG_S390_TAPE_BLOCK=y CONFIG_S390_TAPE_34XX=m CONFIG_VMLOGRDR=m +CONFIG_VMCP=m CONFIG_MONREADER=m CONFIG_Z90CRYPT=m CONFIG_PACKET=y @@ -107,6 +108,7 @@ CONFIG_SYN_COOKIES=y CONFIG_INET_AH=m CONFIG_INET_ESP=m CONFIG_IP_TCPDIAG=y +# CONFIG_TCP_CONG_ADVANCED is not set CONFIG_IP_TCPDIAG_IPV6=y CONFIG_IPV6=y # CONFIG_IPV6_PRIVACY is not set @@ -208,6 +210,7 @@ CONFIG_CCWGROUP=m # CONFIG_NETCONSOLE is not set CONFIG_EXT2_FS=y # CONFIG_EXT2_FS_XATTR is not set +# CONFIG_EXT2_FS_XIP is not set CONFIG_EXT3_FS=y # CONFIG_EXT3_FS_SECURITY is not set CONFIG_JBD=y @@ -218,6 +221,7 @@ CONFIG_FS_MBCACHE=y # CONFIG_XFS_SECURITY is not set # CONFIG_MINIX_FS is not set # CONFIG_ROMFS_FS is not set +CONFIG_INOTIFY=y CONFIG_QUOTA=y # CONFIG_QFMT_V1 is not set CONFIG_QFMT_V2=y @@ -331,3 +335,4 @@ CONFIG_CRYPTO_TEA=m # CONFIG_CRYPTO_TEST is not set # CONFIG_CRC_CCITT is not set CONFIG_CRC32=m +CONFIG_KEXEC=y diff --git a/debian/patches-debian/drivers-s390-net-klist.patch b/debian/patches-debian/drivers-s390-net-klist.patch new file mode 100644 index 000000000..706b954a7 --- /dev/null +++ b/debian/patches-debian/drivers-s390-net-klist.patch @@ -0,0 +1,268 @@ +From: Cornelia Huck +Date: Mon, 8 Aug 2005 16:22:36 +0000 (-0700) +Subject: [PATCH] s390: use klist in qeth driver +X-Git-Url: http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=66aea23ff84ca81bfaeaf7d63e248b873f5c2616 + + [PATCH] s390: use klist in qeth driver + + From: Martin Schwidesky + + Convert qeth to the new klist interface and make it compiling again. + + Signed-off-by: Frank Pavlic + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds +--- + +--- a/drivers/s390/net/qeth_main.c ++++ b/drivers/s390/net/qeth_main.c +@@ -8120,20 +8120,22 @@ static struct notifier_block qeth_ip6_no + #endif + + static int +-qeth_reboot_event(struct notifier_block *this, unsigned long event, void *ptr) ++__qeth_reboot_event_card(struct device *dev, void *data) + { +- +- struct device *entry; + struct qeth_card *card; + +- down_read(&qeth_ccwgroup_driver.driver.bus->subsys.rwsem); +- list_for_each_entry(entry, &qeth_ccwgroup_driver.driver.devices, +- driver_list) { +- card = (struct qeth_card *) entry->driver_data; +- qeth_clear_ip_list(card, 0, 0); +- qeth_qdio_clear_card(card, 0); +- } +- up_read(&qeth_ccwgroup_driver.driver.bus->subsys.rwsem); ++ card = (struct qeth_card *) dev->driver_data; ++ qeth_clear_ip_list(card, 0, 0); ++ qeth_qdio_clear_card(card, 0); ++ return 0; ++} ++ ++static int ++qeth_reboot_event(struct notifier_block *this, unsigned long event, void *ptr) ++{ ++ ++ driver_for_each_device(&qeth_ccwgroup_driver.driver, NULL, NULL, ++ __qeth_reboot_event_card); + return NOTIFY_DONE; + } + +--- a/drivers/s390/net/qeth_proc.c ++++ b/drivers/s390/net/qeth_proc.c +@@ -27,23 +27,33 @@ const char *VERSION_QETH_PROC_C = "$Revi + #define QETH_PROCFILE_NAME "qeth" + static struct proc_dir_entry *qeth_procfile; + ++static int ++qeth_procfile_seq_match(struct device *dev, void *data) ++{ ++ return 1; ++} ++ + static void * + qeth_procfile_seq_start(struct seq_file *s, loff_t *offset) + { +- struct list_head *next_card = NULL; +- int i = 0; ++ struct device *dev; ++ loff_t nr; + + down_read(&qeth_ccwgroup_driver.driver.bus->subsys.rwsem); + +- if (*offset == 0) ++ nr = *offset; ++ if (nr == 0) + return SEQ_START_TOKEN; + +- /* get card at pos *offset */ +- list_for_each(next_card, &qeth_ccwgroup_driver.driver.devices) +- if (++i == *offset) +- return next_card; ++ dev = driver_find_device(&qeth_ccwgroup_driver.driver, NULL, ++ NULL, qeth_procfile_seq_match); + +- return NULL; ++ /* 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 +@@ -55,23 +65,21 @@ qeth_procfile_seq_stop(struct seq_file * + static void * + qeth_procfile_seq_next(struct seq_file *s, void *it, loff_t *offset) + { +- struct list_head *next_card = NULL; +- struct list_head *current_card; ++ struct device *prev, *next; + + if (it == SEQ_START_TOKEN) { +- next_card = qeth_ccwgroup_driver.driver.devices.next; +- if (next_card->next == next_card) /* list empty */ +- return NULL; +- (*offset)++; +- } else { +- current_card = (struct list_head *)it; +- if (current_card->next == &qeth_ccwgroup_driver.driver.devices) +- return NULL; /* end of list reached */ +- next_card = current_card->next; +- (*offset)++; ++ next = driver_find_device(&qeth_ccwgroup_driver.driver, ++ NULL, NULL, qeth_procfile_seq_match); ++ if (next) ++ (*offset)++; ++ return (void *) next; + } +- +- return next_card; ++ 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 inline const char * +@@ -126,7 +134,7 @@ qeth_procfile_seq_show(struct seq_file * + "-------------- ---- ------ ---------- ---- " + "---- ----- -----\n"); + } else { +- device = list_entry(it, struct device, driver_list); ++ device = (struct device *) it; + card = device->driver_data; + seq_printf(s, "%s/%s/%s x%02X %-10s %-14s %-4i ", + CARD_RDEV_ID(card), +@@ -180,17 +188,20 @@ static struct proc_dir_entry *qeth_perf_ + static void * + qeth_perf_procfile_seq_start(struct seq_file *s, loff_t *offset) + { +- struct list_head *next_card = NULL; +- int i = 0; ++ struct device *dev = NULL; ++ int nr; + + down_read(&qeth_ccwgroup_driver.driver.bus->subsys.rwsem); + /* get card at pos *offset */ +- list_for_each(next_card, &qeth_ccwgroup_driver.driver.devices){ +- if (i == *offset) +- return next_card; +- i++; +- } +- return NULL; ++ 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 +@@ -202,12 +213,14 @@ qeth_perf_procfile_seq_stop(struct seq_f + static void * + qeth_perf_procfile_seq_next(struct seq_file *s, void *it, loff_t *offset) + { +- struct list_head *current_card = (struct list_head *)it; ++ struct device *prev, *next; + +- if (current_card->next == &qeth_ccwgroup_driver.driver.devices) +- return NULL; /* end of list reached */ +- (*offset)++; +- return current_card->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 +@@ -216,7 +229,7 @@ qeth_perf_procfile_seq_show(struct seq_f + struct device *device; + struct qeth_card *card; + +- device = list_entry(it, struct device, driver_list); ++ device = (struct device *) it; + card = device->driver_data; + seq_printf(s, "For card with devnos %s/%s/%s (%s):\n", + CARD_RDEV_ID(card), +@@ -318,8 +331,8 @@ static struct proc_dir_entry *qeth_ipato + static void * + qeth_ipato_procfile_seq_start(struct seq_file *s, loff_t *offset) + { +- struct list_head *next_card = NULL; +- int i = 0; ++ struct device *dev; ++ loff_t nr; + + down_read(&qeth_ccwgroup_driver.driver.bus->subsys.rwsem); + /* TODO: finish this */ +@@ -328,13 +341,16 @@ qeth_ipato_procfile_seq_start(struct seq + * 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 */ +- list_for_each(next_card, &qeth_ccwgroup_driver.driver.devices){ +- if (i == *offset) +- return next_card; +- i++; +- } +- return NULL; ++ 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 +@@ -346,18 +362,14 @@ qeth_ipato_procfile_seq_stop(struct seq_ + static void * + qeth_ipato_procfile_seq_next(struct seq_file *s, void *it, loff_t *offset) + { +- struct list_head *current_card = (struct list_head *)it; ++ struct device *prev, *next; + +- /* TODO: finish this */ +- /* +- * maybe SEQ_SATRT_TOKEN can be returned for offset 0 +- * output driver settings then; +- * else output setting for respective card +- */ +- if (current_card->next == &qeth_ccwgroup_driver.driver.devices) +- return NULL; /* end of list reached */ +- (*offset)++; +- return current_card->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 +@@ -372,7 +384,7 @@ qeth_ipato_procfile_seq_show(struct seq_ + * output driver settings then; + * else output setting for respective card + */ +- device = list_entry(it, struct device, driver_list); ++ device = (struct device *) it; + card = device->driver_data; + + return 0; diff --git a/debian/patches-debian/series/2.6.12+2.6.13-rc6-1 b/debian/patches-debian/series/2.6.12+2.6.13-rc6-1 index a7ac1110b..7bd2f9443 100644 --- a/debian/patches-debian/series/2.6.12+2.6.13-rc6-1 +++ b/debian/patches-debian/series/2.6.12+2.6.13-rc6-1 @@ -1,6 +1,7 @@ + amd64-int3-fix.patch + drivers-ide-dma-blacklist-toshiba.patch + drivers-scsi-megaraid_splitup.patch ++ drivers-s390-net-klist.patch + fbdev-radeon-noaccel.patch + fs-asfs-2.patch + ia64-irq-affinity-upfix.patch