Hello community,
here is the log from the commit of package kernel-source
checked in at Thu Mar 22 12:25:02 CET 2007.
--------
--- kernel-source/kernel-bigsmp.changes 2007-03-21 08:34:20.000000000 +0100
+++ kernel-source/kernel-bigsmp.changes 2007-03-22 12:11:23.000000000 +0100
@@ -1,0 +2,11 @@
+Wed Mar 21 20:45:57 CET 2007 - gregkh@suse.de
+
+- patch refresh due to 2.6.21-rc4 update to make everything apply cleanly.
+
+-------------------------------------------------------------------
+Wed Mar 21 19:54:22 CET 2007 - gregkh@suse.de
+
+- patches.drivers/nozomi.patch: updated driver to fix oopses on
+ removal (208818).
+
+-------------------------------------------------------------------
kernel-debug.changes: same change
kernel-default.changes: same change
kernel-dummy.changes: same change
kernel-iseries64.changes: same change
kernel-kdump.changes: same change
kernel-ppc64.changes: same change
kernel-s390.changes: same change
kernel-source.changes: same change
kernel-syms.changes: same change
kernel-um.changes: same change
kernel-vanilla.changes: same change
kernel-xen.changes: same change
kernel-xenpae.changes: same change
New:
----
needed_space_in_mb
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ kernel-bigsmp.spec ++++++
--- /var/tmp/diff_new_pack.EC1790/_old 2007-03-22 12:15:01.000000000 +0100
+++ /var/tmp/diff_new_pack.EC1790/_new 2007-03-22 12:15:01.000000000 +0100
@@ -39,7 +39,7 @@
%endif
Summary: Kernel with PAE Support
Version: 2.6.21_rc4_git5
-Release: 1
+Release: 2
License: GNU General Public License (GPL)
Group: System/Kernel
Autoreqprov: on
@@ -147,7 +147,7 @@
-Source Timestamp: 2007/03/20 21:37:51 UTC
+Source Timestamp: 2007/03/21 19:44:10 UTC
%prep
if ! [ -e %_sourcedir/linux-2.6.20.tar.bz2 ]; then
@@ -490,6 +490,11 @@
%files -f kernel.files
%changelog
+* Wed Mar 21 2007 - gregkh@suse.de
+- patch refresh due to 2.6.21-rc4 update to make everything apply cleanly.
+* Wed Mar 21 2007 - gregkh@suse.de
+- patches.drivers/nozomi.patch: updated driver to fix oopses on
+ removal (208818).
* Tue Mar 20 2007 - olh@suse.de
- update to 2.6.21-rc4-git5, usb, libata, s390 fixes
* Tue Mar 20 2007 - teheo@suse.de
kernel-debug.spec: same change
kernel-default.spec: same change
++++++ kernel-dummy.spec ++++++
--- /var/tmp/diff_new_pack.EC1790/_old 2007-03-22 12:15:01.000000000 +0100
+++ /var/tmp/diff_new_pack.EC1790/_new 2007-03-22 12:15:01.000000000 +0100
@@ -15,7 +15,7 @@
URL: http://www.kernel.org/
Summary: Internal dummy package for synchronizing release numbers
Version: 2.6.21_rc4_git5
-Release: 1
+Release: 2
License: GNU General Public License (GPL)
Group: System/Kernel
Autoreqprov: off
@@ -28,7 +28,7 @@
--------
Andreas Gruenbacher
-Source Timestamp: 2007/03/20 21:37:51 UTC
+Source Timestamp: 2007/03/21 19:44:10 UTC
%install
@@ -41,6 +41,11 @@
/etc/dummy
%changelog
+* Wed Mar 21 2007 - gregkh@suse.de
+- patch refresh due to 2.6.21-rc4 update to make everything apply cleanly.
+* Wed Mar 21 2007 - gregkh@suse.de
+- patches.drivers/nozomi.patch: updated driver to fix oopses on
+ removal (208818).
* Tue Mar 20 2007 - olh@suse.de
- update to 2.6.21-rc4-git5, usb, libata, s390 fixes
* Tue Mar 20 2007 - teheo@suse.de
++++++ kernel-iseries64.spec ++++++
--- /var/tmp/diff_new_pack.EC1790/_old 2007-03-22 12:15:01.000000000 +0100
+++ /var/tmp/diff_new_pack.EC1790/_new 2007-03-22 12:15:01.000000000 +0100
@@ -39,7 +39,7 @@
%endif
Summary: 64-Bit Kernel for iSeries
Version: 2.6.21_rc4_git5
-Release: 1
+Release: 2
License: GNU General Public License (GPL)
Group: System/Kernel
Autoreqprov: on
@@ -148,7 +148,7 @@
-Source Timestamp: 2007/03/20 21:37:51 UTC
+Source Timestamp: 2007/03/21 19:44:10 UTC
%prep
if ! [ -e %_sourcedir/linux-2.6.20.tar.bz2 ]; then
@@ -491,6 +491,11 @@
%files -f kernel.files
%changelog
+* Wed Mar 21 2007 - gregkh@suse.de
+- patch refresh due to 2.6.21-rc4 update to make everything apply cleanly.
+* Wed Mar 21 2007 - gregkh@suse.de
+- patches.drivers/nozomi.patch: updated driver to fix oopses on
+ removal (208818).
* Tue Mar 20 2007 - olh@suse.de
- update to 2.6.21-rc4-git5, usb, libata, s390 fixes
* Tue Mar 20 2007 - teheo@suse.de
kernel-kdump.spec: same change
++++++ kernel-ppc64.spec ++++++
--- /var/tmp/diff_new_pack.EC1790/_old 2007-03-22 12:15:02.000000000 +0100
+++ /var/tmp/diff_new_pack.EC1790/_new 2007-03-22 12:15:02.000000000 +0100
@@ -38,7 +38,7 @@
%endif
Summary: Kernel for ppc64 Systems
Version: 2.6.21_rc4_git5
-Release: 1
+Release: 2
License: GNU General Public License (GPL), GNU Library General Public License v. 2.0 and 2.1 (LGPL)
Group: System/Kernel
Autoreqprov: on
@@ -162,7 +162,7 @@
Tom Gall
see /usr/src/linux-pmac-benh/CREDITS for more details.
-Source Timestamp: 2007/03/20 21:37:51 UTC
+Source Timestamp: 2007/03/21 19:44:10 UTC
%prep
if ! [ -e %_sourcedir/linux-2.6.20.tar.bz2 ]; then
@@ -505,6 +505,11 @@
%files -f kernel.files
%changelog
+* Wed Mar 21 2007 - gregkh@suse.de
+- patch refresh due to 2.6.21-rc4 update to make everything apply cleanly.
+* Wed Mar 21 2007 - gregkh@suse.de
+- patches.drivers/nozomi.patch: updated driver to fix oopses on
+ removal (208818).
* Tue Mar 20 2007 - olh@suse.de
- update to 2.6.21-rc4-git5, usb, libata, s390 fixes
* Tue Mar 20 2007 - teheo@suse.de
++++++ kernel-s390.spec ++++++
--- /var/tmp/diff_new_pack.EC1790/_old 2007-03-22 12:15:02.000000000 +0100
+++ /var/tmp/diff_new_pack.EC1790/_new 2007-03-22 12:15:02.000000000 +0100
@@ -39,7 +39,7 @@
%endif
Summary: The Standard Kernel
Version: 2.6.21_rc4_git5
-Release: 1
+Release: 2
License: GNU General Public License (GPL)
Group: System/Kernel
Autoreqprov: on
@@ -145,7 +145,7 @@
-Source Timestamp: 2007/03/20 21:37:51 UTC
+Source Timestamp: 2007/03/21 19:44:10 UTC
%prep
if ! [ -e %_sourcedir/linux-2.6.20.tar.bz2 ]; then
@@ -488,6 +488,11 @@
%files -f kernel.files
%changelog
+* Wed Mar 21 2007 - gregkh@suse.de
+- patch refresh due to 2.6.21-rc4 update to make everything apply cleanly.
+* Wed Mar 21 2007 - gregkh@suse.de
+- patches.drivers/nozomi.patch: updated driver to fix oopses on
+ removal (208818).
* Tue Mar 20 2007 - olh@suse.de
- update to 2.6.21-rc4-git5, usb, libata, s390 fixes
* Tue Mar 20 2007 - teheo@suse.de
++++++ kernel-source.spec ++++++
--- /var/tmp/diff_new_pack.EC1790/_old 2007-03-22 12:15:02.000000000 +0100
+++ /var/tmp/diff_new_pack.EC1790/_new 2007-03-22 12:15:02.000000000 +0100
@@ -22,7 +22,7 @@
%endif
Summary: The Linux Kernel Sources
Version: 2.6.21_rc4_git5
-Release: 1
+Release: 2
License: GNU General Public License (GPL)
Group: Development/Sources
Autoreqprov: off
@@ -106,7 +106,7 @@
see /usr/src/linux/CREDITS for more details.
-Source Timestamp: 2007/03/20 21:37:51 UTC
+Source Timestamp: 2007/03/21 19:44:10 UTC
%prep
if ! [ -e %_sourcedir/linux-2.6.20.tar.bz2 ]; then
@@ -295,6 +295,11 @@
%files -f kernel-source.files
%changelog
+* Wed Mar 21 2007 - gregkh@suse.de
+- patch refresh due to 2.6.21-rc4 update to make everything apply cleanly.
+* Wed Mar 21 2007 - gregkh@suse.de
+- patches.drivers/nozomi.patch: updated driver to fix oopses on
+ removal (208818).
* Tue Mar 20 2007 - olh@suse.de
- update to 2.6.21-rc4-git5, usb, libata, s390 fixes
* Tue Mar 20 2007 - teheo@suse.de
++++++ kernel-syms.spec ++++++
--- /var/tmp/diff_new_pack.EC1790/_old 2007-03-22 12:15:02.000000000 +0100
+++ /var/tmp/diff_new_pack.EC1790/_new 2007-03-22 12:15:02.000000000 +0100
@@ -14,7 +14,7 @@
URL: http://www.kernel.org/
Summary: Kernel Symbol Versions (modversions)
Version: 2.6.21_rc4_git5
-Release: 1
+Release: 2
License: GNU General Public License (GPL)
Group: Development/Sources
Autoreqprov: off
@@ -90,7 +90,7 @@
see /usr/src/linux/CREDITS for more details.
-Source Timestamp: 2007/03/20 21:37:51 UTC
+Source Timestamp: 2007/03/21 19:44:10 UTC
%prep
echo "Architecture symbol(s):" %symbols
@@ -137,6 +137,11 @@
/lib/modules/*/modules.alias
%changelog
+* Wed Mar 21 2007 - gregkh@suse.de
+- patch refresh due to 2.6.21-rc4 update to make everything apply cleanly.
+* Wed Mar 21 2007 - gregkh@suse.de
+- patches.drivers/nozomi.patch: updated driver to fix oopses on
+ removal (208818).
* Tue Mar 20 2007 - olh@suse.de
- update to 2.6.21-rc4-git5, usb, libata, s390 fixes
* Tue Mar 20 2007 - teheo@suse.de
++++++ kernel-um.spec ++++++
--- /var/tmp/diff_new_pack.EC1790/_old 2007-03-22 12:15:02.000000000 +0100
+++ /var/tmp/diff_new_pack.EC1790/_new 2007-03-22 12:15:02.000000000 +0100
@@ -39,7 +39,7 @@
%endif
Summary: The User Mode Linux kernel.
Version: 2.6.21_rc4_git5
-Release: 1
+Release: 2
License: GNU General Public License (GPL)
Group: System/Kernel
Autoreqprov: on
@@ -153,7 +153,7 @@
-Source Timestamp: 2007/03/20 21:37:51 UTC
+Source Timestamp: 2007/03/21 19:44:10 UTC
%prep
if ! [ -e %_sourcedir/linux-2.6.20.tar.bz2 ]; then
@@ -496,6 +496,11 @@
%files -f kernel.files
%changelog
+* Wed Mar 21 2007 - gregkh@suse.de
+- patch refresh due to 2.6.21-rc4 update to make everything apply cleanly.
+* Wed Mar 21 2007 - gregkh@suse.de
+- patches.drivers/nozomi.patch: updated driver to fix oopses on
+ removal (208818).
* Tue Mar 20 2007 - olh@suse.de
- update to 2.6.21-rc4-git5, usb, libata, s390 fixes
* Tue Mar 20 2007 - teheo@suse.de
kernel-vanilla.spec: same change
kernel-xenpae.spec: same change
kernel-xen.spec: same change
++++++ build-source-timestamp ++++++
--- kernel-source/build-source-timestamp 2007-03-21 08:34:16.000000000 +0100
+++ kernel-source/build-source-timestamp 2007-03-22 12:11:19.000000000 +0100
@@ -1 +1 @@
-2007/03/20 21:37:51 UTC
+2007/03/21 19:44:10 UTC
++++++ patches.arch.tar.bz2 ++++++
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/patches.arch/acpi_asus_strict_model_check.patch new/patches.arch/acpi_asus_strict_model_check.patch
--- old/patches.arch/acpi_asus_strict_model_check.patch 2007-01-13 11:00:22.000000000 +0100
+++ new/patches.arch/acpi_asus_strict_model_check.patch 2007-03-22 12:10:28.000000000 +0100
@@ -8,8 +8,8 @@
Signed-off-by: Thomas Renninger
---- linux-2.6.19.orig/drivers/acpi/asus_acpi.c
-+++ linux-2.6.19/drivers/acpi/asus_acpi.c
+--- linux-2.6.20.orig/drivers/acpi/asus_acpi.c
++++ linux-2.6.20/drivers/acpi/asus_acpi.c
@@ -78,10 +78,14 @@ MODULE_LICENSE("GPL");
static uid_t asus_uid;
@@ -25,7 +25,7 @@
/* For each model, all features implemented,
* those marked with R are relative to HOTK, A for absolute */
-@@ -1189,11 +1193,22 @@ static int asus_hotk_get_info(void)
+@@ -1198,11 +1202,22 @@ static int asus_hotk_get_info(void)
printk(KERN_NOTICE
" Samsung P30 detected, supported\n");
} else {
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/patches.arch/acpi_ibm_notify.patch new/patches.arch/acpi_ibm_notify.patch
--- old/patches.arch/acpi_ibm_notify.patch 2007-01-13 11:00:22.000000000 +0100
+++ new/patches.arch/acpi_ibm_notify.patch 2007-03-22 12:10:28.000000000 +0100
@@ -16,9 +16,9 @@
Signed-off-by: Thomas Renninger
---- linux-2.6.19.orig/drivers/acpi/ibm_acpi.c
-+++ linux-2.6.19/drivers/acpi/ibm_acpi.c
-@@ -2478,12 +2478,12 @@ static int __init setup_notify(struct ib
+--- linux-2.6.20.orig/drivers/acpi/ibm_acpi.c
++++ linux-2.6.20/drivers/acpi/ibm_acpi.c
+@@ -2502,12 +2502,12 @@ static int __init setup_notify(struct ib
int ret;
if (!*ibm->handle)
@@ -33,7 +33,7 @@
}
acpi_driver_data(ibm->device) = ibm;
-@@ -2572,6 +2572,8 @@ static int __init ibm_init(struct ibm_st
+@@ -2596,6 +2596,8 @@ static int __init ibm_init(struct ibm_st
ret = setup_notify(ibm);
if (ret < 0)
return ret;
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/patches.arch/acpi_processor_exit_acpi_off new/patches.arch/acpi_processor_exit_acpi_off
--- old/patches.arch/acpi_processor_exit_acpi_off 2007-01-13 11:00:22.000000000 +0100
+++ new/patches.arch/acpi_processor_exit_acpi_off 2007-03-22 12:10:29.000000000 +0100
@@ -8,9 +8,9 @@
Signed-off-by: Thomas Renninger
---- linux-2.6.19.orig/drivers/acpi/processor_core.c
-+++ linux-2.6.19/drivers/acpi/processor_core.c
-@@ -887,6 +887,8 @@ void acpi_processor_uninstall_hotplug_no
+--- linux-2.6.20.orig/drivers/acpi/processor_core.c
++++ linux-2.6.20/drivers/acpi/processor_core.c
+@@ -993,6 +993,8 @@ void acpi_processor_uninstall_hotplug_no
* ACPI, but needs symbols from this driver
*/
@@ -19,7 +19,7 @@
static int __init acpi_processor_init(void)
{
int result = 0;
-@@ -906,6 +908,8 @@ static int __init acpi_processor_init(vo
+@@ -1018,6 +1020,8 @@ static int __init acpi_processor_init(vo
return result;
}
@@ -28,7 +28,7 @@
acpi_processor_install_hotplug_notify();
acpi_thermal_cpufreq_init();
-@@ -922,11 +926,13 @@ static void __exit acpi_processor_exit(v
+@@ -1034,11 +1038,13 @@ static void __exit acpi_processor_exit(v
acpi_thermal_cpufreq_exit();
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/patches.arch/disable-apic-error new/patches.arch/disable-apic-error
--- old/patches.arch/disable-apic-error 2007-03-20 09:43:23.000000000 +0100
+++ new/patches.arch/disable-apic-error 2007-03-22 12:10:29.000000000 +0100
@@ -15,9 +15,9 @@
arch/x86_64/kernel/apic.c | 2 ++
2 files changed, 4 insertions(+)
---- linux-2.6.19.orig/arch/i386/kernel/apic.c
-+++ linux-2.6.19/arch/i386/kernel/apic.c
-@@ -1347,8 +1347,10 @@ fastcall void smp_error_interrupt(struct
+--- linux-2.6.20.orig/arch/i386/kernel/apic.c
++++ linux-2.6.20/arch/i386/kernel/apic.c
+@@ -1243,8 +1243,10 @@ void smp_error_interrupt(struct pt_regs
6: Received illegal vector
7: Illegal register address
*/
@@ -28,9 +28,9 @@
irq_exit();
}
---- linux-2.6.19.orig/arch/x86_64/kernel/apic.c
-+++ linux-2.6.19/arch/x86_64/kernel/apic.c
-@@ -1137,8 +1137,10 @@ asmlinkage void smp_error_interrupt(void
+--- linux-2.6.20.orig/arch/x86_64/kernel/apic.c
++++ linux-2.6.20/arch/x86_64/kernel/apic.c
+@@ -1138,8 +1138,10 @@ asmlinkage void smp_error_interrupt(void
6: Received illegal vector
7: Illegal register address
*/
++++++ patches.drivers.tar.bz2 ++++++
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/patches.drivers/always-announce-new-usb-devices.patch new/patches.drivers/always-announce-new-usb-devices.patch
--- old/patches.drivers/always-announce-new-usb-devices.patch 2007-03-11 19:29:16.000000000 +0100
+++ new/patches.drivers/always-announce-new-usb-devices.patch 2007-03-22 12:10:29.000000000 +0100
@@ -15,7 +15,7 @@
--- linux-2.6.20.orig/drivers/usb/core/hub.c
+++ linux-2.6.20/drivers/usb/core/hub.c
-@@ -1241,7 +1241,6 @@ void usb_disconnect(struct usb_device **
+@@ -1238,7 +1238,6 @@ void usb_disconnect(struct usb_device **
put_device(&udev->dev);
}
@@ -23,7 +23,7 @@
static void show_string(struct usb_device *udev, char *id, char *string)
{
if (!string)
-@@ -1249,10 +1248,6 @@ static void show_string(struct usb_devic
+@@ -1246,10 +1245,6 @@ static void show_string(struct usb_devic
dev_printk(KERN_INFO, &udev->dev, "%s: %s\n", id, string);
}
@@ -34,7 +34,7 @@
#ifdef CONFIG_USB_OTG
-@@ -1285,7 +1280,10 @@ static int __usb_new_device(void *void_d
+@@ -1298,7 +1293,10 @@ int usb_new_device(struct usb_device *ud
udev->serial = usb_cache_string(udev, udev->descriptor.iSerialNumber);
/* Tell the world! */
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/patches.drivers/e1000-eeprom-cksum.patch new/patches.drivers/e1000-eeprom-cksum.patch
--- old/patches.drivers/e1000-eeprom-cksum.patch 2007-03-11 19:29:16.000000000 +0100
+++ new/patches.drivers/e1000-eeprom-cksum.patch 2007-03-22 12:10:29.000000000 +0100
@@ -14,7 +14,7 @@
--- linux-2.6.20.orig/drivers/net/e1000/e1000_main.c
+++ linux-2.6.20/drivers/net/e1000/e1000_main.c
-@@ -1022,8 +1022,12 @@ e1000_probe(struct pci_dev *pdev,
+@@ -1018,8 +1018,12 @@ e1000_probe(struct pci_dev *pdev,
/* make sure the EEPROM is good */
if (e1000_validate_eeprom_checksum(&adapter->hw) < 0) {
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/patches.drivers/libata-add-waits-for-govault new/patches.drivers/libata-add-waits-for-govault
--- old/patches.drivers/libata-add-waits-for-govault 2007-02-27 13:53:49.000000000 +0100
+++ new/patches.drivers/libata-add-waits-for-govault 2007-03-22 12:10:29.000000000 +0100
@@ -12,22 +12,20 @@
Signed-off-by: Tejun Heo
---
drivers/ata/libata-core.c | 28 ++++++++++++++++++++++++++--
- 1 file changed, 26 insertions(+), 2 deletions(-)
+ 1 files changed, 26 insertions(+), 2 deletions(-)
-Index: linux-2.6.20/drivers/ata/libata-core.c
-===================================================================
--- linux-2.6.20.orig/drivers/ata/libata-core.c
+++ linux-2.6.20/drivers/ata/libata-core.c
-@@ -2653,6 +2653,8 @@ static unsigned int ata_bus_softreset(st
+@@ -2700,6 +2700,8 @@ static unsigned int ata_bus_softreset(st
unsigned int devmask)
{
struct ata_ioports *ioaddr = &ap->ioaddr;
+ unsigned long timeout;
+ u8 status;
- DPRINTK("ata%u: bus reset via SRST\n", ap->id);
+ DPRINTK("ata%u: bus reset via SRST\n", ap->print_id);
-@@ -2683,11 +2685,22 @@ static unsigned int ata_bus_softreset(st
+@@ -2722,11 +2724,22 @@ static unsigned int ata_bus_softreset(st
*/
msleep(150);
@@ -51,7 +49,7 @@
return 0;
ata_bus_post_reset(ap, devmask);
-@@ -2951,10 +2964,21 @@ int ata_std_prereset(struct ata_port *ap
+@@ -2986,10 +2999,21 @@ int ata_std_prereset(struct ata_port *ap
}
/* Wait for !BSY if the controller can wait for the first D2H
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/patches.drivers/libata-hardreset-on-SERR_INTERNAL new/patches.drivers/libata-hardreset-on-SERR_INTERNAL
--- old/patches.drivers/libata-hardreset-on-SERR_INTERNAL 2007-03-13 18:07:09.000000000 +0100
+++ new/patches.drivers/libata-hardreset-on-SERR_INTERNAL 2007-03-22 12:10:29.000000000 +0100
@@ -11,13 +11,11 @@
Signed-off-by: Tejun Heo
---
drivers/ata/libata-eh.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
+ 1 files changed, 1 insertion(+), 1 deletion(-)
-Index: linux-2.6.20/drivers/ata/libata-eh.c
-===================================================================
--- linux-2.6.20.orig/drivers/ata/libata-eh.c
+++ linux-2.6.20/drivers/ata/libata-eh.c
-@@ -1027,7 +1027,7 @@ static void ata_eh_analyze_serror(struct
+@@ -1055,7 +1055,7 @@ static void ata_eh_analyze_serror(struct
}
if (serror & SERR_INTERNAL) {
err_mask |= AC_ERR_SYSTEM;
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/patches.drivers/nozomi.patch new/patches.drivers/nozomi.patch
--- old/patches.drivers/nozomi.patch 2007-01-10 09:06:51.000000000 +0100
+++ new/patches.drivers/nozomi.patch 2007-03-22 12:10:29.000000000 +0100
@@ -4,22 +4,24 @@
From: Greg Kroah-Hartman
Subject: Add nozomi driver to the tree
-This is a driver to control the cardbus wireless data card that works on 3g
-networks.
+This is a driver to control the cardbus wireless data card that works on
+3g networks.
It still needs a lot of cleanup, but is getting there...
at least it builds with no warnings on i386 now...
+Thanks to Arnaud Patard for help with bugfixing.
+
Signed-off-by: Greg Kroah-Hartman
---
drivers/char/Kconfig | 10
drivers/char/Makefile | 1
- drivers/char/nozomi.c | 2262 ++++++++++++++++++++++++++++++++++++++++++++++++++
- 3 files changed, 2273 insertions(+)
+ drivers/char/nozomi.c | 2251 ++++++++++++++++++++++++++++++++++++++++++++++++++
+ 3 files changed, 2262 insertions(+)
---- gregkh-2.6.orig/drivers/char/Kconfig
-+++ gregkh-2.6/drivers/char/Kconfig
+--- a/drivers/char/Kconfig
++++ b/drivers/char/Kconfig
@@ -372,6 +372,16 @@ config ISTALLION
To compile this driver as a module, choose M here: the
module will be called istallion.
@@ -37,8 +39,8 @@
config AU1000_UART
bool "Enable Au1000 UART Support"
depends on SERIAL_NONSTANDARD && MIPS
---- gregkh-2.6.orig/drivers/char/Makefile
-+++ gregkh-2.6/drivers/char/Makefile
+--- a/drivers/char/Makefile
++++ b/drivers/char/Makefile
@@ -25,6 +25,7 @@ obj-$(CONFIG_SERIAL167) += serial167.o
obj-$(CONFIG_CYCLADES) += cyclades.o
obj-$(CONFIG_STALLION) += stallion.o
@@ -48,8 +50,8 @@
obj-$(CONFIG_SPECIALIX) += specialix.o
obj-$(CONFIG_MOXA_INTELLIO) += moxa.o
--- /dev/null
-+++ gregkh-2.6/drivers/char/nozomi.c
-@@ -0,0 +1,2262 @@
++++ b/drivers/char/nozomi.c
+@@ -0,0 +1,2251 @@
+/* nozomi.c -- HSDPA driver Broadband Wireless Data Card - Globe Trotter
+*
+* Written by: Ulf Jakobsson,
@@ -126,10 +128,9 @@
+* Driver also support big endian architecture.
+*/
+
-+/* TODO
-+*
-+* See TODO file in this package
-+*/
++/* Enable this to have a lot of debug printouts */
++#define DEBUG
++
+
+#include
+#include
@@ -144,15 +145,15 @@
+#include
+#include
+
++#include
++
++
+#define VERSION_STRING DRIVER_DESC " 2.1 (build date: " __DATE__ " " __TIME__ ")"
+
+/* Macros definitions */
+
-+/* Enable this to have a lot of debug printouts */
-+/* #define NOZOMI_DEBUG */
-+
+/* Default debug printout level */
-+#define NOZOMI_DEBUG_LEVEL 0x1
++#define NOZOMI_DEBUG_LEVEL 0x00
+
+#define P_BUF_SIZE 128
+#define NFO( _err_flag_, args...) \
@@ -163,8 +164,6 @@
+ __FUNCTION__, t_m_p_); \
+} while(0)
+
-+#define ERR(args...) NFO( KERN_ERR, ##args)
-+
+#define D1(args...) D_(0x01, ##args)
+#define D2(args...) D_(0x02, ##args)
+#define D3(args...) D_(0x04, ##args)
@@ -174,18 +173,18 @@
+#define D7(args...) D_(0x40, ##args)
+#define D8(args...) D_(0x80, ##args)
+
-+#ifdef NOZOMI_DEBUG
++#ifdef DEBUG
+#define D_(lvl, args...) D(lvl, ##args)
+ /* Do we need this settable at runtime? */
-+static int nzdebug = NOZOMI_DEBUG_LEVEL;
++static int debug = NOZOMI_DEBUG_LEVEL;
+
-+#define D(lvl, args...) do{if(lvl & nzdebug) NFO(KERN_DEBUG, ##args );}while(0)
++#define D(lvl, args...) do{if(lvl & debug) NFO(KERN_DEBUG, ##args );}while(0)
+#define D_(lvl, args...) D(lvl, ##args)
+
+/* These printouts are always printed */
+
+#else
-+static const int nzdebug = 0;
++static int debug = 0;
+#define D_(lvl, args...)
+#endif
+
@@ -213,13 +212,11 @@
+
+#define GET_MEM(value__, addr__, length__) \
+ do { \
-+/* read_mem32( (u32*) (value__), (u32) (addr__), (length__)); */\
+ read_mem32( (u32*) (value__), (addr__), (length__));\
+} while(0)
+
+#define GET_MEM_BUF(value__, addr__, length__) \
+ do { \
-+/* read_mem32_buf( (u32*) (value__), (u32) (addr__), (length__)); */\
+ read_mem32_buf( (u32*) (value__), (addr__), (length__));\
+} while(0)
+
@@ -348,22 +345,22 @@
+#ifdef __ARMEB__
+/* Big endian */
+
-+typedef struct {
++struct toggles {
+ unsigned enabled:5; /* Toggle fields are valid if enabled is 0, else A-channels
+ must always be used. */
+ unsigned diag_dl:1;
+ unsigned mdm_dl:1;
+ unsigned mdm_ul:1;
-+} __attribute__ ((packed)) toggles_t;
++} __attribute__ ((packed));
+
+/* Configuration table to read at startup of card */
+/* Is for now only needed during initialization phase */
-+typedef struct {
++struct config_table {
+ u32 signature;
+ u16 product_information;
+ u16 version;
+ u8 pad3[3];
-+ toggles_t toggle;
++ struct toggles toggle;
+ u8 pad1[4];
+ u16 dl_mdm_len1; /* If this is 64, it can hold 60 bytes + 4 that is length field */
+ u16 dl_start;
@@ -383,44 +380,44 @@
+ u16 ul_app1_len;
+ u16 ul_app2_len;
+ u16 ul_ctrl_len;
-+} __attribute__ ((packed)) config_table_t;
++} __attribute__ ((packed));
+
+/* This stores all control downlink flags */
-+typedef struct {
++struct ctrl_dl {
+ u8 port;
+ unsigned reserved:4;
+ unsigned CTS:1;
+ unsigned RI:1;
+ unsigned DCD:1;
+ unsigned DSR:1;
-+} __attribute__ ((packed)) ctrl_dl_t;
++} __attribute__ ((packed));
+
+/* This stores all control uplink flags */
-+typedef struct {
++struct ctrl_ul {
+ u8 port;
+ unsigned reserved:6;
+ unsigned RTS:1;
+ unsigned DTR:1;
-+} __attribute__ ((packed)) ctrl_ul_t;
++} __attribute__ ((packed));
+
+#else
+/* Little endian */
+
+/* This represents the toggle information */
-+typedef struct {
++struct toggles {
+ unsigned mdm_ul:1;
+ unsigned mdm_dl:1;
+ unsigned diag_dl:1;
+ unsigned enabled:5; /* Toggle fields are valid if enabled is 0, else A-channels
+ must always be used. */
-+} __attribute__ ((packed)) toggles_t;
++} __attribute__ ((packed));
+
+/* Configuration table to read at startup of card */
-+typedef struct {
++struct config_table {
+ u32 signature;
+ u16 version;
+ u16 product_information;
-+ toggles_t toggle;
++ struct toggles toggle;
+ u8 pad1[7];
+ u16 dl_start;
+ u16 dl_mdm_len1; /* If this is 64, it can hold 60 bytes + 4 that is length field */
@@ -438,32 +435,32 @@
+ u16 ul_app1_len;
+ u16 ul_app2_len;
+ u16 ul_ctrl_len;
-+} __attribute__ ((packed)) config_table_t;
++} __attribute__ ((packed));
+
+/* This stores all control downlink flags */
-+typedef struct {
++struct ctrl_dl {
+ unsigned DSR:1;
+ unsigned DCD:1;
+ unsigned RI:1;
+ unsigned CTS:1;
+ unsigned reserverd:4;
+ u8 port;
-+} __attribute__ ((packed)) ctrl_dl_t;
++} __attribute__ ((packed));
+
+/* This stores all control uplink flags */
-+typedef struct {
++struct ctrl_ul {
+ unsigned DTR:1;
+ unsigned RTS:1;
+ unsigned reserved:6;
+ u8 port;
-+} __attribute__ ((packed)) ctrl_ul_t;
++} __attribute__ ((packed));
+#endif
+
+/* This holds all information that is needed regarding a port */
+struct port {
+ u8 update_flow_control;
-+ ctrl_ul_t ctrl_ul;
-+ ctrl_dl_t ctrl_dl;
++ struct ctrl_ul ctrl_ul;
++ struct ctrl_dl ctrl_dl;
+ struct kfifo *fifo_ul;
+// u32 dl_addr[2];
+ void __iomem *dl_addr[2];
@@ -487,7 +484,7 @@
+};
+
+/* Private data one for each card in the system */
-+typedef struct {
++struct nozomi {
+ void __iomem *base_addr;
+ u8 closing;
+
@@ -498,7 +495,7 @@
+
+ u16 ier_last_written;
+ enum card_type card_type;
-+ config_table_t config_table; /* Configuration table */
++ struct config_table config_table; /* Configuration table */
+ struct pci_dev *pdev;
+ struct port port[NOZOMI_MAX_PORTS];
+ u8 *send_buf;
@@ -513,7 +510,7 @@
+ spinlock_t spin_mutex;
+
+ u32 open_ttys;
-+} dc_t;
++};
+
+/* This is a data packet that is read or written to/from card */
+struct buffer {
@@ -522,7 +519,7 @@
+} __attribute__ ((packed));
+
+/* Function declarations */
-+static int ntty_tty_init(dc_t * dc);
++static int ntty_tty_init(struct nozomi * dc);
+
+/* Global variables */
+static struct pci_device_id nozomi_pci_tbl[] = {
@@ -533,36 +530,26 @@
+MODULE_DEVICE_TABLE(pci, nozomi_pci_tbl);
+
+/* Used to store interrupt variables */
-+typedef struct {
++struct irq {
+ u16 read_iir; /* Holds current interrupt tokens */
-+} irq_t;
++};
+
+/* Representing the pci device of interest */
+static int cards_found;
-+static dc_t *my_dev = NULL;
-+static irq_t my_irq;
-+
-+static inline dc_t *get_dc_by_pdev(struct pci_dev *pdev)
-+{
-+ return my_dev;
-+}
++static struct nozomi *my_dev = NULL;
++static struct irq my_irq;
+
-+static inline dc_t *get_dc_by_index(s32 index)
++static struct nozomi *get_dc_by_index(s32 index)
+{
+ return my_dev;
+}
+
-+static inline s32 get_index(struct tty_struct *tty)
++static struct port *get_port_by_tty(struct tty_struct *tty)
+{
-+ return tty->index;
++ return &my_dev->port[tty->index];
+}
+
-+static inline struct port *get_port_by_tty(struct tty_struct *tty)
-+{
-+ return &my_dev->port[get_index(tty)];
-+}
-+
-+static inline dc_t *get_dc_by_tty(struct tty_struct *tty)
++static struct nozomi *get_dc_by_tty(struct tty_struct *tty)
+{
+ return my_dev;
+}
@@ -577,6 +564,9 @@
+ u32 *ptr = (__force u32 *) mem_addr_start;
+ u16 *buf16;
+
++ if (!ptr || !buf)
++ return;
++
+ /* 2 bytes */
+ if (size_bytes == 2) {
+ buf16 = (u16 *) buf;
@@ -612,6 +602,9 @@
+ u32 *ptr = (u32 *) mem_addr_start;
+ u16 *buf16;
+
++ if (!ptr || !buf)
++ return;
++
+ /* 2 bytes */
+ if (size_bytes == 2) {
+ buf16 = (u16 *) buf;
@@ -648,6 +641,9 @@
+ u32 *ptr = (__force u32 *) mem_addr_start;
+ u16 *buf16;
+
++ if (!ptr || !buf)
++ return 0;
++
+ /* 2 bytes */
+ if (size_bytes == 2) {
+ buf16 = (u16 *) buf;
@@ -683,6 +679,9 @@
+ u32 *ptr = (u32 *) mem_addr_start;
+ u16 *buf16;
+
++ if (!ptr || !buf)
++ return 0;
++
+ /* 2 bytes */
+ if (size_bytes == 2) {
+ buf16 = (u16 *) buf;
@@ -711,7 +710,7 @@
+}
+
+/* Setup pointers to different channels and also setup buffer sizes. */
-+static void setup_memory(dc_t * dc)
++static void setup_memory(struct nozomi *dc)
+{
+ void __iomem *offset = dc->base_addr + dc->config_table.dl_start;
+ /* The length reported is including the length field of 4 bytes, hence subtract with 4. */
@@ -767,8 +766,8 @@
+}
+
+/* Dump config table under initalization phase */
-+#ifdef NOZOMI_DEBUG
-+static void dump_table(dc_t * dc)
++#ifdef DEBUG
++static void dump_table(struct nozomi * dc)
+{
+ D3("signature: 0x%08X", dc->config_table.signature);
+ D3("version: 0x%04X", dc->config_table.version);
@@ -808,14 +807,15 @@
+ D3("ul_ctrl_len: 0x%04X, %d", dc->config_table.ul_ctrl_len,
+ dc->config_table.ul_ctrl_len);
+}
++#else
++static __inline__ void dump_table(struct nozomi * dc) { }
+#endif
+
+/* Read configuration table from card under intalization phase */
+/* Returns 1 if ok, else 0 */
-+static int nozomi_read_config_table(dc_t * dc)
++static int nozomi_read_config_table(struct nozomi * dc)
+{
-+
-+ GET_MEM(&dc->config_table, dc->base_addr + 0, sizeof(config_table_t));
++ GET_MEM(&dc->config_table, dc->base_addr + 0, sizeof(struct config_table));
+
+ /* D1( "0x%08X == 0x%08X ", dc->config_table.signature, CONFIG_MAGIC); */
+
@@ -839,14 +839,13 @@
+ dc->port[PORT_MDM].toggle_ul,
+ dc->port[PORT_MDM].toggle_dl, dc->port[PORT_DIAG].toggle_dl);
+
-+#ifdef NOZOMI_DEBUG
+ dump_table(dc);
-+#endif
++
+ for (i = PORT_MDM; i < MAX_PORT; i++) {
+ dc->port[i].fifo_ul =
+ kfifo_alloc(FIFO_BUFFER_SIZE_UL, GFP_ATOMIC, NULL);
-+ memset(&dc->port[i].ctrl_dl, 0, sizeof(ctrl_dl_t));
-+ memset(&dc->port[i].ctrl_ul, 0, sizeof(ctrl_ul_t));
++ memset(&dc->port[i].ctrl_dl, 0, sizeof(struct ctrl_dl));
++ memset(&dc->port[i].ctrl_ul, 0, sizeof(struct ctrl_ul));
+ }
+
+ /* Enable control channel */
@@ -882,7 +881,7 @@
+}
+
+/* Enable uplink interrupts */
-+static void enable_transmit_ul(enum port_type port, dc_t * dc)
++static void enable_transmit_ul(enum port_type port, struct nozomi * dc)
+{
+
+ switch (port) {
@@ -908,7 +907,7 @@
+}
+
+/* Disable uplink interrupts */
-+static void disable_transmit_ul(enum port_type port, dc_t * dc)
++static void disable_transmit_ul(enum port_type port, struct nozomi * dc)
+{
+ switch (port) {
+ case PORT_MDM:
@@ -933,7 +932,7 @@
+}
+
+/* Enable downlink interrupts */
-+static void enable_transmit_dl(enum port_type port, dc_t * dc)
++static void enable_transmit_dl(enum port_type port, struct nozomi * dc)
+{
+ switch (port) {
+ case PORT_MDM:
@@ -958,7 +957,7 @@
+}
+
+/* Disable downlink interrupts */
-+static void disable_transmit_dl(enum port_type port, dc_t * dc)
++static void disable_transmit_dl(enum port_type port, struct nozomi * dc)
+{
+ switch (port) {
+ case PORT_MDM:
@@ -984,7 +983,7 @@
+
+/* Return 1 - send buffer to card and ack. */
+/* Return 0 - don't ack, don't send buffer to card. */
-+static int send_data(enum port_type index, dc_t * dc)
++static int send_data(enum port_type index, struct nozomi * dc)
+{
+ u32 size = 0;
+ struct port *port = &dc->port[index];
@@ -1022,7 +1021,7 @@
+}
+
+/* If all data has been read, return 1, else 0 */
-+static int receive_data(enum port_type index, dc_t * dc)
++static int receive_data(enum port_type index, struct nozomi * dc)
+{
+ u8 buf[RECEIVE_BUF_MAX] = { 0 };
+ int size;
@@ -1074,7 +1073,7 @@
+}
+
+/* Debug for interrupts */
-+#ifdef NOZOMI_DEBUG
++#ifdef DEBUG
+static char *interrupt2str(u16 interrupt)
+{
+ static char buf[TMP_BUF_MAX];
@@ -1108,11 +1107,11 @@
+
+/* Receive flow control */
+/* Return 1 - If ok, else 0 */
-+static int receive_flow_control(dc_t * dc, irq_t * m)
++static int receive_flow_control(struct nozomi * dc, struct irq * m)
+{
+ enum port_type port = PORT_MDM;
-+ ctrl_dl_t ctrl_dl;
-+ ctrl_dl_t old_ctrl;
++ struct ctrl_dl ctrl_dl;
++ struct ctrl_dl old_ctrl;
+ u16 enable_ier = 0;
+
+ GET_MEM(&ctrl_dl, dc->port[PORT_CTRL].dl_addr[CH_A], 2);
@@ -1193,7 +1192,7 @@
+
+/* TODO: */
+/* - return enum ctrl_port_type */
-+static u8 port2ctrl(enum port_type port, dc_t * dc)
++static u8 port2ctrl(enum port_type port, struct nozomi * dc)
+{
+ switch (port) {
+ case PORT_MDM:
@@ -1214,7 +1213,7 @@
+/* Send flow control, can only update one channel at a time */
+/* Return 0 - If we have updated all flow control */
+/* Return 1 - If we need to update more flow control, ack current enable more */
-+static int send_flow_control(dc_t * dc)
++static int send_flow_control(struct nozomi * dc)
+{
+ u32 i, more_flow_control_to_be_updated = 0;
+ u16 *ctrl;
@@ -1240,7 +1239,7 @@
+/* Handle donlink data, ports that are handled are modem and diagnostics */
+/* Return 1 - ok */
+/* Return 0 - toggle fields are out of sync */
-+static int handle_data_dl(dc_t * dc, irq_t * m, enum port_type port,
++static int handle_data_dl(struct nozomi * dc, struct irq *m, enum port_type port,
+ u8 * toggle, u16 mask1, u16 mask2)
+{
+
@@ -1269,7 +1268,8 @@
+ }
+ }
+ } else {
-+ ERR("port out of sync!, toggle:%d", *toggle);
++ dev_err(&dc->pdev->dev, "port out of sync!, toggle:%d\n",
++ *toggle);
+ return 0;
+ }
+ return 1;
@@ -1278,7 +1278,7 @@
+/* Handle uplink data, this is currently for the modem port */
+/* Return 1 - ok */
+/* Return 0 - toggle field are out of sync */
-+static int handle_data_ul(dc_t * dc, irq_t * m, enum port_type port)
++static int handle_data_ul(struct nozomi * dc, struct irq * m, enum port_type port)
+{
+
+ u8 *toggle = &(dc->port[port].toggle_ul);
@@ -1318,7 +1318,7 @@
+ }
+ } else {
+ SET_FCR(m->read_iir & MDM_UL);
-+ ERR("port out of sync!");
++ dev_err(&dc->pdev->dev, "port out of sync!\n");
+ return 0;
+ }
+ return 1;
@@ -1326,33 +1326,25 @@
+
+static irqreturn_t interrupt_handler(int irq, void *dev_id)
+{
-+ dc_t *dc = NULL;
-+ irq_t *m = &my_irq;
-+
-+ if (my_dev && my_dev->pdev != dev_id) {
-+ return IRQ_NONE;
-+ }
++ struct nozomi *dc = dev_id;
++ struct irq *m = &my_irq;
+
-+ if (!(dc = get_dc_by_pdev(dev_id))) {
-+ ERR("Could not find device context from pci_dev: %p", dev_id);
++ if (!dc)
+ return IRQ_NONE;
-+ }
+
++ spin_lock(&dc->spin_mutex);
+ GET_IIR(m->read_iir);
+
++ /* Card removed */
++ if (m->read_iir == (u16)-1)
++ goto none;
++
+ /* Just handle interrupt enabled in IER (by masking with dc->ier_last_written) */
+ m->read_iir &= dc->ier_last_written;
+
-+ if (m->read_iir == 0) {
-+ return IRQ_NONE;
-+ }
++ if (m->read_iir == 0)
++ goto none;
+
-+ if (dc == NULL) {
-+ ERR("ERROR!!");
-+ return IRQ_NONE;
-+ }
-+
-+ spin_lock(&dc->spin_mutex);
+
+ D4("%s irq:0x%04X, prev:0x%04X", interrupt2str(m->read_iir),
+ m->read_iir, dc->ier_last_written);
@@ -1360,7 +1352,8 @@
+ if (m->read_iir & RESET) {
+ if (!nozomi_read_config_table(dc)) {
+ SET_IER(0, 0xFFFF);
-+ ERR("ERR: Could not read status from card, we should disable interface");
++ dev_err(&dc->pdev->dev, "Could not read status from "
++ "card, we should disable interface\n");
+ } else {
+ SET_FCR(RESET);
+ }
@@ -1383,13 +1376,13 @@
+ (handle_data_dl
+ (dc, m, PORT_MDM, &(dc->port[PORT_MDM].toggle_dl), MDM_DL1,
+ MDM_DL2))) {
-+ ERR("MDM_DL out of sync!");
++ dev_err(&dc->pdev->dev, "MDM_DL out of sync!\n");
+ goto exit_handler;
+ }
+ }
+ if (m->read_iir & MDM_UL) {
+ if (!handle_data_ul(dc, m, PORT_MDM)) {
-+ ERR("MDM_UL out of sync!");
++ dev_err(&dc->pdev->dev, "MDM_UL out of sync!\n");
+ goto exit_handler;
+ }
+ }
@@ -1398,7 +1391,7 @@
+ (handle_data_dl
+ (dc, m, PORT_DIAG, &(dc->port[PORT_DIAG].toggle_dl),
+ DIAG_DL1, DIAG_DL2))) {
-+ ERR("DIAG_DL out of sync!");
++ dev_err(&dc->pdev->dev, "DIAG_DL out of sync!\n");
+ goto exit_handler;
+ }
+ }
@@ -1434,28 +1427,29 @@
+ }
+ }
+
-+ exit_handler:
++exit_handler:
+ spin_unlock(&dc->spin_mutex);
+ return IRQ_HANDLED;
++none:
++ spin_unlock(&dc->spin_mutex);
++ return IRQ_NONE;
+}
+
+/* Request a shared IRQ from system */
-+static int nozomi_setup_interrupt(struct pci_dev *pdev)
++static int nozomi_setup_interrupt(struct nozomi *dc)
+{
++ int rval;
+
-+ int rval = 0;
-+
-+ if ((rval =
-+ request_irq(pdev->irq, &interrupt_handler, SA_SHIRQ, NOZOMI_NAME,
-+ pdev))) {
-+ ERR("Cannot open because IRQ %d is already in use.", pdev->irq);
-+ return rval;
-+ }
++ rval = request_irq(dc->pdev->irq, &interrupt_handler, IRQF_SHARED,
++ NOZOMI_NAME, dc);
++ if (rval)
++ dev_err(&dc->pdev->dev, "Cannot open because IRQ %d "
++ "is already in use.\n", dc->pdev->irq);
+
+ return rval;
+}
+
-+static void nozomi_get_card_type(dc_t * dc)
++static void nozomi_get_card_type(struct nozomi * dc)
+{
+ int i;
+ u32 size = 0;
@@ -1469,7 +1463,7 @@
+ dev_info(&dc->pdev->dev, "Card type is: %d\n", dc->card_type);
+}
+
-+static void nozomi_setup_private_data(dc_t * dc)
++static void nozomi_setup_private_data(struct nozomi * dc)
+{
+ void __iomem *offset = dc->base_addr + dc->card_type / 2;
+ int i;
@@ -1493,7 +1487,7 @@
+
+static void tty_flip_queue_function(struct work_struct *work)
+{
-+ dc_t *dc = container_of(work, dc_t, tty_flip_wq_struct);
++ struct nozomi *dc = container_of(work, struct nozomi, tty_flip_wq_struct);
+ int i;
+ unsigned long flags;
+
@@ -1513,28 +1507,26 @@
+ char *buf)
+{
+ struct pci_dev *pdev = to_pci_dev(dev);
-+ dc_t *dc = pci_get_drvdata(pdev);
++ struct nozomi *dc = pci_get_drvdata(pdev);
+
+ return sprintf(buf, "%d\n", dc->card_type);
+}
-+
+static DEVICE_ATTR(card_type, 0444, card_type_show, NULL);
+
+static ssize_t open_ttys_show(struct device *dev, struct device_attribute *attr,
+ char *buf)
+{
+ struct pci_dev *pdev = to_pci_dev(dev);
-+ dc_t *dc = pci_get_drvdata(pdev);
++ struct nozomi *dc = pci_get_drvdata(pdev);
+
+ return sprintf(buf, "%d\n", dc->open_ttys);
+}
-+
+static DEVICE_ATTR(open_ttys, 0444, open_ttys_show, NULL);
+
+#if 0
+static int read_proc_rtx(char *buf, char **start, off_t offset, int len)
+{
-+ dc_t *dc = get_dc_by_index(0);
++ struct nozomi *dc = get_dc_by_index(0);
+ int i;
+
+ len = 0;
@@ -1548,7 +1540,7 @@
+}
+#endif
+
-+static void make_sysfs_files(dc_t * dc)
++static void make_sysfs_files(struct nozomi * dc)
+{
+ int retval;
+
@@ -1556,7 +1548,7 @@
+ retval = device_create_file(&dc->pdev->dev, &dev_attr_open_ttys);
+}
+
-+static void remove_sysfs_files(dc_t * dc)
++static void remove_sysfs_files(struct nozomi * dc)
+{
+ device_remove_file(&dc->pdev->dev, &dev_attr_card_type);
+ device_remove_file(&dc->pdev->dev, &dev_attr_open_ttys);
@@ -1568,25 +1560,25 @@
+{
+ resource_size_t start;
+ int ret = -EIO;
-+ dc_t *dc = NULL;
++ struct nozomi *dc = NULL;
+
+ cards_found++;
-+ dev_info(&pdev->dev, "Init, cards_found: %d\n", cards_found);
-+
-+ if (!(my_dev = kmalloc(sizeof(dc_t), GFP_KERNEL))) {
-+ D1("Could not allocate memory");
-+ return -EIO;
-+ }
-+
-+ memset(my_dev, 0, sizeof(dc_t));
-+
+ if (cards_found > 1) {
+ dev_err(&pdev->dev, "This driver only supports 1 device\n");
+ return -ENODEV;
+ }
++ dev_dbg(&pdev->dev, "Init, cards_found: %d\n", cards_found);
++
++ dc = kzalloc(sizeof(struct nozomi), GFP_KERNEL);
++ if (!dc) {
++ dev_err(&pdev->dev, "Could not allocate memory\n");
++ return -ENOMEM;
++ }
++ dc->pdev = pdev;
++ pci_set_drvdata(pdev, dc);
+
-+ my_dev->pdev = pdev;
-+ dc = my_dev;
++ /* FIXME */
++ my_dev = dc;
+
+ /* Find out what card type it is */
+ nozomi_get_card_type(dc);
@@ -1631,16 +1623,16 @@
+ SET_IER(0, 0xFFFF);
+
+ /* Setup interrupt handler */
-+ if (nozomi_setup_interrupt(dc->pdev)) {
++ if (nozomi_setup_interrupt(dc)) {
+ ret = -EIO;
+ goto err_disable_regions;
+ }
+
-+ D1("base_addr: 0x%08X", dc->base_addr);
++ D1("base_addr: %p", dc->base_addr);
+
-+ if (!(dc->tty_flip_wq = create_singlethread_workqueue(NOZOMI_NAME))) {
-+ ERR("Could not create workqueue?");
-+ BUG_ON(!dc->tty_flip_wq);
++ dc->tty_flip_wq = create_singlethread_workqueue(NOZOMI_NAME);
++ if (!dc->tty_flip_wq) {
++ dev_err(&dc->pdev->dev, "Could not create workqueue?\n");
+ return -ENOMEM;
+ }
+ INIT_WORK(&dc->tty_flip_wq_struct, tty_flip_queue_function);
@@ -1669,17 +1661,18 @@
+ return ret;
+}
+
-+static void tty_do_close(dc_t * dc, struct port *port)
++static void tty_do_close(struct nozomi * dc, struct port *port)
+{
+ unsigned long flags;
+
-+ if (down_interruptible(&port->tty_sem)) {
++ if (!dc || !port)
+ return;
-+ }
+
-+ if (!port->tty_open_count) {
++ if (down_interruptible(&port->tty_sem))
++ return;
++
++ if (!port->tty_open_count)
+ goto exit;
-+ }
+
+ dc->open_ttys--;
+ port->tty_open_count--;
@@ -1689,38 +1682,47 @@
+ spin_lock_irqsave(&dc->spin_mutex, flags);
+ SET_IER(0, port->token_dl);
+ spin_unlock_irqrestore(&dc->spin_mutex, flags);
++ port->tty = NULL;
+ }
+
-+ exit:
++exit:
+ up(&port->tty_sem);
+}
+
+static void __devexit tty_exit(void)
+{
-+ dc_t *dc = my_dev;
-+ int i;
++ struct nozomi *dc = my_dev;
++ int i, ret;
+
+ D1(" ");
+
+ for (i = 0; i < NTTY_TTY_MINORS; i++) {
-+ while (dc->port[i].tty_open_count)
-+ tty_do_close(dc, &dc->port[i]);
-+ dc->port[i].tty = NULL;
++ if (dc->port[i].tty)
++ tty_hangup(dc->port[i].tty);
++ }
++
++ while (dc->open_ttys) {
++ msleep_interruptible(1);
+ }
+
+ for (i = 0; i < NTTY_TTY_MINORS; ++i)
+ tty_unregister_device(dc->tty_driver, i);
+
-+ tty_unregister_driver(dc->tty_driver);
++ ret = tty_unregister_driver(dc->tty_driver);
++ if (ret) {
++ printk(KERN_ERR "Unable to unregister the tty driver ! (%d)\n", ret);
++ }
+ put_tty_driver(dc->tty_driver);
+}
+
+/* Deallocate memory for one device */
-+static void __devexit nozomi_card_exit(struct pci_dev *pdev)
++static void nozomi_card_exit(struct pci_dev *pdev)
+{
+ int i;
-+ ctrl_ul_t ctrl;
-+ dc_t *dc = get_dc_by_pdev(pdev);
++ struct ctrl_ul ctrl;
++ struct nozomi *dc = pci_get_drvdata(pdev);
++
++ tty_exit();
+
+ /* Disable all interrupts */
+ SET_IER(0, 0xFFFF);
@@ -1747,30 +1749,26 @@
+ D1("pci_disable_device");
+ pci_disable_device(pdev);
+
-+ free_irq(pdev->irq, pdev);
++ free_irq(pdev->irq, dc);
+
-+ for (i = PORT_MDM; i < MAX_PORT; i++) {
++ for (i = PORT_MDM; i < MAX_PORT; i++)
+ kfree(dc->port[i].fifo_ul);
-+ }
+
+ kfree(dc->send_buf);
+
-+ tty_exit();
-+
+ remove_sysfs_files(dc);
+
+ destroy_workqueue(dc->tty_flip_wq);
+
-+ if (my_dev) {
-+ kfree(my_dev);
-+ }
++ kfree(my_dev);
++ my_dev = NULL;
+
+ cards_found--;
+}
+
+static void set_rts(int index, int rts)
+{
-+ dc_t *dc = get_dc_by_index(index);
++ struct nozomi *dc = get_dc_by_index(index);
+
+ dc->port[index].ctrl_ul.RTS = rts;
+ dc->port[index].update_flow_control = 1;
@@ -1779,7 +1777,7 @@
+
+static void set_dtr(int index, int dtr)
+{
-+ dc_t *dc = get_dc_by_index(index);
++ struct nozomi *dc = get_dc_by_index(index);
+
+ D1("SETTING DTR index: %d, dtr: %d", index, dtr);
+
@@ -1795,26 +1793,23 @@
+/* Called when the userspace process opens the tty, /dev/noz*. */
+static int ntty_open(struct tty_struct *tty, struct file *file)
+{
-+
-+ s32 index = get_index(tty);
+ struct port *port = get_port_by_tty(tty);
-+ dc_t *dc = get_dc_by_tty(tty);
++ struct nozomi *dc = get_dc_by_tty(tty);
+ unsigned long flags;
+
+ if (down_interruptible(&port->tty_sem)) {
+ return -ERESTARTSYS;
+ }
+
-+ tty->low_latency = 1;
-+ tty->driver_data = port;
-+ port->tty = tty;
-+ port->tty_index = index;
-+
+ port->tty_open_count++;
+ dc->open_ttys++;
+
+ /* Enable interrupt downlink for channel */
+ if (port->tty_open_count == 1) {
++ tty->low_latency = 1;
++ tty->driver_data = port;
++ port->tty = tty;
++ port->tty_index = tty->index;
+ port->rx_data = port->tx_data = 0;
+ D1("open: %d", port->token_dl);
+ spin_lock_irqsave(&dc->spin_mutex, flags);
@@ -1830,7 +1825,7 @@
+/* Called when the userspace process close the tty, /dev/noz*. */
+static void ntty_close(struct tty_struct *tty, struct file *file)
+{
-+ dc_t *dc = get_dc_by_tty(tty);
++ struct nozomi *dc = get_dc_by_tty(tty);
+ tty_do_close(dc, (struct port *)tty->driver_data);
+}
+
@@ -1840,18 +1835,19 @@
+ int count)
+{
+ int rval = -EINVAL;
-+ dc_t *dc = get_dc_by_tty(tty);
++ struct nozomi *dc = get_dc_by_tty(tty);
+ struct port *port = (struct port *)tty->driver_data;
+ unsigned long flags;
+
+ /* D1( "WRITEx: %d, index = %d", count, index); */
+
-+ if (!port) {
++ if (!dc || !port)
+ return -ENODEV;
-+ }
+
-+ if (down_trylock(&port->tty_sem)) { // must test lock as tty layer wraps calls to this function with BKL
-+ ERR("Would have deadlocked - return ERESTARTSYS");
++ if (down_trylock(&port->tty_sem)) {
++ /* must test lock as tty layer wraps calls to this function with BKL */
++ dev_err(&dc->pdev->dev, "Would have deadlocked -"
++ "return ERESTARTSYS\n");
+ return -ERESTARTSYS;
+ }
+
@@ -1875,7 +1871,7 @@
+ D4("Enable interrupt");
+ enable_transmit_ul(port->tty_index, dc);
+ } else {
-+ ERR("CTS not active on modem port?");
++ dev_err(&dc->pdev->dev, "CTS not active on modem port?\n");
+ }
+ } else {
+ enable_transmit_ul(port->tty_index, dc);
@@ -1895,9 +1891,9 @@
+ struct port *port = (struct port *)tty->driver_data;
+ int room = 0;
+// u32 flags = 0;
-+// dc_t *dc = get_dc_by_tty(tty);
++ struct nozomi *dc = get_dc_by_tty(tty);
+
-+ if (!port) {
++ if (!dc || !port) {
+ return 0;
+ }
+ if (down_trylock(&port->tty_sem)) {
@@ -1981,25 +1977,21 @@
+ /* if we are implementing XON/XOFF, set the start and
+ * stop character in the device */
+ if (I_IXOFF(tty) || I_IXON(tty)) {
-+#ifdef NOZOMI_DEBUG
-+ unsigned char stop_char = STOP_CHAR(tty);
-+ unsigned char start_char = START_CHAR(tty);
-+#endif
+ /* if we are implementing INBOUND XON/XOFF */
-+ if (I_IXOFF(tty)) {
++ if (I_IXOFF(tty))
+ D1(" - INBOUND XON/XOFF is enabled, "
-+ "XON = %2x, XOFF = %2x", start_char, stop_char);
-+ } else {
++ "XON = %2x, XOFF = %2x",
++ START_CHAR(tty), STOP_CHAR(tty));
++ else
+ D1(" - INBOUND XON/XOFF is disabled");
-+ }
+
+ /* if we are implementing OUTBOUND XON/XOFF */
-+ if (I_IXON(tty)) {
++ if (I_IXON(tty))
+ D1(" - OUTBOUND XON/XOFF is enabled, "
-+ "XON = %2x, XOFF = %2x", start_char, stop_char);
-+ } else {
++ "XON = %2x, XOFF = %2x",
++ START_CHAR(tty), STOP_CHAR(tty));
++ else
+ D1(" - OUTBOUND XON/XOFF is disabled");
-+ }
+ }
+
+ exit_termios:
@@ -2010,8 +2002,8 @@
+static int ntty_tiocmget(struct tty_struct *tty, struct file *file)
+{
+ struct port *port = tty->driver_data;
-+ ctrl_dl_t *ctrl_dl = &port->ctrl_dl;
-+ ctrl_ul_t *ctrl_ul = &port->ctrl_ul;
++ struct ctrl_dl *ctrl_dl = &port->ctrl_dl;
++ struct ctrl_ul *ctrl_ul = &port->ctrl_ul;
+
+ return 0 | (ctrl_ul->RTS ? TIOCM_RTS : 0)
+ | (ctrl_ul->DTR ? TIOCM_DTR : 0)
@@ -2102,7 +2094,7 @@
+ unsigned int cmd, unsigned long arg)
+{
+ struct port *port = tty->driver_data;
-+ dc_t *dc = get_dc_by_tty(tty);
++ struct nozomi *dc = get_dc_by_tty(tty);
+ unsigned long flags;
+ int mask;
+ int rval = -ENOIOCTLCMD;
@@ -2175,7 +2167,7 @@
+static void ntty_unthrottle(struct tty_struct *tty)
+{
+ struct port *port = (struct port *)tty->driver_data;
-+ dc_t *dc = get_dc_by_tty(tty);
++ struct nozomi *dc = get_dc_by_tty(tty);
+ unsigned long flags;
+
+ D1("UNTHROTTLE");
@@ -2191,7 +2183,7 @@
+static void ntty_throttle(struct tty_struct *tty)
+{
+ struct port *port = (struct port *)tty->driver_data;
-+ dc_t *dc = get_dc_by_tty(tty);
++ struct nozomi *dc = get_dc_by_tty(tty);
+ unsigned long flags;
+
+ D1("THROTTLE");
@@ -2209,15 +2201,16 @@
+static s32 ntty_chars_in_buffer(struct tty_struct *tty)
+{
+ struct port *port = (struct port *)tty->driver_data;
++ struct nozomi *dc = get_dc_by_tty(tty);
+ s32 rval;
+
-+ if (!port) {
++ if (!dc || !port) {
+ rval = -ENODEV;
+ goto exit_in_buffer;
+ }
+
+ if (!port->tty_open_count) {
-+ ERR("No tty open?");
++ dev_err(&dc->pdev->dev, "No tty open?\n");
+ rval = -ENODEV;
+ goto exit_in_buffer;
+ }
@@ -2242,7 +2235,7 @@
+};
+
+/* Initializes the tty */
-+static int ntty_tty_init(dc_t * dc)
++static int ntty_tty_init(struct nozomi *dc)
+{
+ struct tty_driver *td;
+ int rval;
@@ -2288,7 +2281,7 @@
+ .name = NOZOMI_NAME,
+ .id_table = nozomi_pci_tbl,
+ .probe = nozomi_card_init,
-+ .remove = __devexit_p(nozomi_card_exit),
++ .remove = nozomi_card_exit,
+};
+
+static __init int nozomi_init(void)
@@ -2299,16 +2292,14 @@
+
+static __exit void nozomi_exit(void)
+{
-+ printk(KERN_INFO "Unloading %s", DRIVER_DESC);
++ printk(KERN_INFO "Unloading %s\n", DRIVER_DESC);
+ pci_unregister_driver(&nozomi_driver);
+}
+
+module_init(nozomi_init);
+module_exit(nozomi_exit);
+
-+#ifdef NOZOMI_DEBUG
-+MODULE_PARM(nzdebug, "i");
-+#endif
++module_param(debug, int, S_IRUGO | S_IWUSR);
+
+MODULE_LICENSE("Dual BSD/GPL");
+MODULE_DESCRIPTION(DRIVER_DESC);
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/patches.drivers/sysfs-crash-debugging.patch new/patches.drivers/sysfs-crash-debugging.patch
--- old/patches.drivers/sysfs-crash-debugging.patch 2007-03-20 09:43:23.000000000 +0100
+++ new/patches.drivers/sysfs-crash-debugging.patch 2007-03-22 12:10:29.000000000 +0100
@@ -24,10 +24,8 @@
include/linux/sysfs.h | 7 +++++++
4 files changed, 21 insertions(+)
-Index: b/arch/i386/kernel/traps.c
-===================================================================
---- a/arch/i386/kernel/traps.c
-+++ b/arch/i386/kernel/traps.c
+--- linux-2.6.20.orig/arch/i386/kernel/traps.c
++++ linux-2.6.20/arch/i386/kernel/traps.c
@@ -429,6 +429,7 @@ void die(const char * str, struct pt_reg
#endif
if (nl)
@@ -36,10 +34,8 @@
if (notify_die(DIE_OOPS, str, regs, err,
current->thread.trap_no, SIGSEGV) !=
NOTIFY_STOP) {
-Index: b/arch/x86_64/kernel/traps.c
-===================================================================
---- a/arch/x86_64/kernel/traps.c
-+++ b/arch/x86_64/kernel/traps.c
+--- linux-2.6.20.orig/arch/x86_64/kernel/traps.c
++++ linux-2.6.20/arch/x86_64/kernel/traps.c
@@ -533,6 +533,7 @@ void __kprobes __die(const char * str, s
printk("DEBUG_PAGEALLOC");
#endif
@@ -48,10 +44,8 @@
notify_die(DIE_OOPS, str, regs, err, current->thread.trap_no, SIGSEGV);
show_registers(regs);
/* Executive summary in case the oops scrolled away */
-Index: b/fs/sysfs/file.c
-===================================================================
---- a/fs/sysfs/file.c
-+++ b/fs/sysfs/file.c
+--- linux-2.6.20.orig/fs/sysfs/file.c
++++ linux-2.6.20/fs/sysfs/file.c
@@ -6,6 +6,7 @@
#include
#include
@@ -92,11 +86,9 @@
static int sysfs_release(struct inode * inode, struct file * filp)
{
struct kobject * kobj = to_kobj(filp->f_path.dentry->d_parent);
-Index: b/include/linux/sysfs.h
-===================================================================
---- a/include/linux/sysfs.h
-+++ b/include/linux/sysfs.h
-@@ -133,6 +133,8 @@ extern void sysfs_remove_shadow_dir(stru
+--- linux-2.6.20.orig/include/linux/sysfs.h
++++ linux-2.6.20/include/linux/sysfs.h
+@@ -134,6 +134,8 @@ extern void sysfs_remove_shadow_dir(stru
extern int __must_check sysfs_init(void);
@@ -105,7 +97,7 @@
#else /* CONFIG_SYSFS */
static inline int sysfs_schedule_callback(struct kobject *kobj,
-@@ -239,6 +241,11 @@ static inline int __must_check sysfs_ini
+@@ -240,6 +242,11 @@ static inline int __must_check sysfs_ini
return 0;
}
++++++ patches.fixes.tar.bz2 ++++++
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/patches.fixes/acpi_asus_do_not_always_load.patch new/patches.fixes/acpi_asus_do_not_always_load.patch
--- old/patches.fixes/acpi_asus_do_not_always_load.patch 2007-01-13 11:00:22.000000000 +0100
+++ new/patches.fixes/acpi_asus_do_not_always_load.patch 2007-03-22 12:10:29.000000000 +0100
@@ -9,9 +9,9 @@
Signed-off-by: Thomas Renninger
Signed-off-by: Frank Seidel
---- linux-2.6.19.orig/drivers/acpi/asus_acpi.c
-+++ linux-2.6.19/drivers/acpi/asus_acpi.c
-@@ -1412,7 +1412,7 @@ static int __init asus_acpi_init(void)
+--- linux-2.6.20.orig/drivers/acpi/asus_acpi.c
++++ linux-2.6.20/drivers/acpi/asus_acpi.c
+@@ -1413,7 +1413,7 @@ static int __init asus_acpi_init(void)
if (!asus_hotk_found) {
acpi_bus_unregister_driver(&asus_hotk_driver);
remove_proc_entry(PROC_ASUS, acpi_root_dir);
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/patches.fixes/acpi_execute_notify_threaded.patch new/patches.fixes/acpi_execute_notify_threaded.patch
--- old/patches.fixes/acpi_execute_notify_threaded.patch 2007-02-13 09:08:39.000000000 +0100
+++ new/patches.fixes/acpi_execute_notify_threaded.patch 2007-03-22 12:10:29.000000000 +0100
@@ -57,19 +57,17 @@
drivers/acpi/osl.c | 43 ++++++++++++++++++++++++++++++++++++-------
1 files changed, 36 insertions(+), 7 deletions(-)
-Index: linux-2.6.20/drivers/acpi/osl.c
-===================================================================
--- linux-2.6.20.orig/drivers/acpi/osl.c
+++ linux-2.6.20/drivers/acpi/osl.c
-@@ -78,6 +78,7 @@ static unsigned int acpi_irq_irq;
+@@ -76,6 +76,7 @@ static unsigned int acpi_irq_irq;
static acpi_osd_handler acpi_irq_handler;
static void *acpi_irq_context;
static struct workqueue_struct *kacpid_wq;
+static struct workqueue_struct *kacpi_notify_wq;
- acpi_status acpi_os_initialize(void)
- {
-@@ -96,8 +97,9 @@ acpi_status acpi_os_initialize1(void)
+ static void __init acpi_request_region (struct acpi_generic_address *addr,
+ unsigned int length, char *desc)
+@@ -142,8 +143,9 @@ acpi_status acpi_os_initialize1(void)
return AE_NULL_ENTRY;
}
kacpid_wq = create_singlethread_workqueue("kacpid");
@@ -80,7 +78,7 @@
return AE_OK;
}
-@@ -109,6 +111,7 @@ acpi_status acpi_os_terminate(void)
+@@ -155,6 +157,7 @@ acpi_status acpi_os_terminate(void)
}
destroy_workqueue(kacpid_wq);
@@ -88,7 +86,7 @@
return AE_OK;
}
-@@ -697,9 +700,27 @@ static void acpi_os_execute_deferred(str
+@@ -733,9 +736,27 @@ static void acpi_os_execute_deferred(str
kfree(dpc);
@@ -116,7 +114,7 @@
/*******************************************************************************
*
* FUNCTION: acpi_os_execute
-@@ -746,13 +767,21 @@ acpi_status acpi_os_execute(acpi_execute
+@@ -782,13 +803,21 @@ acpi_status acpi_os_execute(acpi_execute
dpc->function = function;
dpc->context = context;
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/patches.fixes/ipv6-no-autoconf new/patches.fixes/ipv6-no-autoconf
--- old/patches.fixes/ipv6-no-autoconf 2007-03-11 19:29:16.000000000 +0100
+++ new/patches.fixes/ipv6-no-autoconf 2007-03-22 12:10:29.000000000 +0100
@@ -19,7 +19,7 @@
--- linux-2.6.20.orig/net/ipv6/addrconf.c
+++ linux-2.6.20/net/ipv6/addrconf.c
-@@ -2553,6 +2553,7 @@ static void addrconf_dad_start(struct in
+@@ -2489,6 +2489,7 @@ static void addrconf_dad_start(struct in
spin_lock_bh(&ifp->lock);
if (dev->flags&(IFF_NOARP|IFF_LOOPBACK) ||
@@ -27,7 +27,7 @@
!(ifp->flags&IFA_F_TENTATIVE) ||
ifp->flags & IFA_F_NODAD) {
ifp->flags &= ~IFA_F_TENTATIVE;
-@@ -2638,6 +2639,7 @@ static void addrconf_dad_completed(struc
+@@ -2574,6 +2575,7 @@ static void addrconf_dad_completed(struc
if (ifp->idev->cnf.forwarding == 0 &&
ifp->idev->cnf.rtr_solicits > 0 &&
(dev->flags&IFF_LOOPBACK) == 0 &&
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/patches.fixes/nfs-readdir-timestamp new/patches.fixes/nfs-readdir-timestamp
--- old/patches.fixes/nfs-readdir-timestamp 2007-03-12 01:57:09.000000000 +0100
+++ new/patches.fixes/nfs-readdir-timestamp 2007-03-22 12:10:29.000000000 +0100
@@ -25,16 +25,14 @@
Signed-off-by: Neil Brown
### Diffstat output
- ./fs/nfs/dir.c | 4 ++++
- 1 file changed, 4 insertions(+)
+ fs/nfs/dir.c | 4 ++++
+ 1 files changed, 4 insertions(+)
Acked-by:
diff .prev/fs/nfs/dir.c ./fs/nfs/dir.c
-Index: linux-2.6.20/fs/nfs/dir.c
-===================================================================
---- linux-2.6.20.orig/fs/nfs/dir.c 2007-03-12 11:41:38.000000000 +1100
-+++ linux-2.6.20/fs/nfs/dir.c 2007-03-12 11:48:39.000000000 +1100
+--- linux-2.6.20.orig/fs/nfs/dir.c
++++ linux-2.6.20/fs/nfs/dir.c
@@ -154,6 +154,7 @@ typedef struct {
decode_dirent_t decode;
int plus;
@@ -52,7 +50,7 @@
unlock_page(page);
return 0;
error:
-@@ -1132,6 +1135,7 @@ static struct dentry *nfs_readdir_lookup
+@@ -1151,6 +1154,7 @@ static struct dentry *nfs_readdir_lookup
if (dentry == NULL)
return NULL;
dentry->d_op = NFS_PROTO(dir)->dentry_ops;
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/patches.fixes/oom-warning new/patches.fixes/oom-warning
--- old/patches.fixes/oom-warning 2007-02-07 08:33:52.000000000 +0100
+++ new/patches.fixes/oom-warning 2007-03-22 12:10:29.000000000 +0100
@@ -13,7 +13,7 @@
--- linux-2.6.20.orig/mm/page_alloc.c
+++ linux-2.6.20/mm/page_alloc.c
-@@ -1365,7 +1365,13 @@ nofail_alloc:
+@@ -1390,7 +1390,13 @@ nofail_alloc:
nopage:
if (!(gfp_mask & __GFP_NOWARN) && printk_ratelimit()) {
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/patches.fixes/tiocgdev new/patches.fixes/tiocgdev
--- old/patches.fixes/tiocgdev 2007-03-11 19:29:16.000000000 +0100
+++ new/patches.fixes/tiocgdev 2007-03-22 12:10:29.000000000 +0100
@@ -22,7 +22,7 @@
--- linux-2.6.20.orig/drivers/char/tty_io.c
+++ linux-2.6.20/drivers/char/tty_io.c
-@@ -3301,6 +3301,21 @@ int tty_ioctl(struct inode * inode, stru
+@@ -3336,6 +3336,21 @@ int tty_ioctl(struct inode * inode, stru
case TIOCMBIC:
case TIOCMBIS:
return tty_tiocmset(tty, file, cmd, p);
++++++ patches.rpmify.tar.bz2 ++++++
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/patches.rpmify/buildhost new/patches.rpmify/buildhost
--- old/patches.rpmify/buildhost 2005-11-08 09:23:09.000000000 +0100
+++ new/patches.rpmify/buildhost 2007-03-22 12:10:29.000000000 +0100
@@ -6,14 +6,12 @@
Signed-off-by: Andreas Gruenbacher
- mkcompile_h | 13 +++----------
+ scripts/mkcompile_h | 13 +++----------
1 files changed, 3 insertions(+), 10 deletions(-)
-Index: linux-2.6.13/scripts/mkcompile_h
-===================================================================
---- linux-2.6.13.orig/scripts/mkcompile_h 2005-10-07 21:01:05.000000000 -0700
-+++ linux-2.6.13/scripts/mkcompile_h 2005-10-07 21:01:22.000000000 -0700
-@@ -47,16 +47,9 @@
+--- linux-2.6.20.orig/scripts/mkcompile_h
++++ linux-2.6.20/scripts/mkcompile_h
+@@ -47,16 +47,9 @@ UTS_TRUNCATE="sed -e s/\(.\{1,$UTS_LEN\}
echo \#define UTS_VERSION \"`echo $UTS_VERSION | $UTS_TRUNCATE`\"
echo \#define LINUX_COMPILE_TIME \"`LC_ALL=C LANG=C date +%T`\"
@@ -31,5 +29,5 @@
+ echo \#define LINUX_COMPILE_HOST \"buildhost\"
+ echo \#define LINUX_COMPILE_DOMAIN \"suse.de\"
- echo \#define LINUX_COMPILER \"`$CC -v 2>&1 | tail -n 1`\"
+ echo \#define LINUX_COMPILER \"`LC_ALL=C LANG=C $CC -v 2>&1 | tail -n 1`\"
) > .tmpcompile
++++++ patches.suse.tar.bz2 ++++++
++++ 2544 lines of diff (skipped)
++++++ patches.xen.tar.bz2 ++++++
++++ 4117 lines of diff (skipped)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Remember to have fun...
---------------------------------------------------------------------
To unsubscribe, e-mail: opensuse-commit+unsubscribe@opensuse.org
For additional commands, e-mail: opensuse-commit+help@opensuse.org