r2455 - in trunk/kernel/source/kernel-source-2.6.10-2.6.10/debian: . patches patches/series
Andres Salomon
dilinger-guest@costa.debian.org
Mon, 07 Feb 2005 21:27:23 +0100
Author: dilinger-guest
Date: 2005-02-07 21:27:20 +0100 (Mon, 07 Feb 2005)
New Revision: 2455
Added:
trunk/kernel/source/kernel-source-2.6.10-2.6.10/debian/patches/051-md_sync_page_io_max_vecs.dpatch
trunk/kernel/source/kernel-source-2.6.10-2.6.10/debian/patches/052-vfat_valid_longname_proper_return.dpatch
trunk/kernel/source/kernel-source-2.6.10-2.6.10/debian/patches/053-ipmi_unhandled_message_counting.dpatch
trunk/kernel/source/kernel-source-2.6.10-2.6.10/debian/patches/054-ext3_journal_abort_before_panic.dpatch
trunk/kernel/source/kernel-source-2.6.10-2.6.10/debian/patches/055-uml_new_thread_race.dpatch
trunk/kernel/source/kernel-source-2.6.10-2.6.10/debian/patches/056-x86_64_acpi_do_suspend_lowlevel_arg.dpatch
trunk/kernel/source/kernel-source-2.6.10-2.6.10/debian/patches/057-scsi_ioctl_unknown_opcode.dpatch
trunk/kernel/source/kernel-source-2.6.10-2.6.10/debian/patches/058-ia64_binfmt_elf_bug_out.dpatch
trunk/kernel/source/kernel-source-2.6.10-2.6.10/debian/patches/059-ia64_unwind_stack_check.dpatch
trunk/kernel/source/kernel-source-2.6.10-2.6.10/debian/patches/060-alsa_cs4231_lib_ifdef_typo.dpatch
trunk/kernel/source/kernel-source-2.6.10-2.6.10/debian/patches/061-alsa_es18xx_ifdef_typo.dpatch
trunk/kernel/source/kernel-source-2.6.10-2.6.10/debian/patches/062-alsa_sscape_user_copy_check.dpatch
trunk/kernel/source/kernel-source-2.6.10-2.6.10/debian/patches/063-alsa_opl4_build_fix.dpatch
trunk/kernel/source/kernel-source-2.6.10-2.6.10/debian/patches/064-alsa_usbaudio_disconnect.dpatch
trunk/kernel/source/kernel-source-2.6.10-2.6.10/debian/patches/065-alsa_vx_kcalloc.dpatch
trunk/kernel/source/kernel-source-2.6.10-2.6.10/debian/patches/066-ibmvscsi_probe_delay_loop_fix.dpatch
trunk/kernel/source/kernel-source-2.6.10-2.6.10/debian/patches/067-scsi_gdth_pci_map_sg.dpatch
trunk/kernel/source/kernel-source-2.6.10-2.6.10/debian/patches/068-scsi_sd_read_capacity_LBD_bail.dpatch
trunk/kernel/source/kernel-source-2.6.10-2.6.10/debian/patches/069-alsa_sscape_upload_firmware_len.dpatch
trunk/kernel/source/kernel-source-2.6.10-2.6.10/debian/patches/070-alsa_rme9652_hdsp_get_autosync.dpatch
trunk/kernel/source/kernel-source-2.6.10-2.6.10/debian/patches/071-alsa_creation_order_fixes.dpatch
trunk/kernel/source/kernel-source-2.6.10-2.6.10/debian/patches/072-sctp_do_bind_random_port.dpatch
trunk/kernel/source/kernel-source-2.6.10-2.6.10/debian/patches/073-usb_gadget_serial_free_ports.dpatch
trunk/kernel/source/kernel-source-2.6.10-2.6.10/debian/patches/074-usb_makefile_fixes.dpatch
trunk/kernel/source/kernel-source-2.6.10-2.6.10/debian/patches/075-acpiphp_ibm_module_parm_perm.dpatch
trunk/kernel/source/kernel-source-2.6.10-2.6.10/debian/patches/076-i2c_ali1563_devinit_fixes.dpatch
trunk/kernel/source/kernel-source-2.6.10-2.6.10/debian/patches/077-ext3_journal_abort_handle_silence.dpatch
trunk/kernel/source/kernel-source-2.6.10-2.6.10/debian/patches/078-jbd_journal_revoke_graceful_double_delete.dpatch
trunk/kernel/source/kernel-source-2.6.10-2.6.10/debian/patches/079-i386_timer_resume_slowdown.dpatch
trunk/kernel/source/kernel-source-2.6.10-2.6.10/debian/patches/080-kernel_sched_might_sleep_ignore_if_oopsed.dpatch
trunk/kernel/source/kernel-source-2.6.10-2.6.10/debian/patches/081-ia64_early_sn_setup_nested_loop.dpatch
trunk/kernel/source/kernel-source-2.6.10-2.6.10/debian/patches/082-ide_it8172_init_return_failure.dpatch
trunk/kernel/source/kernel-source-2.6.10-2.6.10/debian/patches/083-x86_64_switch_mm_context_race.dpatch
trunk/kernel/source/kernel-source-2.6.10-2.6.10/debian/patches/084-smp_nmi_watchdog_race.dpatch
trunk/kernel/source/kernel-source-2.6.10-2.6.10/debian/patches/085-ia64_irq_reg_typo.dpatch
trunk/kernel/source/kernel-source-2.6.10-2.6.10/debian/patches/086-i386_cpufreq_powernow_k8_acpi_error.dpatch
trunk/kernel/source/kernel-source-2.6.10-2.6.10/debian/patches/087-ext3_graceful_corruption_fixes.dpatch
Modified:
trunk/kernel/source/kernel-source-2.6.10-2.6.10/debian/changelog
trunk/kernel/source/kernel-source-2.6.10-2.6.10/debian/patches/series/2.6.10-5
Log:
synch up w/ 2.6.10-as3
Modified: trunk/kernel/source/kernel-source-2.6.10-2.6.10/debian/changelog
===================================================================
--- trunk/kernel/source/kernel-source-2.6.10-2.6.10/debian/changelog 2005-02-07 15:13:28 UTC (rev 2454)
+++ trunk/kernel/source/kernel-source-2.6.10-2.6.10/debian/changelog 2005-02-07 20:27:20 UTC (rev 2455)
@@ -26,6 +26,164 @@
Patch to enhance the FBIOGET_FSCREENINFO ioctl, used by lcd_hack tool by
BenH. (Sven Luther)
+ * 051-md_sync_page_io_max_vecs.dpatch
+ Fix oops in md driver; when calling sync_page_io, correctly initialize
+ a bio, ensuring bi_max_vecs is set. (Andres Salomon)
+
+ * 052-vfat_valid_longname_proper_return.dpatch
+ Return proper error values from vfat_valid_longname(), and pass them back
+ to calling functions (vfat_mkdir, vfat_create). (Andres Salomon)
+
+ * 053-ipmi_unhandled_message_counting.dpatch
+ This fixes some IPMI issues:
+ - fix counting of handled and unhandled messages
+ - decode_dmi should've been handling 16 byte boundaries instead of
+ 16 bit boundaries (Andres Salomon)
+
+ * 054-ext3_journal_abort_before_panic.dpatch
+ When an error occurs in ext3, if we're going to panic, do it *after*
+ aborting the journal. (Andres Salomon)
+
+ * [UML] 055-uml_new_thread_race.dpatch
+ When creating a new thread, fix potential signal race that could
+ cause stack corruption. (Andres Salomon)
+
+ * [X86-64] 056-x86_64_acpi_do_suspend_lowlevel_arg.dpatch
+ ACPI's do_suspend_lowlevel for x86_64 was never updated to no
+ longer take an argument. This patch removes the test checking the
+ (non-existent) arg. (Andres Salomon)
+
+ * 057-scsi_ioctl_unknown_opcode.dpatch
+ scsi_ioctl's verify_command() had a check added to print debugging info
+ about unknown scsi opcodes; however, the check was incorrect. This
+ fixes it. (Andres Salomon)
+
+ * [IA64] 058-ia64_binfmt_elf_bug_out.dpatch
+ Returning early from ia64_elf32_init in the case of failures
+ could be problematic. Instead of doing that, call BUG(). (Andres Salomon)
+
+ * [IA64] 059-ia64_unwind_stack_check.dpatch
+ Add a an additional sanity check to ia64's unw_unwind_to_user().
+ (Andres Salomon)
+
+ * [ALSA] 060-alsa_cs4231_lib_ifdef_typo.dpatch
+ cs4231_lib.c has an #ifdef typo; s/SNDRV_DEBUGq_MCE/SNDRV_DEBUG_MCE/.
+ (Andres Salomon)
+
+ * [ALSA] 061-alsa_es18xx_ifdef_typo.dpatch
+ es18xx.c also has an ifdef typo; s/CONFIG_PNP_/CONFIG_PNP/.
+ (Andres Salomon)
+
+ * [ALSA] 062-alsa_sscape_user_copy_check.dpatch
+ The sscape driver does a __copy_to_user without actually checking to
+ see whether it succeeds. This patch makes it check the result.
+ (Andres Salomon)
+
+ * [ALSA] 063-alsa_opl4_build_fix.dpatch
+ Build snd-opl3-lib when SND_OPL4_LIB is enabled. (Andres Salomon)
+
+ * [ALSA] 064-alsa_usbaudio_disconnect.dpatch
+ Return -EBADFD when a usbaudio device is disconnected. (Andres Salomon)
+
+ * [ALSA] 065-alsa_vx_kcalloc.dpatch
+ The vx driver allocates enough size for a pointer, when it should
+ be allocating enough size for a struct vx_core_t. (Andres Salomon)
+
+ * 066-ibmvscsi_probe_delay_loop_fix.dpatch
+ The ibmvscsi driver's probe function could potentially exit the delay loop
+ before the adapter has finished initializing (hostdata->request_limit == 0),
+ and thus end up not scanning for drives. (Andres Salomon)
+
+ * 067-scsi_gdth_pci_map_sg.dpatch
+ In gdth driver, drop DMA/page mapping from gdth_copy_internal_data(); it's
+ unnecessary, and buggy. (Andres Salomon)
+
+ * 068-scsi_sd_read_capacity_LBD_bail.dpatch
+ For scsi disks, if the disk capacity is too large for what's configured
+ in the kernel, don't even attempt to use the disk. (Andres Salomon)
+
+ * [ALSA] 069-alsa_sscape_upload_firmware_len.dpatch
+ This patch does two things; the first is a cleanup of calls to
+ verify_area (replaced w/ access_oks) in the sscape driver that I was
+ too lazy to strip out; the second is a fixup of the length handling
+ of firmware in upload_dma_data. If __copy_from_user fails to copy data,
+ the number of failed bytes wasn't kept track of. (Andres Salomon)
+
+ * [ALSA] 070-alsa_rme9652_hdsp_get_autosync.dpatch
+ rme9652's snd_hdsp_get_autosync_ref() should be getting the value
+ of hdsp_autosync_ref, not hdsp_pref_sync_ref. (Andres Salomon)
+
+ * [ALSA] 071-alsa_creation_order_fixes.dpatch
+ This fixes the creation order for a bunch of sound drivers. Some
+ drivers were creating /proc entries and registering callback functions that
+ required driver structs that had not yet been initialized.
+ (Andres Salomon)
+
+ * 072-sctp_do_bind_random_port.dpatch
+ Fix bug within sctp_do_bind(); for ephemeral ports, set bp->port earlier, so that addr actually gets the correct port (inside sctp_add_bind_addr).
+ (Andres Salomon)
+
+ * [USB] 073-usb_gadget_serial_free_ports.dpatch
+ Inside gs_free_ports: don't deref memory that's already been freed.
+ (Andres Salomon)
+
+ * [USB] 074-usb_makefile_fixes.dpatch
+ Update makefile for sl811(-hcd) and dc2xx drivers. (Andres Salomon)
+
+ * 075-acpiphp_ibm_module_parm_perm.dpatch
+ Fix permissions passed to module_param() in IBM pci hotplug driver.
+ (Andres Salomon)
+
+ * 076-i2c_ali1563_devinit_fixes.dpatch
+ Fix up probe and exit functions in i2c-ali1563 driver to use proper
+ __devinit and __devexit attribs. (Andres Salomon)
+
+ * [EXT3] 077-ext3_journal_abort_handle_silence.dpatch
+ For aborted transaction, only spew errors the first time to avoid
+ a flood of errors. (Andres Salomon)
+
+ * [JBD] 078-jbd_journal_revoke_graceful_double_delete.dpatch
+ journal_revoke may try to delete a metadata block twice; this patch
+ allows a graceful recovery, instead of a BUG(). (Andres Salomon)
+
+ * [I386] 079-i386_timer_resume_slowdown.dpatch
+ After resume, make time run at normal speed. Thanks to
+ Daniel Drake <dsd@gentoo.org> for pointing this one out. (Andres Salomon)
+
+ * 080-kernel_sched_might_sleep_ignore_if_oopsed.dpatch
+ Make __might_sleep() a no-op if the kernel has oopsed. (Andres Salomon)
+
+ * [IA64] 081-ia64_early_sn_setup_nested_loop.dpatch
+ early_sn_setup has a nested loop that uses the same loop variable
+ as the outer loop. This patch fixes that. (Andres Salomon)
+
+ * [IDE] 082-ide_it8172_init_return_failure.dpatch
+ it8172_init_one returns 1 instead of -ENODEV in probe function. The
+ pci subsystem considers that to be a success, when it should be a failure.
+ (Andres Salomon)
+
+ * [X86-64] 083-x86_64_switch_mm_context_race.dpatch
+ Fix race in x86-64 SMP TLB handling, when context switching.
+ (Andres Salomon)
+
+ * [I386/X86-64] 084-smp_nmi_watchdog_race.dpatch
+ Ensure that if a cpu takes too long to come up, the NMI
+ watchdog check doesn't think it's having problems. (Andres Salomon)
+
+ * [IA64] 085-ia64_irq_reg_typo.dpatch
+ Fix typo of register name; s/_IA64_REG_AR_SP/_IA64_REG_SP/.
+ (Andres Salomon)
+
+ * [I386] 086-i386_cpufreq_powernow_k8_acpi_error.dpatch
+ If powernowk8_cpu_init() has a problem after it has initted acpi
+ stuff, make sure to call the appropriate acpi exit routines before
+ returning. (Andres Salomon)
+
+ * [EXT3] 087-ext3_graceful_corruption_fixes.dpatch
+ This patch makes ext3 handle instances of corruption more gracefully.
+ It also changes __ext3_journal_forget (which 078-jbd_journal_revoke*.dpatch
+ needs). (Andres Salomon)
+
-- Sven Luther <luther@debian.org> Mon, 7 Feb 2005 14:09:05 +0100
kernel-source-2.6.10 (2.6.10-4) unstable; urgency=low
Added: trunk/kernel/source/kernel-source-2.6.10-2.6.10/debian/patches/051-md_sync_page_io_max_vecs.dpatch
===================================================================
--- trunk/kernel/source/kernel-source-2.6.10-2.6.10/debian/patches/051-md_sync_page_io_max_vecs.dpatch 2005-02-07 15:13:28 UTC (rev 2454)
+++ trunk/kernel/source/kernel-source-2.6.10-2.6.10/debian/patches/051-md_sync_page_io_max_vecs.dpatch 2005-02-07 20:27:20 UTC (rev 2455)
@@ -0,0 +1,74 @@
+#! /bin/sh -e
+## <PATCHNAME>.dpatch by <PATCH_AUTHOR@EMAI>
+##
+## All lines beginning with `## DP:' are a description of the patch.
+## DP: Description: [PATCH] Fix md using bio on stack with bio clones
+## DP: Patch author: axboe@suse.de
+## DP: Upstream status: backported
+
+. $(dirname $0)/DPATCH
+
+@DPATCH@
+# This is a BitKeeper generated diff -Nru style patch.
+#
+# ChangeSet
+# 2005/01/21 10:27:36-08:00 axboe@suse.de
+# [PATCH] Fix md using bio on stack with bio clones
+#
+# If md resides on top of a driver using bio_clone() (such as dm), it will
+# oops the kernel due to md submitting a botched bio that has a veclist but
+# doesn't have bio->bi_max_vecs set.
+#
+# Signed-off-by: Jens Axboe <axboe@suse.de>
+# Signed-off-by: Linus Torvalds <torvalds@osdl.org>
+#
+# drivers/md/md.c
+# 2005/01/19 04:23:30-08:00 axboe@suse.de +13 -16
+# Fix md using bio on stack with bio clones
+#
+diff -Nru a/drivers/md/md.c b/drivers/md/md.c
+--- a/drivers/md/md.c 2005-01-22 00:16:02 -08:00
++++ b/drivers/md/md.c 2005-01-22 00:16:02 -08:00
+@@ -332,29 +332,26 @@
+ static int sync_page_io(struct block_device *bdev, sector_t sector, int size,
+ struct page *page, int rw)
+ {
+- struct bio bio;
+- struct bio_vec vec;
++ struct bio *bio = bio_alloc(GFP_KERNEL, 1);
+ struct completion event;
++ int ret;
++
++ bio_get(bio);
+
+ rw |= (1 << BIO_RW_SYNC);
+
+- bio_init(&bio);
+- bio.bi_io_vec = &vec;
+- vec.bv_page = page;
+- vec.bv_len = size;
+- vec.bv_offset = 0;
+- bio.bi_vcnt = 1;
+- bio.bi_idx = 0;
+- bio.bi_size = size;
+- bio.bi_bdev = bdev;
+- bio.bi_sector = sector;
++ bio->bi_bdev = bdev;
++ bio->bi_sector = sector;
++ bio_add_page(bio, page, size, 0);
+ init_completion(&event);
+- bio.bi_private = &event;
+- bio.bi_end_io = bi_complete;
+- submit_bio(rw, &bio);
++ bio->bi_private = &event;
++ bio->bi_end_io = bi_complete;
++ submit_bio(rw, bio);
+ wait_for_completion(&event);
+
+- return test_bit(BIO_UPTODATE, &bio.bi_flags);
++ ret = test_bit(BIO_UPTODATE, &bio->bi_flags);
++ bio_put(bio);
++ return ret;
+ }
+
+ static int read_disk_sb(mdk_rdev_t * rdev)
Added: trunk/kernel/source/kernel-source-2.6.10-2.6.10/debian/patches/052-vfat_valid_longname_proper_return.dpatch
===================================================================
--- trunk/kernel/source/kernel-source-2.6.10-2.6.10/debian/patches/052-vfat_valid_longname_proper_return.dpatch 2005-02-07 15:13:28 UTC (rev 2454)
+++ trunk/kernel/source/kernel-source-2.6.10-2.6.10/debian/patches/052-vfat_valid_longname_proper_return.dpatch 2005-02-07 20:27:20 UTC (rev 2455)
@@ -0,0 +1,80 @@
+#! /bin/sh -e
+## <PATCHNAME>.dpatch by <PATCH_AUTHOR@EMAI>
+##
+## All lines beginning with `## DP:' are a description of the patch.
+## DP: Description: [PATCH] fat: Return better error codes from vfat_valid_longname()
+## DP: Patch author: hirofumi@mail.parknet.co.jp
+## DP: Upstream status: backported
+
+. $(dirname $0)/DPATCH
+
+@DPATCH@
+# This is a BitKeeper generated diff -Nru style patch.
+#
+# ChangeSet
+# 2005/01/21 08:12:30-08:00 hirofumi@mail.parknet.co.jp
+# [PATCH] fat: Return better error codes from vfat_valid_longname()
+#
+# From Rene Scharfe <rene.scharfe@lsrfire.ath.cx>
+#
+# Fix error code.
+#
+# Signed-off-by: OGAWA Hirofumi <hirofumi@mail.parknet.co.jp>
+# Signed-off-by: Andrew Morton <akpm@osdl.org>
+# Signed-off-by: Linus Torvalds <torvalds@osdl.org>
+#
+# fs/vfat/namei.c
+# 2005/01/20 21:29:21-08:00 hirofumi@mail.parknet.co.jp +9 -8
+# fat: Return better error codes from vfat_valid_longname()
+#
+diff -Nru a/fs/vfat/namei.c b/fs/vfat/namei.c
+--- a/fs/vfat/namei.c 2005-01-22 01:00:37 -08:00
++++ b/fs/vfat/namei.c 2005-01-22 01:00:37 -08:00
+@@ -189,10 +189,10 @@
+
+ static int vfat_valid_longname(const unsigned char *name, unsigned int len)
+ {
+- if (len && name[len-1] == ' ')
+- return 0;
++ if (name[len - 1] == ' ')
++ return -EINVAL;
+ if (len >= 256)
+- return 0;
++ return -ENAMETOOLONG;
+
+ /* MS-DOS "device special files" */
+ if (len == 3 || (len > 3 && name[3] == '.')) { /* basename == 3 */
+@@ -200,18 +200,18 @@
+ !strnicmp(name, "con", 3) ||
+ !strnicmp(name, "nul", 3) ||
+ !strnicmp(name, "prn", 3))
+- return 0;
++ return -EINVAL;
+ }
+ if (len == 4 || (len > 4 && name[4] == '.')) { /* basename == 4 */
+ /* "com1", "com2", ... */
+ if ('1' <= name[3] && name[3] <= '9') {
+ if (!strnicmp(name, "com", 3) ||
+ !strnicmp(name, "lpt", 3))
+- return 0;
++ return -EINVAL;
+ }
+ }
+
+- return 1;
++ return 0;
+ }
+
+ static int vfat_find_form(struct inode *dir, unsigned char *name)
+@@ -614,8 +614,9 @@
+ loff_t offset;
+
+ *slots = 0;
+- if (!vfat_valid_longname(name, len))
+- return -EINVAL;
++ res = vfat_valid_longname(name, len);
++ if (res)
++ return res;
+
+ if(!(page = __get_free_page(GFP_KERNEL)))
+ return -ENOMEM;
Added: trunk/kernel/source/kernel-source-2.6.10-2.6.10/debian/patches/053-ipmi_unhandled_message_counting.dpatch
===================================================================
--- trunk/kernel/source/kernel-source-2.6.10-2.6.10/debian/patches/053-ipmi_unhandled_message_counting.dpatch 2005-02-07 15:13:28 UTC (rev 2454)
+++ trunk/kernel/source/kernel-source-2.6.10-2.6.10/debian/patches/053-ipmi_unhandled_message_counting.dpatch 2005-02-07 20:27:20 UTC (rev 2455)
@@ -0,0 +1,89 @@
+#! /bin/sh -e
+## <PATCHNAME>.dpatch by <PATCH_AUTHOR@EMAI>
+##
+## All lines beginning with `## DP:' are a description of the patch.
+## DP: Description: [PATCH] Minor IPMI driver updates
+## DP: Patch author: minyard@acm.org
+## DP: Upstream status: backported
+
+. $(dirname $0)/DPATCH
+
+@DPATCH@
+# This is a BitKeeper generated diff -Nru style patch.
+#
+# ChangeSet
+# 2005/01/21 08:08:29-08:00 minyard@acm.org
+# [PATCH] Minor IPMI driver updates
+#
+# This patch fixes counting of unhandled messages. Messages that were
+# handled internally by the driver (to the NULL user) were miscounted as
+# unhanlded responses. This counts them properly.
+#
+# This patch also fixes the DMI 16-byte setting, which was set as a 16-bit
+# setting.
+#
+# It also uses the right value to initilize the address memory when using a
+# memory-based interface.
+#
+# Signed-off-by: Corey Minyard <minyard@acm.org>
+# Signed-off-by: Andrew Morton <akpm@osdl.org>
+# Signed-off-by: Linus Torvalds <torvalds@osdl.org>
+#
+# drivers/char/ipmi/ipmi_msghandler.c
+# 2005/01/20 21:00:51-08:00 minyard@acm.org +10 -5
+# Minor IPMI driver updates
+#
+# drivers/char/ipmi/ipmi_si_intf.c
+# 2005/01/20 21:00:51-08:00 minyard@acm.org +4 -3
+# Minor IPMI driver updates
+#
+diff -Nru a/drivers/char/ipmi/ipmi_msghandler.c b/drivers/char/ipmi/ipmi_msghandler.c
+--- a/drivers/char/ipmi/ipmi_msghandler.c 2005-01-22 01:17:55 -08:00
++++ b/drivers/char/ipmi/ipmi_msghandler.c 2005-01-22 01:17:55 -08:00
+@@ -2301,12 +2301,17 @@
+
+ if (!found) {
+ /* Special handling for NULL users. */
+- if (!recv_msg->user && intf->null_user_handler)
++ if (!recv_msg->user && intf->null_user_handler){
+ intf->null_user_handler(intf, msg);
+- /* The user for the message went away, so give up. */
+- spin_lock_irqsave(&intf->counter_lock, flags);
+- intf->unhandled_local_responses++;
+- spin_unlock_irqrestore(&intf->counter_lock, flags);
++ spin_lock_irqsave(&intf->counter_lock, flags);
++ intf->handled_local_responses++;
++ spin_unlock_irqrestore(&intf->counter_lock, flags);
++ }else{
++ /* The user for the message went away, so give up. */
++ spin_lock_irqsave(&intf->counter_lock, flags);
++ intf->unhandled_local_responses++;
++ spin_unlock_irqrestore(&intf->counter_lock, flags);
++ }
+ ipmi_free_recv_msg(recv_msg);
+ } else {
+ struct ipmi_system_interface_addr *smi_addr;
+diff -Nru a/drivers/char/ipmi/ipmi_si_intf.c b/drivers/char/ipmi/ipmi_si_intf.c
+--- a/drivers/char/ipmi/ipmi_si_intf.c 2005-01-22 01:17:55 -08:00
++++ b/drivers/char/ipmi/ipmi_si_intf.c 2005-01-22 01:17:55 -08:00
+@@ -1299,7 +1299,7 @@
+ memset(info, 0, sizeof(*info));
+
+ info->io_setup = mem_setup;
+- info->io.info = (void *) addrs[intf_num];
++ info->io.info = &addrs[intf_num];
+ info->io.addr = NULL;
+ info->io.regspacing = regspacings[intf_num];
+ if (!info->io.regspacing)
+@@ -1587,8 +1587,9 @@
+ case 0x01: /* 32-bit boundaries */
+ ipmi_data->offset = 4;
+ break;
+- case 0x02: /* 16-bit boundaries */
+- ipmi_data->offset = 2;
++ case 0x02: /* 16-byte boundaries */
++ ipmi_data->offset = 16;
++ break;
+ default:
+ printk("ipmi_si: Unknown SMBIOS IPMI Base Addr"
+ " Modifier: 0x%x\n", reg_spacing);
Added: trunk/kernel/source/kernel-source-2.6.10-2.6.10/debian/patches/054-ext3_journal_abort_before_panic.dpatch
===================================================================
--- trunk/kernel/source/kernel-source-2.6.10-2.6.10/debian/patches/054-ext3_journal_abort_before_panic.dpatch 2005-02-07 15:13:28 UTC (rev 2454)
+++ trunk/kernel/source/kernel-source-2.6.10-2.6.10/debian/patches/054-ext3_journal_abort_before_panic.dpatch 2005-02-07 20:27:20 UTC (rev 2455)
@@ -0,0 +1,55 @@
+#! /bin/sh -e
+## <PATCHNAME>.dpatch by <PATCH_AUTHOR@EMAI>
+##
+## All lines beginning with `## DP:' are a description of the patch.
+## DP: Description: [PATCH] ext3: commit superblock before panicking
+## DP: Patch author: eric@lammerts.org
+## DP: Upstream status: backported
+
+. $(dirname $0)/DPATCH
+
+@DPATCH@
+# This is a BitKeeper generated diff -Nru style patch.
+#
+# ChangeSet
+# 2005/01/21 08:07:09-08:00 eric@lammerts.org
+# [PATCH] ext3: commit superblock before panicking
+#
+# I have a problem with errors=panic on ext3. When a panic occurs, the error
+# event is not recorded anywhere. So after the reboot, e2fsck doesn't kick
+# in, the file system gets mounted again and the box panics again...
+#
+# Patch below moves the ERRORS_PANIC test down a bit so the journal is
+# aborted before panic() is called.
+#
+# Signed-off-by: Eric Lammerts <eric@lammerts.org>
+# Signed-off-by: Andrew Morton <akpm@osdl.org>
+# Signed-off-by: Linus Torvalds <torvalds@osdl.org>
+#
+# fs/ext3/super.c
+# 2005/01/20 21:00:50-08:00 eric@lammerts.org +3 -3
+# ext3: commit superblock before panicking
+#
+diff -Nru a/fs/ext3/super.c b/fs/ext3/super.c
+--- a/fs/ext3/super.c 2005-01-22 01:32:54 -08:00
++++ b/fs/ext3/super.c 2005-01-22 01:32:54 -08:00
+@@ -155,9 +155,6 @@
+ if (sb->s_flags & MS_RDONLY)
+ return;
+
+- if (test_opt (sb, ERRORS_PANIC))
+- panic ("EXT3-fs (device %s): panic forced after error\n",
+- sb->s_id);
+ if (test_opt (sb, ERRORS_RO)) {
+ printk (KERN_CRIT "Remounting filesystem read-only\n");
+ sb->s_flags |= MS_RDONLY;
+@@ -168,6 +165,9 @@
+ if (journal)
+ journal_abort(journal, -EIO);
+ }
++ if (test_opt(sb, ERRORS_PANIC))
++ panic("EXT3-fs (device %s): panic forced after error\n",
++ sb->s_id);
+ ext3_commit_super(sb, es, 1);
+ }
+
Added: trunk/kernel/source/kernel-source-2.6.10-2.6.10/debian/patches/055-uml_new_thread_race.dpatch
===================================================================
--- trunk/kernel/source/kernel-source-2.6.10-2.6.10/debian/patches/055-uml_new_thread_race.dpatch 2005-02-07 15:13:28 UTC (rev 2454)
+++ trunk/kernel/source/kernel-source-2.6.10-2.6.10/debian/patches/055-uml_new_thread_race.dpatch 2005-02-07 20:27:20 UTC (rev 2455)
@@ -0,0 +1,44 @@
+#! /bin/sh -e
+## <PATCHNAME>.dpatch by <PATCH_AUTHOR@EMAI>
+##
+## All lines beginning with `## DP:' are a description of the patch.
+## DP: Description: [PATCH] uml: fix a stack corruption crash
+## DP: Patch author: jdike@addtoit.com
+## DP: Upstream status: backported
+
+. $(dirname $0)/DPATCH
+
+@DPATCH@
+# This is a BitKeeper generated diff -Nru style patch.
+#
+# ChangeSet
+# 2005/01/21 08:03:15-08:00 jdike@addtoit.com
+# [PATCH] uml: fix a stack corruption crash
+#
+# Fix a race where signals could be handled to the parent of a new process on
+# the kernel stack of the child, corrupting that stack, and crashing UML when
+# the next first runs.
+#
+# Signed-off-by: Jeff Dike <jdike@addtoit.com>
+# Signed-off-by: Andrew Morton <akpm@osdl.org>
+# Signed-off-by: Linus Torvalds <torvalds@osdl.org>
+#
+# arch/um/kernel/skas/process.c
+# 2005/01/20 20:59:16-08:00 jdike@addtoit.com +2 -1
+# uml: fix a stack corruption crash
+#
+diff -Nru a/arch/um/kernel/skas/process.c b/arch/um/kernel/skas/process.c
+--- a/arch/um/kernel/skas/process.c 2005-01-22 01:49:12 -08:00
++++ b/arch/um/kernel/skas/process.c 2005-01-22 01:49:12 -08:00
+@@ -224,9 +224,10 @@
+ block_signals();
+ if(sigsetjmp(fork_buf, 1) == 0)
+ new_thread_proc(stack, handler);
+- set_signals(flags);
+
+ remove_sigstack();
++
++ set_signals(flags);
+ }
+
+ void thread_wait(void *sw, void *fb)
Added: trunk/kernel/source/kernel-source-2.6.10-2.6.10/debian/patches/056-x86_64_acpi_do_suspend_lowlevel_arg.dpatch
===================================================================
--- trunk/kernel/source/kernel-source-2.6.10-2.6.10/debian/patches/056-x86_64_acpi_do_suspend_lowlevel_arg.dpatch 2005-02-07 15:13:28 UTC (rev 2454)
+++ trunk/kernel/source/kernel-source-2.6.10-2.6.10/debian/patches/056-x86_64_acpi_do_suspend_lowlevel_arg.dpatch 2005-02-07 20:27:20 UTC (rev 2455)
@@ -0,0 +1,41 @@
+#! /bin/sh -e
+## <PATCHNAME>.dpatch by <PATCH_AUTHOR@EMAI>
+##
+## All lines beginning with `## DP:' are a description of the patch.
+## DP: Description: [PATCH] x86-64: Fix do_suspend_lowlevel
+## DP: Patch author: venkatesh.pallipadi@intel.com
+## DP: Upstream status: backported
+
+. $(dirname $0)/DPATCH
+
+@DPATCH@
+# This is a BitKeeper generated diff -Nru style patch.
+#
+# ChangeSet
+# 2005/01/21 07:59:42-08:00 venkatesh.pallipadi@intel.com
+# [PATCH] x86-64: Fix do_suspend_lowlevel
+#
+# do_suspend_lowlevel doesn't have an argument anymore, but the assembly code
+# would still test it and fail randomly. Remove the bogus test.
+#
+# Signed-off-by: Andi Kleen <ak@suse.de>
+# Signed-off-by: Andrew Morton <akpm@osdl.org>
+# Signed-off-by: Linus Torvalds <torvalds@osdl.org>
+#
+# arch/x86_64/kernel/acpi/wakeup.S
+# 2005/01/20 20:59:14-08:00 venkatesh.pallipadi@intel.com +0 -3
+# x86-64: Fix do_suspend_lowlevel
+#
+diff -Nru a/arch/x86_64/kernel/acpi/wakeup.S b/arch/x86_64/kernel/acpi/wakeup.S
+--- a/arch/x86_64/kernel/acpi/wakeup.S 2005-01-22 02:09:01 -08:00
++++ b/arch/x86_64/kernel/acpi/wakeup.S 2005-01-22 02:09:01 -08:00
+@@ -429,9 +429,6 @@
+ do_suspend_lowlevel:
+ .LFB5:
+ subq $8, %rsp
+-.LCFI2:
+- testl %edi, %edi
+- jne .L99
+ xorl %eax, %eax
+ call save_processor_state
+
Added: trunk/kernel/source/kernel-source-2.6.10-2.6.10/debian/patches/057-scsi_ioctl_unknown_opcode.dpatch
===================================================================
--- trunk/kernel/source/kernel-source-2.6.10-2.6.10/debian/patches/057-scsi_ioctl_unknown_opcode.dpatch 2005-02-07 15:13:28 UTC (rev 2454)
+++ trunk/kernel/source/kernel-source-2.6.10-2.6.10/debian/patches/057-scsi_ioctl_unknown_opcode.dpatch 2005-02-07 20:27:20 UTC (rev 2455)
@@ -0,0 +1,47 @@
+#! /bin/sh -e
+## <PATCHNAME>.dpatch by <PATCH_AUTHOR@EMAI>
+##
+## All lines beginning with `## DP:' are a description of the patch.
+## DP: Description: scsi_ioctl: only warn about unknown opcodes if they are truly unknown.
+## DP: Patch author: torvalds@ppc970.osdl.org
+## DP: Upstream status: backported
+
+. $(dirname $0)/DPATCH
+
+@DPATCH@
+# This is a BitKeeper generated diff -Nru style patch.
+#
+# ChangeSet
+# 2005/01/20 07:42:05-08:00 torvalds@ppc970.osdl.org
+# scsi_ioctl: only warn about unknown opcodes if they are truly unknown.
+#
+# We could screw up and warn for opcodes that weren't write-safe and the
+# user tried to use without having write permissions.
+#
+# Not so bad in itself, but that also destroyed the cmd type information.
+#
+# Noticed by Michal Schmidt
+#
+# drivers/block/scsi_ioctl.c
+# 2005/01/20 07:41:57-08:00 torvalds@ppc970.osdl.org +1 -1
+# scsi_ioctl: only warn about unknown opcodes if they are truly unknown.
+#
+# We could screw up and warn for opcodes that weren't write-safe and the
+# user tried to use without having write permissions.
+#
+# Not so bad in itself, but that also destroyed the cmd type information.
+#
+# Noticed by Michal Schmidt
+#
+diff -Nru a/drivers/block/scsi_ioctl.c b/drivers/block/scsi_ioctl.c
+--- a/drivers/block/scsi_ioctl.c 2005-01-22 21:20:05 -08:00
++++ b/drivers/block/scsi_ioctl.c 2005-01-22 21:20:05 -08:00
+@@ -199,7 +199,7 @@
+ return 0;
+ }
+
+- if (!(type & CMD_WARNED)) {
++ if (!type) {
+ cmd_type[cmd[0]] = CMD_WARNED;
+ printk(KERN_WARNING "scsi: unknown opcode 0x%02x\n", cmd[0]);
+ }
Added: trunk/kernel/source/kernel-source-2.6.10-2.6.10/debian/patches/058-ia64_binfmt_elf_bug_out.dpatch
===================================================================
--- trunk/kernel/source/kernel-source-2.6.10-2.6.10/debian/patches/058-ia64_binfmt_elf_bug_out.dpatch 2005-02-07 15:13:28 UTC (rev 2454)
+++ trunk/kernel/source/kernel-source-2.6.10-2.6.10/debian/patches/058-ia64_binfmt_elf_bug_out.dpatch 2005-02-07 20:27:20 UTC (rev 2455)
@@ -0,0 +1,60 @@
+#! /bin/sh -e
+## <PATCHNAME>.dpatch by <PATCH_AUTHOR@EMAI>
+##
+## All lines beginning with `## DP:' are a description of the patch.
+## DP: Description: [IA64] binfmt_elf32.c: BUG if insert_vm_struct fails
+## DP: Patch author: tony.luck@intel.com
+## DP: Upstream status: backported
+
+. $(dirname $0)/DPATCH
+
+@DPATCH@
+# This is a BitKeeper generated diff -Nru style patch.
+#
+# ChangeSet
+# 2005/01/22 12:18:41-08:00 tony.luck@intel.com
+# [IA64] binfmt_elf32.c: BUG if insert_vm_struct fails
+#
+# It seems that in ia64_elf32_init, instead of calling return, if we insert
+# an overlapping vma, we should instead BUG(). We should never get into this
+# code path, because the vma's are set above PAGE_OFFSET, and thus a
+# Xmalicious user can not trigger this code path. This change is being
+# suggested mainly for clarity. Thanks to Stephen Tweedie for pointing out
+# that returning early in ia64_elf32_init could have unpredictable results.
+#
+# Signed-off-by: Tony Luck <tony.luck@intel.com>
+#
+# arch/ia64/ia32/binfmt_elf32.c
+# 2005/01/22 12:16:29-08:00 tony.luck@intel.com +3 -3
+# BUG if insert_vm_struct fails
+#
+diff -Nru a/arch/ia64/ia32/binfmt_elf32.c b/arch/ia64/ia32/binfmt_elf32.c
+--- a/arch/ia64/ia32/binfmt_elf32.c 2005-01-22 23:35:01 -08:00
++++ b/arch/ia64/ia32/binfmt_elf32.c 2005-01-22 23:35:01 -08:00
+@@ -103,7 +103,7 @@
+ if (insert_vm_struct(current->mm, vma)) {
+ kmem_cache_free(vm_area_cachep, vma);
+ up_write(¤t->mm->mmap_sem);
+- return;
++ BUG();
+ }
+ }
+ up_write(¤t->mm->mmap_sem);
+@@ -130,7 +130,7 @@
+ if (insert_vm_struct(current->mm, vma)) {
+ kmem_cache_free(vm_area_cachep, vma);
+ up_write(¤t->mm->mmap_sem);
+- return;
++ BUG();
+ }
+ }
+ up_write(¤t->mm->mmap_sem);
+@@ -153,7 +153,7 @@
+ if (insert_vm_struct(current->mm, vma)) {
+ kmem_cache_free(vm_area_cachep, vma);
+ up_write(¤t->mm->mmap_sem);
+- return;
++ BUG();
+ }
+ }
+ up_write(¤t->mm->mmap_sem);
Added: trunk/kernel/source/kernel-source-2.6.10-2.6.10/debian/patches/059-ia64_unwind_stack_check.dpatch
===================================================================
--- trunk/kernel/source/kernel-source-2.6.10-2.6.10/debian/patches/059-ia64_unwind_stack_check.dpatch 2005-02-07 15:13:28 UTC (rev 2454)
+++ trunk/kernel/source/kernel-source-2.6.10-2.6.10/debian/patches/059-ia64_unwind_stack_check.dpatch 2005-02-07 20:27:20 UTC (rev 2455)
@@ -0,0 +1,46 @@
+#! /bin/sh -e
+## <PATCHNAME>.dpatch by <PATCH_AUTHOR@EMAI>
+##
+## All lines beginning with `## DP:' are a description of the patch.
+## DP: Description: [IA64] Sanity check unw_unwind_to_user
+## DP: Patch author: kaos@sgi.com
+## DP: Upstream status: backported
+
+. $(dirname $0)/DPATCH
+
+@DPATCH@
+# This is a BitKeeper generated diff -Nru style patch.
+#
+# ChangeSet
+# 2005/01/22 12:59:23-08:00 kaos@sgi.com
+# [IA64] Sanity check unw_unwind_to_user
+#
+# Signed-off-by: Keith Owens <kaos@sgi.com>
+# Signed-off-by: Tony Luck <tony.luck@intel.com>
+#
+# arch/ia64/kernel/unwind.c
+# 2005/01/22 12:57:36-08:00 kaos@sgi.com +4 -1
+# Sanity check unw_unwind_to_user
+#
+diff -Nru a/arch/ia64/kernel/unwind.c b/arch/ia64/kernel/unwind.c
+--- a/arch/ia64/kernel/unwind.c 2005-01-22 23:36:12 -08:00
++++ b/arch/ia64/kernel/unwind.c 2005-01-22 23:36:12 -08:00
+@@ -1945,7 +1945,7 @@
+ int
+ unw_unwind_to_user (struct unw_frame_info *info)
+ {
+- unsigned long ip;
++ unsigned long ip, sp;
+
+ while (unw_unwind(info) >= 0) {
+ if (unw_get_rp(info, &ip) < 0) {
+@@ -1954,6 +1954,9 @@
+ __FUNCTION__, ip);
+ return -1;
+ }
++ unw_get_sp(info, &sp);
++ if (sp >= (unsigned long)info->task + IA64_STK_OFFSET)
++ break;
+ if (ip < FIXADDR_USER_END)
+ return 0;
+ }
Added: trunk/kernel/source/kernel-source-2.6.10-2.6.10/debian/patches/060-alsa_cs4231_lib_ifdef_typo.dpatch
===================================================================
--- trunk/kernel/source/kernel-source-2.6.10-2.6.10/debian/patches/060-alsa_cs4231_lib_ifdef_typo.dpatch 2005-02-07 15:13:28 UTC (rev 2454)
+++ trunk/kernel/source/kernel-source-2.6.10-2.6.10/debian/patches/060-alsa_cs4231_lib_ifdef_typo.dpatch 2005-02-07 20:27:20 UTC (rev 2455)
@@ -0,0 +1,52 @@
+#! /bin/sh -e
+## <PATCHNAME>.dpatch by <PATCH_AUTHOR@EMAI>
+##
+## All lines beginning with `## DP:' are a description of the patch.
+## DP: Description: [ALSA] ifdef typos: sound_isa_cs423x_cs4231_lib.c
+## DP: Patch author: perex@suse.cz
+## DP: Upstream status: backported
+
+. $(dirname $0)/DPATCH
+
+@DPATCH@
+# This is a BitKeeper generated diff -Nru style patch.
+#
+# ChangeSet
+# 2005/01/03 09:08:30+01:00 perex@suse.cz
+# [ALSA] ifdef typos: sound_isa_cs423x_cs4231_lib.c
+#
+# CS4231 driver
+# Funny typo.
+#
+# Acked-by: Randy Dunlap <rddunlap@osdl.org>
+#
+# Signed-off-by: Domen Puncer <domen@coderock.org>
+# Signed-off-by: Maximilian Attems <janitor@sternwelten.at>
+# Signed-off-by: Takashi Iwai <tiwai@suse.de>
+#
+# sound/isa/cs423x/cs4231_lib.c
+# 2004/11/30 07:33:24+01:00 perex@suse.cz +1 -1
+# [ALSA] ifdef typos: sound_isa_cs423x_cs4231_lib.c
+#
+# D:2004/11/30 14:33:24
+# C:CS4231 driver
+# F:isa/cs423x/cs4231_lib.c:1.45->1.46
+# L:Funny typo.
+# L:
+# L:Acked-by: Randy Dunlap <rddunlap@osdl.org>
+# Signed-off-by: Domen Puncer <domen@coderock.org>
+# Signed-off-by: Maximilian Attems <janitor@sternwelten.at>
+# Signed-off-by: Takashi Iwai <tiwai@suse.de>
+#
+diff -Nru a/sound/isa/cs423x/cs4231_lib.c b/sound/isa/cs423x/cs4231_lib.c
+--- a/sound/isa/cs423x/cs4231_lib.c 2005-01-22 23:37:19 -08:00
++++ b/sound/isa/cs423x/cs4231_lib.c 2005-01-22 23:37:19 -08:00
+@@ -685,7 +685,7 @@
+
+ snd_cs4231_mce_down(chip);
+
+-#ifdef SNDRV_DEBUGq_MCE
++#ifdef SNDRV_DEBUG_MCE
+ snd_printk("init: (1)\n");
+ #endif
+ snd_cs4231_mce_up(chip);
Added: trunk/kernel/source/kernel-source-2.6.10-2.6.10/debian/patches/061-alsa_es18xx_ifdef_typo.dpatch
===================================================================
--- trunk/kernel/source/kernel-source-2.6.10-2.6.10/debian/patches/061-alsa_es18xx_ifdef_typo.dpatch 2005-02-07 15:13:28 UTC (rev 2454)
+++ trunk/kernel/source/kernel-source-2.6.10-2.6.10/debian/patches/061-alsa_es18xx_ifdef_typo.dpatch 2005-02-07 20:27:20 UTC (rev 2455)
@@ -0,0 +1,57 @@
+#! /bin/sh -e
+## <PATCHNAME>.dpatch by <PATCH_AUTHOR@EMAI>
+##
+## All lines beginning with `## DP:' are a description of the patch.
+## DP: Description: [ALSA] ifdef typos: sound_isa_es18xx.c
+## DP: Patch author: perex@suse.cz
+## DP: Upstream status: backported
+
+. $(dirname $0)/DPATCH
+
+@DPATCH@
+# This is a BitKeeper generated diff -Nru style patch.
+#
+# ChangeSet
+# 2005/01/03 09:10:09+01:00 perex@suse.cz
+# [ALSA] ifdef typos: sound_isa_es18xx.c
+#
+# ES18xx driver
+# Changed CONFIG_PNP_ to CONFIG_PNP, also fixed a comment related to
+# another CONFIG_PNP.
+#
+# Signed-off-by: Domen Puncer <domen@coderock.org>
+# Signed-off-by: Takashi Iwai <tiwai@suse.de>
+#
+# sound/isa/es18xx.c
+# 2004/11/30 07:34:07+01:00 perex@suse.cz +2 -2
+# [ALSA] ifdef typos: sound_isa_es18xx.c
+#
+# D:2004/11/30 14:34:07
+# C:ES18xx driver
+# F:isa/es18xx.c:1.51->1.52
+# L:Changed CONFIG_PNP_ to CONFIG_PNP, also fixed a comment related to
+# L:another CONFIG_PNP.
+# Signed-off-by: Domen Puncer <domen@coderock.org>
+# Signed-off-by: Takashi Iwai <tiwai@suse.de>
+#
+diff -Nru a/sound/isa/es18xx.c b/sound/isa/es18xx.c
+--- a/sound/isa/es18xx.c 2005-01-22 23:12:29 -08:00
++++ b/sound/isa/es18xx.c 2005-01-22 23:12:29 -08:00
+@@ -1849,7 +1849,7 @@
+ static int isapnp[SNDRV_CARDS] = {[0 ... (SNDRV_CARDS - 1)] = 1};
+ #endif
+ static long port[SNDRV_CARDS] = SNDRV_DEFAULT_PORT; /* 0x220,0x240,0x260,0x280 */
+-#ifndef CONFIG_PNP_
++#ifndef CONFIG_PNP
+ static long mpu_port[SNDRV_CARDS] = {[0 ... (SNDRV_CARDS - 1)] = -1};
+ #else
+ static long mpu_port[SNDRV_CARDS] = SNDRV_DEFAULT_PORT;
+@@ -1988,7 +1988,7 @@
+ kfree(cfg);
+ return 0;
+ }
+-#endif /* CONFIG_PNP_ */
++#endif /* CONFIG_PNP */
+
+ static int __devinit snd_audiodrive_probe(int dev, struct pnp_card_link *pcard,
+ const struct pnp_card_device_id *pid)
Added: trunk/kernel/source/kernel-source-2.6.10-2.6.10/debian/patches/062-alsa_sscape_user_copy_check.dpatch
===================================================================
--- trunk/kernel/source/kernel-source-2.6.10-2.6.10/debian/patches/062-alsa_sscape_user_copy_check.dpatch 2005-02-07 15:13:28 UTC (rev 2454)
+++ trunk/kernel/source/kernel-source-2.6.10-2.6.10/debian/patches/062-alsa_sscape_user_copy_check.dpatch 2005-02-07 20:27:20 UTC (rev 2455)
@@ -0,0 +1,49 @@
+#! /bin/sh -e
+## <PATCHNAME>.dpatch by <PATCH_AUTHOR@EMAI>
+##
+## All lines beginning with `## DP:' are a description of the patch.
+## DP: Description: [ALSA] check __copy_to_user in sscape_upload_bootblock()
+## DP: Patch author: perex@suse.cz
+## DP: Upstream status: backported
+
+. $(dirname $0)/DPATCH
+
+@DPATCH@
+# This is a BitKeeper generated diff -Nru style patch.
+#
+# ChangeSet
+# 2005/01/03 09:11:10+01:00 perex@suse.cz
+# [ALSA] check __copy_to_user in sscape_upload_bootblock()
+#
+# Sound Scape driver
+# __copy_to_user() is called without checking its return value in
+# sound/isa/sscape.c::sscape_upload_bootblock .
+#
+# Signed-off-by: Jesper Juhl <juhl-lkml@dif.dk>
+# Signed-off-by: Takashi Iwai <tiwai@suse.de>
+#
+# sound/isa/sscape.c
+# 2004/11/30 07:37:33+01:00 perex@suse.cz +2 -1
+# [ALSA] check __copy_to_user in sscape_upload_bootblock()
+#
+# D:2004/11/30 14:37:33
+# C:Sound Scape driver
+# F:isa/sscape.c:1.17->1.18
+# L:__copy_to_user() is called without checking its return value in
+# L:sound/isa/sscape.c::sscape_upload_bootblock .
+# Signed-off-by: Jesper Juhl <juhl-lkml@dif.dk>
+# Signed-off-by: Takashi Iwai <tiwai@suse.de>
+#
+diff -Nru a/sound/isa/sscape.c b/sound/isa/sscape.c
+--- a/sound/isa/sscape.c 2005-01-22 23:12:45 -08:00
++++ b/sound/isa/sscape.c 2005-01-22 23:12:45 -08:00
+@@ -572,7 +572,8 @@
+ snd_printk(KERN_ERR "sscape: timeout reading firmware version\n");
+ ret = -EAGAIN;
+ } else {
+- __copy_to_user(&bb->version, &data, sizeof(bb->version));
++ if (__copy_to_user(&bb->version, &data, sizeof(bb->version)))
++ ret = -EFAULT;
+ }
+ }
+
Added: trunk/kernel/source/kernel-source-2.6.10-2.6.10/debian/patches/063-alsa_opl4_build_fix.dpatch
===================================================================
--- trunk/kernel/source/kernel-source-2.6.10-2.6.10/debian/patches/063-alsa_opl4_build_fix.dpatch 2005-02-07 15:13:28 UTC (rev 2454)
+++ trunk/kernel/source/kernel-source-2.6.10-2.6.10/debian/patches/063-alsa_opl4_build_fix.dpatch 2005-02-07 20:27:20 UTC (rev 2455)
@@ -0,0 +1,45 @@
+#! /bin/sh -e
+## <PATCHNAME>.dpatch by <PATCH_AUTHOR@EMAI>
+##
+## All lines beginning with `## DP:' are a description of the patch.
+## DP: Description: [ALSA] opl4 depends on opl3
+## DP: Patch author: perex@suse.cz
+## DP: Upstream status: backported
+
+. $(dirname $0)/DPATCH
+
+@DPATCH@
+# This is a BitKeeper generated diff -Nru style patch.
+#
+# ChangeSet
+# 2005/01/03 11:00:47+01:00 perex@suse.cz
+# [ALSA] opl4 depends on opl3
+#
+# OPL3
+# Compiling OPL4 doesn't include the snd-opl3-lib. This change in the
+# Makefile enables now the compiling of snd-opl3-lib.o for OPL4 soundcards.
+#
+# Signed-off-by: Martin Langer <martin-langer@gmx.de>
+# Signed-off-by: Takashi Iwai <tiwai@suse.de>
+#
+# sound/drivers/opl3/Makefile
+# 2004/12/06 12:46:27+01:00 perex@suse.cz +1 -0
+# [ALSA] opl4 depends on opl3
+#
+# D:2004/12/06 19:46:27
+# C:OPL3
+# F:drivers/opl3/Makefile:1.22->1.23
+# L:Compiling OPL4 doesn't include the snd-opl3-lib. This change in the
+# L:Makefile enables now the compiling of snd-opl3-lib.o for OPL4 soundcards.
+# Signed-off-by: Martin Langer <martin-langer@gmx.de>
+# Signed-off-by: Takashi Iwai <tiwai@suse.de>
+#
+diff -Nru a/sound/drivers/opl3/Makefile b/sound/drivers/opl3/Makefile
+--- a/sound/drivers/opl3/Makefile 2005-01-22 22:49:12 -08:00
++++ b/sound/drivers/opl3/Makefile 2005-01-22 22:49:12 -08:00
+@@ -18,4 +18,5 @@
+ sequencer = $(if $(subst y,,$(CONFIG_SND_SEQUENCER)),$(if $(1),m),$(if $(CONFIG_SND_SEQUENCER),$(1)))
+
+ obj-$(CONFIG_SND_OPL3_LIB) += snd-opl3-lib.o
++obj-$(CONFIG_SND_OPL4_LIB) += snd-opl3-lib.o
+ obj-$(call sequencer,$(CONFIG_SND_OPL3_LIB)) += snd-opl3-synth.o
Added: trunk/kernel/source/kernel-source-2.6.10-2.6.10/debian/patches/064-alsa_usbaudio_disconnect.dpatch
===================================================================
--- trunk/kernel/source/kernel-source-2.6.10-2.6.10/debian/patches/064-alsa_usbaudio_disconnect.dpatch 2005-02-07 15:13:28 UTC (rev 2454)
+++ trunk/kernel/source/kernel-source-2.6.10-2.6.10/debian/patches/064-alsa_usbaudio_disconnect.dpatch 2005-02-07 20:27:20 UTC (rev 2455)
@@ -0,0 +1,54 @@
+#! /bin/sh -e
+## <PATCHNAME>.dpatch by <PATCH_AUTHOR@EMAI>
+##
+## All lines beginning with `## DP:' are a description of the patch.
+## DP: Description: [ALSA] Return -EBADFD when the device is disconnected
+## DP: Patch author: perex@suse.cz
+## DP: Upstream status: backported
+
+. $(dirname $0)/DPATCH
+
+@DPATCH@
+# This is a BitKeeper generated diff -Nru style patch.
+#
+# ChangeSet
+# 2005/01/03 11:18:07+01:00 perex@suse.cz
+# [ALSA] Return -EBADFD when the device is disconnected
+#
+# USB generic driver
+# The trigger callback returns -EBADFD when the device is disconnected.
+#
+# Signed-off-by: Takashi Iwai <tiwai@suse.de>
+#
+# sound/usb/usbaudio.c
+# 2004/12/16 09:12:51+01:00 perex@suse.cz +4 -1
+# [ALSA] Return -EBADFD when the device is disconnected
+#
+# D:2004/12/16 16:12:51
+# C:USB generic driver
+# F:usb/usbaudio.c:1.112->1.113
+# L:The trigger callback returns -EBADFD when the device is disconnected.
+# Signed-off-by: Takashi Iwai <tiwai@suse.de>
+#
+diff -Nru a/sound/usb/usbaudio.c b/sound/usb/usbaudio.c
+--- a/sound/usb/usbaudio.c 2005-01-22 22:17:09 -08:00
++++ b/sound/usb/usbaudio.c 2005-01-22 22:17:09 -08:00
+@@ -725,7 +725,7 @@
+ subs->running = 0;
+
+ if (!force && subs->stream->chip->shutdown) /* to be sure... */
+- return 0;
++ return -EBADFD;
+
+ async = !can_sleep && async_unlink;
+
+@@ -769,6 +769,9 @@
+ {
+ unsigned int i;
+ int err;
++
++ if (subs->stream->chip->shutdown)
++ return -EBADFD;
+
+ for (i = 0; i < subs->nurbs; i++) {
+ snd_assert(subs->dataurb[i].urb, return -EINVAL);
Added: trunk/kernel/source/kernel-source-2.6.10-2.6.10/debian/patches/065-alsa_vx_kcalloc.dpatch
===================================================================
--- trunk/kernel/source/kernel-source-2.6.10-2.6.10/debian/patches/065-alsa_vx_kcalloc.dpatch 2005-02-07 15:13:28 UTC (rev 2454)
+++ trunk/kernel/source/kernel-source-2.6.10-2.6.10/debian/patches/065-alsa_vx_kcalloc.dpatch 2005-02-07 20:27:20 UTC (rev 2455)
@@ -0,0 +1,44 @@
+#! /bin/sh -e
+## <PATCHNAME>.dpatch by <PATCH_AUTHOR@EMAI>
+##
+## All lines beginning with `## DP:' are a description of the patch.
+## DP: Description: [ALSA] Fix memory corruption
+## DP: Patch author: perex@suse.cz
+## DP: Upstream status: backported
+
+. $(dirname $0)/DPATCH
+
+@DPATCH@
+# This is a BitKeeper generated diff -Nru style patch.
+#
+# ChangeSet
+# 2005/01/03 11:19:17+01:00 perex@suse.cz
+# [ALSA] Fix memory corruption
+#
+# Digigram VX core
+# Fixed the memory corruption by the wrong sized kmalloc.
+#
+# Signed-off-by: Takashi Iwai <tiwai@suse.de>
+#
+# sound/drivers/vx/vx_core.c
+# 2004/12/20 04:03:54+01:00 perex@suse.cz +1 -1
+# [ALSA] Fix memory corruption
+#
+# D:2004/12/20 11:03:54
+# C:Digigram VX core
+# F:drivers/vx/vx_core.c:1.9->1.10
+# L:Fixed the memory corruption by the wrong sized kmalloc.
+# Signed-off-by: Takashi Iwai <tiwai@suse.de>
+#
+diff -Nru a/sound/drivers/vx/vx_core.c b/sound/drivers/vx/vx_core.c
+--- a/sound/drivers/vx/vx_core.c 2005-01-22 22:17:34 -08:00
++++ b/sound/drivers/vx/vx_core.c 2005-01-22 22:17:34 -08:00
+@@ -734,7 +734,7 @@
+
+ snd_assert(card && hw && ops, return NULL);
+
+- chip = kcalloc(1, sizeof(chip) + extra_size, GFP_KERNEL);
++ chip = kcalloc(1, sizeof(*chip) + extra_size, GFP_KERNEL);
+ if (! chip) {
+ snd_printk(KERN_ERR "vx_core: no memory\n");
+ return NULL;
Added: trunk/kernel/source/kernel-source-2.6.10-2.6.10/debian/patches/066-ibmvscsi_probe_delay_loop_fix.dpatch
===================================================================
--- trunk/kernel/source/kernel-source-2.6.10-2.6.10/debian/patches/066-ibmvscsi_probe_delay_loop_fix.dpatch 2005-02-07 15:13:28 UTC (rev 2454)
+++ trunk/kernel/source/kernel-source-2.6.10-2.6.10/debian/patches/066-ibmvscsi_probe_delay_loop_fix.dpatch 2005-02-07 20:27:20 UTC (rev 2455)
@@ -0,0 +1,39 @@
+#! /bin/sh -e
+## <PATCHNAME>.dpatch by <PATCH_AUTHOR@EMAI>
+##
+## All lines beginning with `## DP:' are a description of the patch.
+## DP: Description: [PATCH] ibmvscsi: fix loop exit condition
+## DP: Patch author: sleddog@us.ibm.com
+## DP: Upstream status: backported
+
+. $(dirname $0)/DPATCH
+
+@DPATCH@
+# This is a BitKeeper generated diff -Nru style patch.
+#
+# ChangeSet
+# 2004/12/31 13:29:49-06:00 sleddog@us.ibm.com
+# [PATCH] ibmvscsi: fix loop exit condition
+#
+# Fix a bug where we could fall out of our delay loop and then forget to
+# scan for drives.
+#
+# Signed-off-by: Dave Boutcher <boutcher@us.ibm.com>
+# Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
+#
+# drivers/scsi/ibmvscsi/ibmvscsi.c
+# 2004/12/31 09:59:39-06:00 sleddog@us.ibm.com +2 -2
+# ibmvscsi: fix loop exit condition
+#
+diff -Nru a/drivers/scsi/ibmvscsi/ibmvscsi.c b/drivers/scsi/ibmvscsi/ibmvscsi.c
+--- a/drivers/scsi/ibmvscsi/ibmvscsi.c 2005-01-22 21:53:57 -08:00
++++ b/drivers/scsi/ibmvscsi/ibmvscsi.c 2005-01-22 21:53:57 -08:00
+@@ -1332,6 +1332,6 @@
+ */
+ for (wait_switch = jiffies + (init_timeout * HZ);
+ time_before(jiffies, wait_switch) &&
+- atomic_read(&hostdata->request_limit) < 0;) {
++ atomic_read(&hostdata->request_limit) < 2;) {
+
+ set_current_state(TASK_UNINTERRUPTIBLE);
+ schedule_timeout(HZ / 100);
Added: trunk/kernel/source/kernel-source-2.6.10-2.6.10/debian/patches/067-scsi_gdth_pci_map_sg.dpatch
===================================================================
--- trunk/kernel/source/kernel-source-2.6.10-2.6.10/debian/patches/067-scsi_gdth_pci_map_sg.dpatch 2005-02-07 15:13:28 UTC (rev 2454)
+++ trunk/kernel/source/kernel-source-2.6.10-2.6.10/debian/patches/067-scsi_gdth_pci_map_sg.dpatch 2005-02-07 20:27:20 UTC (rev 2455)
@@ -0,0 +1,89 @@
+#! /bin/sh -e
+## <PATCHNAME>.dpatch by <PATCH_AUTHOR@EMAI>
+##
+## All lines beginning with `## DP:' are a description of the patch.
+## DP: Description: [PATCH] gdth buggy page mapping
+## DP: Patch author: axboe@suse.de
+## DP: Upstream status: backported
+
+. $(dirname $0)/DPATCH
+
+@DPATCH@
+# This is a BitKeeper generated diff -Nru style patch.
+#
+# ChangeSet
+# 2005/01/03 10:07:16-06:00 axboe@suse.de
+# [PATCH] gdth buggy page mapping
+#
+# Just tripped over a bug report for the SUSE kernel where gdth would
+# crash on a 32G opteron, turned out that the gdth_internal_copy() sg
+# handling was really buggy. After fixing this I wanted to do the same for
+# mainline, but I can see that a vain attempt was already made to fix it.
+# Unfortunately it wasn't complete, and on top of that there's room for
+# improvement.
+#
+# The current code is buggy on highmem, as page_address() will not yield a
+# valid kernel address causing a NULL pointer dereference. The current
+# code also doesn't unmap the sg list if it sees a NULL sl->page. In fact,
+# the whole sg mapping looks really strange, why on earth would you be
+# mapping the sglist for dma when you are only going to copy from it?
+#
+# This patch corrects both errors - correctly maps in the page, and kills
+# the pci_map_sg/pci_unmap_sg calls completely. If someone could test
+# this, that would be great.
+#
+# Signed-off-by: Jens Axboe <axboe@suse.de>
+# Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
+#
+# drivers/scsi/gdth.c
+# 2004/11/23 13:13:04-06:00 axboe@suse.de +9 -9
+# gdth buggy page mapping
+#
+diff -Nru a/drivers/scsi/gdth.c b/drivers/scsi/gdth.c
+--- a/drivers/scsi/gdth.c 2005-01-22 21:28:53 -08:00
++++ b/drivers/scsi/gdth.c 2005-01-22 21:28:53 -08:00
+@@ -2708,7 +2708,6 @@
+ ushort cpsum,cpnow;
+ struct scatterlist *sl;
+ gdth_ha_str *ha;
+- int sgcnt;
+ char *address;
+
+ cpcount = count<=(ushort)scp->bufflen ? count:(ushort)scp->bufflen;
+@@ -2717,9 +2716,9 @@
+ if (scp->use_sg) {
+ sl = (struct scatterlist *)scp->request_buffer;
+ #if LINUX_VERSION_CODE >= KERNEL_VERSION(2,4,13)
+- sgcnt = pci_map_sg(ha->pdev,sl,scp->use_sg,PCI_DMA_FROMDEVICE);
+- for (i=0,cpsum=0; i<sgcnt; ++i,++sl) {
+- cpnow = (ushort)sg_dma_len(sl);
++ for (i=0,cpsum=0; i<scp->use_sg; ++i,++sl) {
++ unsigned long flags;
++ cpnow = (ushort)sl->length;
+ TRACE(("copy_internal() now %d sum %d count %d %d\n",
+ cpnow,cpsum,cpcount,(ushort)scp->bufflen));
+ if (cpsum+cpnow > cpcount)
+@@ -2730,17 +2729,18 @@
+ hanum);
+ return;
+ }
+- address = (char *)(page_address(sl->page) + sl->offset);
++ local_irq_save(flags);
++ address = kmap_atomic(sl->page, KM_BIO_SRC_IRQ) + sl->offset;
+ memcpy(address,buffer,cpnow);
++ flush_dcache_page(sl->page);
++ kunmap_atomic(address, KM_BIO_SRC_IRQ);
++ local_irq_restore(flags);
+ if (cpsum == cpcount)
+ break;
+ buffer += cpnow;
+ }
+- pci_unmap_sg(ha->pdev,scp->request_buffer,
+- scp->use_sg,PCI_DMA_FROMDEVICE);
+ #else
+- sgcnt = scp->use_sg;
+- for (i=0,cpsum=0; i<sgcnt; ++i,++sl) {
++ for (i=0,cpsum=0; i<scp->use_sg; ++i,++sl) {
+ cpnow = (ushort)sl->length;
+ TRACE(("copy_internal() now %d sum %d count %d %d\n",
+ cpnow,cpsum,cpcount,(ushort)scp->bufflen));
Added: trunk/kernel/source/kernel-source-2.6.10-2.6.10/debian/patches/068-scsi_sd_read_capacity_LBD_bail.dpatch
===================================================================
--- trunk/kernel/source/kernel-source-2.6.10-2.6.10/debian/patches/068-scsi_sd_read_capacity_LBD_bail.dpatch 2005-02-07 15:13:28 UTC (rev 2454)
+++ trunk/kernel/source/kernel-source-2.6.10-2.6.10/debian/patches/068-scsi_sd_read_capacity_LBD_bail.dpatch 2005-02-07 20:27:20 UTC (rev 2455)
@@ -0,0 +1,45 @@
+#! /bin/sh -e
+## <PATCHNAME>.dpatch by <PATCH_AUTHOR@EMAI>
+##
+## All lines beginning with `## DP:' are a description of the patch.
+## DP: Description: [PATCH] fix read capacity for large disks when CONFIG_LBD=n
+## DP: Patch author: tonyb@cybernetics.com
+## DP: Upstream status: backported
+
+. $(dirname $0)/DPATCH
+
+@DPATCH@
+# This is a BitKeeper generated diff -Nru style patch.
+#
+# ChangeSet
+# 2005/01/06 15:48:50-05:00 tonyb@cybernetics.com
+# [PATCH] fix read capacity for large disks when CONFIG_LBD=n
+#
+# We shouldn't configure an device that requires LBD if the kernel
+# doesn't suppoprt it (because we won't be able to see most of it), so
+# set the capacity to zero in this case.
+#
+# Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
+#
+# drivers/scsi/sd.c
+# 2005/01/04 08:03:59-05:00 tonyb@cybernetics.com +5 -2
+# fix read capacity for large disks when CONFIG_LBD=n
+#
+diff -Nru a/drivers/scsi/sd.c b/drivers/scsi/sd.c
+--- a/drivers/scsi/sd.c 2005-01-22 21:31:47 -08:00
++++ b/drivers/scsi/sd.c 2005-01-22 21:31:47 -08:00
+@@ -1082,9 +1082,12 @@
+ " READ CAPACITY(16).\n", diskname);
+ longrc = 1;
+ goto repeat;
+- } else {
+- printk(KERN_ERR "%s: too big for kernel. Assuming maximum 2Tb\n", diskname);
+ }
++ printk(KERN_ERR "%s: too big for this kernel. Use a "
++ "kernel compiled with support for large block "
++ "devices.\n", diskname);
++ sdkp->capacity = 0;
++ goto got_data;
+ }
+ sdkp->capacity = 1 + (((sector_t)buffer[0] << 24) |
+ (buffer[1] << 16) |
Added: trunk/kernel/source/kernel-source-2.6.10-2.6.10/debian/patches/069-alsa_sscape_upload_firmware_len.dpatch
===================================================================
--- trunk/kernel/source/kernel-source-2.6.10-2.6.10/debian/patches/069-alsa_sscape_upload_firmware_len.dpatch 2005-02-07 15:13:28 UTC (rev 2454)
+++ trunk/kernel/source/kernel-source-2.6.10-2.6.10/debian/patches/069-alsa_sscape_upload_firmware_len.dpatch 2005-02-07 20:27:20 UTC (rev 2455)
@@ -0,0 +1,116 @@
+#! /bin/sh -e
+## <PATCHNAME>.dpatch by <PATCH_AUTHOR@EMAI>
+##
+## All lines beginning with `## DP:' are a description of the patch.
+## DP: Description: [ALSA] Update user-space access from sscape driver
+## DP: Patch author: perex@suse.cz
+## DP: Upstream status: backported
+
+. $(dirname $0)/DPATCH
+
+@DPATCH@
+# This is a BitKeeper generated diff -Nru style patch.
+#
+# ChangeSet
+# 2005/01/03 10:59:39+01:00 perex@suse.cz
+# [ALSA] Update user-space access from sscape driver
+#
+# Sound Scape driver
+# I see that the copy_to/from_user() functions have been updated across
+# Linux 2.4 and 2.6, and that verify_read/write() has been replaced by
+# access_ok(). I have patched the SoundScape driver accordingly.
+#
+# Signed-off-by: Chris Rankin <rankincj@yahoo.com>
+# Signed-off-by: Takashi Iwai <tiwai@suse.de>
+#
+# sound/isa/sscape.c
+# 2004/12/06 08:32:12+01:00 perex@suse.cz +13 -14
+# [ALSA] Update user-space access from sscape driver
+#
+# D:2004/12/06 15:32:12
+# C:Sound Scape driver
+# F:isa/sscape.c:1.18->1.19
+# L:I see that the copy_to/from_user() functions have been updated across
+# L:Linux 2.4 and 2.6, and that verify_read/write() has been replaced by
+# L: access_ok(). I have patched the SoundScape driver accordingly.
+# Signed-off-by: Chris Rankin <rankincj@yahoo.com>
+# Signed-off-by: Takashi Iwai <tiwai@suse.de>
+#
+diff -Nru a/sound/isa/sscape.c b/sound/isa/sscape.c
+--- a/sound/isa/sscape.c 2005-01-22 23:15:48 -08:00
++++ b/sound/isa/sscape.c 2005-01-22 23:15:48 -08:00
+@@ -487,7 +487,7 @@
+ * the userspace pointer ...
+ */
+ len = min(size, dma.bytes);
+- __copy_from_user(dma.area, data, len);
++ len -= __copy_from_user(dma.area, data, len);
+ data += len;
+ size -= len;
+
+@@ -571,9 +571,9 @@
+ if (data < 0) {
+ snd_printk(KERN_ERR "sscape: timeout reading firmware version\n");
+ ret = -EAGAIN;
+- } else {
+- if (__copy_to_user(&bb->version, &data, sizeof(bb->version)))
+- ret = -EFAULT;
++ }
++ else if (__copy_to_user(&bb->version, &data, sizeof(bb->version))) {
++ ret = -EFAULT;
+ }
+ }
+
+@@ -592,7 +592,7 @@
+ {
+ unsigned long flags;
+ char __user *code;
+- int err, ret;
++ int err;
+
+ /*
+ * We are going to have to copy this data into a special
+@@ -602,12 +602,11 @@
+ * NOTE: This buffer is 64K long! That's WAY too big to
+ * copy into a stack-temporary anyway.
+ */
+- if (get_user(code, &mc->code))
++ if ( get_user(code, &mc->code) ||
++ !access_ok(VERIFY_READ, code, SSCAPE_MICROCODE_SIZE) )
+ return -EFAULT;
+- if ((err = verify_area(VERIFY_READ, code, SSCAPE_MICROCODE_SIZE)) != 0)
+- return err;
+
+- if ((ret = upload_dma_data(sscape, code, SSCAPE_MICROCODE_SIZE)) == 0) {
++ if ((err = upload_dma_data(sscape, code, SSCAPE_MICROCODE_SIZE)) == 0) {
+ snd_printk(KERN_INFO "sscape: MIDI firmware loaded\n");
+ }
+
+@@ -617,7 +616,7 @@
+
+ initialise_mpu401(sscape->mpu);
+
+- return ret;
++ return err;
+ }
+
+ /*
+@@ -674,14 +673,14 @@
+ * DMA-able buffer before we can upload it. We shall therefore
+ * just check that the data pointer is valid for now ...
+ */
+- if ((err = verify_area(VERIFY_READ, bb->code, sizeof(bb->code))) != 0)
+- return err;
++ if ( !access_ok(VERIFY_READ, bb->code, sizeof(bb->code)) )
++ return -EFAULT;
+
+ /*
+ * Now check that we can write the firmware version number too...
+ */
+- if ((err = verify_area(VERIFY_WRITE, &bb->version, sizeof(bb->version))) != 0)
+- return err;
++ if ( !access_ok(VERIFY_WRITE, &bb->version, sizeof(bb->version)) )
++ return -EFAULT;
+
+ err = sscape_upload_bootblock(sscape, bb);
+ }
Added: trunk/kernel/source/kernel-source-2.6.10-2.6.10/debian/patches/070-alsa_rme9652_hdsp_get_autosync.dpatch
===================================================================
--- trunk/kernel/source/kernel-source-2.6.10-2.6.10/debian/patches/070-alsa_rme9652_hdsp_get_autosync.dpatch 2005-02-07 15:13:28 UTC (rev 2454)
+++ trunk/kernel/source/kernel-source-2.6.10-2.6.10/debian/patches/070-alsa_rme9652_hdsp_get_autosync.dpatch 2005-02-07 20:27:20 UTC (rev 2455)
@@ -0,0 +1,54 @@
+#! /bin/sh -e
+## <PATCHNAME>.dpatch by <PATCH_AUTHOR@EMAI>
+##
+## All lines beginning with `## DP:' are a description of the patch.
+## DP: Description: [ALSA] Fix invalid 'AutoSync Reference' value
+## DP: Patch author: perex@suse.cz
+## DP: Upstream status: backported
+
+. $(dirname $0)/DPATCH
+
+@DPATCH@
+# This is a BitKeeper generated diff -Nru style patch.
+#
+# ChangeSet
+# 2005/01/03 11:28:17+01:00 perex@suse.cz
+# [ALSA] Fix invalid 'AutoSync Reference' value
+#
+# RME HDSP driver
+# The value returned by controllers for control number 14 ('AutoSync
+# Reference') is incorrect and different from that reported by doing
+# a cat /proc/asound/card0/hdsp.
+# The value reported is not 'AutoSync Reference' but 'Preferred Sync
+# Reference' instead.
+#
+# Signed-off-by: Remy Bruno <remy.bruno@trinnov.com>
+# Signed-off-by: Takashi Iwai <tiwai@suse.de>
+#
+# sound/pci/rme9652/hdsp.c
+# 2004/12/21 10:59:41+01:00 perex@suse.cz +1 -1
+# [ALSA] Fix invalid 'AutoSync Reference' value
+#
+# D:2004/12/21 17:59:41
+# C:RME HDSP driver
+# F:pci/rme9652/hdsp.c:1.76->1.77
+# L:The value returned by controllers for control number 14 ('AutoSync
+# L:Reference') is incorrect and different from that reported by doing
+# L:a cat /proc/asound/card0/hdsp.
+# L:The value reported is not 'AutoSync Reference' but 'Preferred Sync
+# L:Reference' instead.
+# Signed-off-by: Remy Bruno <remy.bruno@trinnov.com>
+# Signed-off-by: Takashi Iwai <tiwai@suse.de>
+#
+diff -Nru a/sound/pci/rme9652/hdsp.c b/sound/pci/rme9652/hdsp.c
+--- a/sound/pci/rme9652/hdsp.c 2005-01-22 21:54:51 -08:00
++++ b/sound/pci/rme9652/hdsp.c 2005-01-22 21:54:51 -08:00
+@@ -2729,7 +2729,7 @@
+ {
+ hdsp_t *hdsp = snd_kcontrol_chip(kcontrol);
+
+- ucontrol->value.enumerated.item[0] = hdsp_pref_sync_ref(hdsp);
++ ucontrol->value.enumerated.item[0] = hdsp_autosync_ref(hdsp);
+ return 0;
+ }
+
Added: trunk/kernel/source/kernel-source-2.6.10-2.6.10/debian/patches/071-alsa_creation_order_fixes.dpatch
===================================================================
--- trunk/kernel/source/kernel-source-2.6.10-2.6.10/debian/patches/071-alsa_creation_order_fixes.dpatch 2005-02-07 15:13:28 UTC (rev 2454)
+++ trunk/kernel/source/kernel-source-2.6.10-2.6.10/debian/patches/071-alsa_creation_order_fixes.dpatch 2005-02-07 20:27:20 UTC (rev 2455)
@@ -0,0 +1,663 @@
+#! /bin/sh -e
+## <PATCHNAME>.dpatch by <PATCH_AUTHOR@EMAI>
+##
+## All lines beginning with `## DP:' are a description of the patch.
+## DP: Description: [ALSA] Fix the order of creation of instances
+## DP: Patch author: perex@suse.cz
+## DP: Upstream status: backported
+
+. $(dirname $0)/DPATCH
+
+@DPATCH@
+# This is a BitKeeper generated diff -Nru style patch.
+#
+# ChangeSet
+# 2005/01/03 14:14:10+01:00 perex@suse.cz
+# [ALSA] Fix the order of creation of instances
+#
+# AZT3328 driver,CMIPCI driver,CS4281 driver,ENS1370/1+ driver
+# Maestro3 driver,SonicVibes driver,CS46xx driver,KORG1212 driver
+# NM256 driver,Trident driver,YMFPCI driver
+# Make sure that the chip instance is created at first before other components.
+# This will fix occasional oops at unloading due to the access to the released
+# resources.
+#
+# Signed-off-by: Takashi Iwai <tiwai@suse.de>
+#
+# sound/pci/azt3328.c
+# 2005/01/03 04:45:31+01:00 perex@suse.cz +4 -4
+# [ALSA] Fix the order of creation of instances
+#
+# D:2005/01/03 11:45:31
+# C:AZT3328 driver,CMIPCI driver,CS4281 driver,ENS1370/1+ driver
+# C:Maestro3 driver,SonicVibes driver,CS46xx driver,KORG1212 driver
+# C:NM256 driver,Trident driver,YMFPCI driver
+# F:pci/azt3328.c:1.23->1.24
+# F:pci/cmipci.c:1.76->1.77
+# F:pci/cs4281.c:1.68->1.69
+# F:pci/ens1370.c:1.73->1.74
+# F:pci/maestro3.c:1.67->1.68
+# F:pci/sonicvibes.c:1.44->1.45
+# F:pci/cs46xx/cs46xx_lib.c:1.92->1.93
+# F:pci/korg1212/korg1212.c:1.52->1.53
+# F:pci/nm256/nm256.c:1.57->1.58
+# F:pci/trident/trident_main.c:1.68->1.69
+# F:pci/ymfpci/ymfpci_main.c:1.63->1.64
+# L:Make sure that the chip instance is created at first before other components.
+# L:This will fix occasional oops at unloading due to the access to the released
+# L:resources.
+# Signed-off-by: Takashi Iwai <tiwai@suse.de>
+#
+# sound/pci/cmipci.c
+# 2005/01/03 04:45:31+01:00 perex@suse.cz +11 -14
+# [ALSA] Fix the order of creation of instances
+#
+# D:2005/01/03 11:45:31
+# C:AZT3328 driver,CMIPCI driver,CS4281 driver,ENS1370/1+ driver
+# C:Maestro3 driver,SonicVibes driver,CS46xx driver,KORG1212 driver
+# C:NM256 driver,Trident driver,YMFPCI driver
+# F:pci/azt3328.c:1.23->1.24
+# F:pci/cmipci.c:1.76->1.77
+# F:pci/cs4281.c:1.68->1.69
+# F:pci/ens1370.c:1.73->1.74
+# F:pci/maestro3.c:1.67->1.68
+# F:pci/sonicvibes.c:1.44->1.45
+# F:pci/cs46xx/cs46xx_lib.c:1.92->1.93
+# F:pci/korg1212/korg1212.c:1.52->1.53
+# F:pci/nm256/nm256.c:1.57->1.58
+# F:pci/trident/trident_main.c:1.68->1.69
+# F:pci/ymfpci/ymfpci_main.c:1.63->1.64
+# L:Make sure that the chip instance is created at first before other components.
+# L:This will fix occasional oops at unloading due to the access to the released
+# L:resources.
+# Signed-off-by: Takashi Iwai <tiwai@suse.de>
+#
+# sound/pci/cs4281.c
+# 2005/01/03 04:45:31+01:00 perex@suse.cz +4 -4
+# [ALSA] Fix the order of creation of instances
+#
+# D:2005/01/03 11:45:31
+# C:AZT3328 driver,CMIPCI driver,CS4281 driver,ENS1370/1+ driver
+# C:Maestro3 driver,SonicVibes driver,CS46xx driver,KORG1212 driver
+# C:NM256 driver,Trident driver,YMFPCI driver
+# F:pci/azt3328.c:1.23->1.24
+# F:pci/cmipci.c:1.76->1.77
+# F:pci/cs4281.c:1.68->1.69
+# F:pci/ens1370.c:1.73->1.74
+# F:pci/maestro3.c:1.67->1.68
+# F:pci/sonicvibes.c:1.44->1.45
+# F:pci/cs46xx/cs46xx_lib.c:1.92->1.93
+# F:pci/korg1212/korg1212.c:1.52->1.53
+# F:pci/nm256/nm256.c:1.57->1.58
+# F:pci/trident/trident_main.c:1.68->1.69
+# F:pci/ymfpci/ymfpci_main.c:1.63->1.64
+# L:Make sure that the chip instance is created at first before other components.
+# L:This will fix occasional oops at unloading due to the access to the released
+# L:resources.
+# Signed-off-by: Takashi Iwai <tiwai@suse.de>
+#
+# sound/pci/cs46xx/cs46xx_lib.c
+# 2005/01/03 04:45:32+01:00 perex@suse.cz +4 -4
+# [ALSA] Fix the order of creation of instances
+#
+# D:2005/01/03 11:45:31
+# C:AZT3328 driver,CMIPCI driver,CS4281 driver,ENS1370/1+ driver
+# C:Maestro3 driver,SonicVibes driver,CS46xx driver,KORG1212 driver
+# C:NM256 driver,Trident driver,YMFPCI driver
+# F:pci/azt3328.c:1.23->1.24
+# F:pci/cmipci.c:1.76->1.77
+# F:pci/cs4281.c:1.68->1.69
+# F:pci/ens1370.c:1.73->1.74
+# F:pci/maestro3.c:1.67->1.68
+# F:pci/sonicvibes.c:1.44->1.45
+# F:pci/cs46xx/cs46xx_lib.c:1.92->1.93
+# F:pci/korg1212/korg1212.c:1.52->1.53
+# F:pci/nm256/nm256.c:1.57->1.58
+# F:pci/trident/trident_main.c:1.68->1.69
+# F:pci/ymfpci/ymfpci_main.c:1.63->1.64
+# L:Make sure that the chip instance is created at first before other components.
+# L:This will fix occasional oops at unloading due to the access to the released
+# L:resources.
+# Signed-off-by: Takashi Iwai <tiwai@suse.de>
+#
+# sound/pci/ens1370.c
+# 2005/01/03 04:45:32+01:00 perex@suse.cz +2 -1
+# [ALSA] Fix the order of creation of instances
+#
+# D:2005/01/03 11:45:31
+# C:AZT3328 driver,CMIPCI driver,CS4281 driver,ENS1370/1+ driver
+# C:Maestro3 driver,SonicVibes driver,CS46xx driver,KORG1212 driver
+# C:NM256 driver,Trident driver,YMFPCI driver
+# F:pci/azt3328.c:1.23->1.24
+# F:pci/cmipci.c:1.76->1.77
+# F:pci/cs4281.c:1.68->1.69
+# F:pci/ens1370.c:1.73->1.74
+# F:pci/maestro3.c:1.67->1.68
+# F:pci/sonicvibes.c:1.44->1.45
+# F:pci/cs46xx/cs46xx_lib.c:1.92->1.93
+# F:pci/korg1212/korg1212.c:1.52->1.53
+# F:pci/nm256/nm256.c:1.57->1.58
+# F:pci/trident/trident_main.c:1.68->1.69
+# F:pci/ymfpci/ymfpci_main.c:1.63->1.64
+# L:Make sure that the chip instance is created at first before other components.
+# L:This will fix occasional oops at unloading due to the access to the released
+# L:resources.
+# Signed-off-by: Takashi Iwai <tiwai@suse.de>
+#
+# sound/pci/korg1212/korg1212.c
+# 2005/01/03 04:45:32+01:00 perex@suse.cz +8 -14
+# [ALSA] Fix the order of creation of instances
+#
+# D:2005/01/03 11:45:31
+# C:AZT3328 driver,CMIPCI driver,CS4281 driver,ENS1370/1+ driver
+# C:Maestro3 driver,SonicVibes driver,CS46xx driver,KORG1212 driver
+# C:NM256 driver,Trident driver,YMFPCI driver
+# F:pci/azt3328.c:1.23->1.24
+# F:pci/cmipci.c:1.76->1.77
+# F:pci/cs4281.c:1.68->1.69
+# F:pci/ens1370.c:1.73->1.74
+# F:pci/maestro3.c:1.67->1.68
+# F:pci/sonicvibes.c:1.44->1.45
+# F:pci/cs46xx/cs46xx_lib.c:1.92->1.93
+# F:pci/korg1212/korg1212.c:1.52->1.53
+# F:pci/nm256/nm256.c:1.57->1.58
+# F:pci/trident/trident_main.c:1.68->1.69
+# F:pci/ymfpci/ymfpci_main.c:1.63->1.64
+# L:Make sure that the chip instance is created at first before other components.
+# L:This will fix occasional oops at unloading due to the access to the released
+# L:resources.
+# Signed-off-by: Takashi Iwai <tiwai@suse.de>
+#
+# sound/pci/maestro3.c
+# 2005/01/03 04:45:32+01:00 perex@suse.cz +13 -19
+# [ALSA] Fix the order of creation of instances
+#
+# D:2005/01/03 11:45:31
+# C:AZT3328 driver,CMIPCI driver,CS4281 driver,ENS1370/1+ driver
+# C:Maestro3 driver,SonicVibes driver,CS46xx driver,KORG1212 driver
+# C:NM256 driver,Trident driver,YMFPCI driver
+# F:pci/azt3328.c:1.23->1.24
+# F:pci/cmipci.c:1.76->1.77
+# F:pci/cs4281.c:1.68->1.69
+# F:pci/ens1370.c:1.73->1.74
+# F:pci/maestro3.c:1.67->1.68
+# F:pci/sonicvibes.c:1.44->1.45
+# F:pci/cs46xx/cs46xx_lib.c:1.92->1.93
+# F:pci/korg1212/korg1212.c:1.52->1.53
+# F:pci/nm256/nm256.c:1.57->1.58
+# F:pci/trident/trident_main.c:1.68->1.69
+# F:pci/ymfpci/ymfpci_main.c:1.63->1.64
+# L:Make sure that the chip instance is created at first before other components.
+# L:This will fix occasional oops at unloading due to the access to the released
+# L:resources.
+# Signed-off-by: Takashi Iwai <tiwai@suse.de>
+#
+# sound/pci/nm256/nm256.c
+# 2005/01/03 04:45:32+01:00 perex@suse.cz +6 -6
+# [ALSA] Fix the order of creation of instances
+#
+# D:2005/01/03 11:45:31
+# C:AZT3328 driver,CMIPCI driver,CS4281 driver,ENS1370/1+ driver
+# C:Maestro3 driver,SonicVibes driver,CS46xx driver,KORG1212 driver
+# C:NM256 driver,Trident driver,YMFPCI driver
+# F:pci/azt3328.c:1.23->1.24
+# F:pci/cmipci.c:1.76->1.77
+# F:pci/cs4281.c:1.68->1.69
+# F:pci/ens1370.c:1.73->1.74
+# F:pci/maestro3.c:1.67->1.68
+# F:pci/sonicvibes.c:1.44->1.45
+# F:pci/cs46xx/cs46xx_lib.c:1.92->1.93
+# F:pci/korg1212/korg1212.c:1.52->1.53
+# F:pci/nm256/nm256.c:1.57->1.58
+# F:pci/trident/trident_main.c:1.68->1.69
+# F:pci/ymfpci/ymfpci_main.c:1.63->1.64
+# L:Make sure that the chip instance is created at first before other components.
+# L:This will fix occasional oops at unloading due to the access to the released
+# L:resources.
+# Signed-off-by: Takashi Iwai <tiwai@suse.de>
+#
+# sound/pci/sonicvibes.c
+# 2005/01/03 04:45:32+01:00 perex@suse.cz +2 -1
+# [ALSA] Fix the order of creation of instances
+#
+# D:2005/01/03 11:45:31
+# C:AZT3328 driver,CMIPCI driver,CS4281 driver,ENS1370/1+ driver
+# C:Maestro3 driver,SonicVibes driver,CS46xx driver,KORG1212 driver
+# C:NM256 driver,Trident driver,YMFPCI driver
+# F:pci/azt3328.c:1.23->1.24
+# F:pci/cmipci.c:1.76->1.77
+# F:pci/cs4281.c:1.68->1.69
+# F:pci/ens1370.c:1.73->1.74
+# F:pci/maestro3.c:1.67->1.68
+# F:pci/sonicvibes.c:1.44->1.45
+# F:pci/cs46xx/cs46xx_lib.c:1.92->1.93
+# F:pci/korg1212/korg1212.c:1.52->1.53
+# F:pci/nm256/nm256.c:1.57->1.58
+# F:pci/trident/trident_main.c:1.68->1.69
+# F:pci/ymfpci/ymfpci_main.c:1.63->1.64
+# L:Make sure that the chip instance is created at first before other components.
+# L:This will fix occasional oops at unloading due to the access to the released
+# L:resources.
+# Signed-off-by: Takashi Iwai <tiwai@suse.de>
+#
+# sound/pci/trident/trident_main.c
+# 2005/01/03 04:45:32+01:00 perex@suse.cz +5 -7
+# [ALSA] Fix the order of creation of instances
+#
+# D:2005/01/03 11:45:31
+# C:AZT3328 driver,CMIPCI driver,CS4281 driver,ENS1370/1+ driver
+# C:Maestro3 driver,SonicVibes driver,CS46xx driver,KORG1212 driver
+# C:NM256 driver,Trident driver,YMFPCI driver
+# F:pci/azt3328.c:1.23->1.24
+# F:pci/cmipci.c:1.76->1.77
+# F:pci/cs4281.c:1.68->1.69
+# F:pci/ens1370.c:1.73->1.74
+# F:pci/maestro3.c:1.67->1.68
+# F:pci/sonicvibes.c:1.44->1.45
+# F:pci/cs46xx/cs46xx_lib.c:1.92->1.93
+# F:pci/korg1212/korg1212.c:1.52->1.53
+# F:pci/nm256/nm256.c:1.57->1.58
+# F:pci/trident/trident_main.c:1.68->1.69
+# F:pci/ymfpci/ymfpci_main.c:1.63->1.64
+# L:Make sure that the chip instance is created at first before other components.
+# L:This will fix occasional oops at unloading due to the access to the released
+# L:resources.
+# Signed-off-by: Takashi Iwai <tiwai@suse.de>
+#
+# sound/pci/ymfpci/ymfpci_main.c
+# 2005/01/03 04:45:33+01:00 perex@suse.cz +2 -2
+# [ALSA] Fix the order of creation of instances
+#
+# D:2005/01/03 11:45:31
+# C:AZT3328 driver,CMIPCI driver,CS4281 driver,ENS1370/1+ driver
+# C:Maestro3 driver,SonicVibes driver,CS46xx driver,KORG1212 driver
+# C:NM256 driver,Trident driver,YMFPCI driver
+# F:pci/azt3328.c:1.23->1.24
+# F:pci/cmipci.c:1.76->1.77
+# F:pci/cs4281.c:1.68->1.69
+# F:pci/ens1370.c:1.73->1.74
+# F:pci/maestro3.c:1.67->1.68
+# F:pci/sonicvibes.c:1.44->1.45
+# F:pci/cs46xx/cs46xx_lib.c:1.92->1.93
+# F:pci/korg1212/korg1212.c:1.52->1.53
+# F:pci/nm256/nm256.c:1.57->1.58
+# F:pci/trident/trident_main.c:1.68->1.69
+# F:pci/ymfpci/ymfpci_main.c:1.63->1.64
+# L:Make sure that the chip instance is created at first before other components.
+# L:This will fix occasional oops at unloading due to the access to the released
+# L:resources.
+# Signed-off-by: Takashi Iwai <tiwai@suse.de>
+#
+diff -Nru a/sound/pci/azt3328.c b/sound/pci/azt3328.c
+--- a/sound/pci/azt3328.c 2005-01-22 23:23:00 -08:00
++++ b/sound/pci/azt3328.c 2005-01-22 23:23:00 -08:00
+@@ -1344,14 +1344,14 @@
+ for (tmp=0; tmp <= 0x01; tmp += 1)
+ snd_azf3328_dbgmisc("0x%02x: opl 0x%04x, mpu300 0x%04x, mpu310 0x%04x, mpu320 0x%04x, mpu330 0x%04x\n", tmp, inb(0x388 + tmp), inb(0x300 + tmp), inb(0x310 + tmp), inb(0x320 + tmp), inb(0x330 + tmp));
+
+- /* create mixer interface & switches */
+- if ((err = snd_azf3328_mixer_new(chip)) < 0)
+- return err;
+-
+ if ((err = snd_device_new(card, SNDRV_DEV_LOWLEVEL, chip, &ops)) < 0) {
+ snd_azf3328_free(chip);
+ return err;
+ }
++
++ /* create mixer interface & switches */
++ if ((err = snd_azf3328_mixer_new(chip)) < 0)
++ return err;
+
+ #if 0
+ /* set very low bitrate to reduce noise and power consumption? */
+diff -Nru a/sound/pci/cmipci.c b/sound/pci/cmipci.c
+--- a/sound/pci/cmipci.c 2005-01-22 23:23:00 -08:00
++++ b/sound/pci/cmipci.c 2005-01-22 23:23:00 -08:00
+@@ -2608,8 +2608,8 @@
+
+ if (request_irq(pci->irq, snd_cmipci_interrupt, SA_INTERRUPT|SA_SHIRQ, card->driver, (void *)cm)) {
+ snd_printk("unable to grab IRQ %d\n", pci->irq);
+- err = -EBUSY;
+- goto __error;
++ snd_cmipci_free(cm);
++ return -EBUSY;
+ }
+ cm->irq = pci->irq;
+
+@@ -2662,6 +2662,11 @@
+ break;
+ }
+
++ if ((err = snd_device_new(card, SNDRV_DEV_LOWLEVEL, cm, &ops)) < 0) {
++ snd_cmipci_free(cm);
++ return err;
++ }
++
+ /* set MPU address */
+ switch (iomidi) {
+ case 0x320: val = CM_VMPU_320; break;
+@@ -2717,22 +2722,22 @@
+ /* create pcm devices */
+ pcm_index = pcm_spdif_index = 0;
+ if ((err = snd_cmipci_pcm_new(cm, pcm_index)) < 0)
+- goto __error;
++ return err;
+ pcm_index++;
+ if (cm->has_dual_dac) {
+ if ((err = snd_cmipci_pcm2_new(cm, pcm_index)) < 0)
+- goto __error;
++ return err;
+ pcm_index++;
+ }
+ if (cm->can_ac3_hw || cm->can_ac3_sw) {
+ pcm_spdif_index = pcm_index;
+ if ((err = snd_cmipci_pcm_spdif_new(cm, pcm_index)) < 0)
+- goto __error;
++ return err;
+ }
+
+ /* create mixer interface & switches */
+ if ((err = snd_cmipci_mixer_new(cm, pcm_spdif_index)) < 0)
+- goto __error;
++ return err;
+
+ if (iomidi > 0) {
+ if ((err = snd_mpu401_uart_new(card, 0, MPU401_HW_CMIPCI,
+@@ -2742,10 +2747,6 @@
+ }
+ }
+
+- if ((err = snd_device_new(card, SNDRV_DEV_LOWLEVEL, cm, &ops)) < 0) {
+- snd_cmipci_free(cm);
+- return err;
+- }
+ #ifdef USE_VAR48KRATE
+ for (val = 0; val < ARRAY_SIZE(rates); val++)
+ snd_cmipci_set_pll(cm, rates[val], val);
+@@ -2785,10 +2786,6 @@
+
+ *rcmipci = cm;
+ return 0;
+-
+- __error:
+- snd_cmipci_free(cm);
+- return err;
+ }
+
+ /*
+diff -Nru a/sound/pci/cs4281.c b/sound/pci/cs4281.c
+--- a/sound/pci/cs4281.c 2005-01-22 23:23:00 -08:00
++++ b/sound/pci/cs4281.c 2005-01-22 23:23:00 -08:00
+@@ -1439,14 +1439,14 @@
+ return tmp;
+ }
+
+- snd_cs4281_proc_init(chip);
+-
+- snd_card_set_pm_callback(card, cs4281_suspend, cs4281_resume, chip);
+-
+ if ((err = snd_device_new(card, SNDRV_DEV_LOWLEVEL, chip, &ops)) < 0) {
+ snd_cs4281_free(chip);
+ return err;
+ }
++
++ snd_cs4281_proc_init(chip);
++
++ snd_card_set_pm_callback(card, cs4281_suspend, cs4281_resume, chip);
+
+ snd_card_set_dev(card, &pci->dev);
+
+diff -Nru a/sound/pci/cs46xx/cs46xx_lib.c b/sound/pci/cs46xx/cs46xx_lib.c
+--- a/sound/pci/cs46xx/cs46xx_lib.c 2005-01-22 23:23:00 -08:00
++++ b/sound/pci/cs46xx/cs46xx_lib.c 2005-01-22 23:23:00 -08:00
+@@ -3909,15 +3909,15 @@
+ return err;
+ }
+
+- snd_cs46xx_proc_init(card, chip);
+-
+- snd_card_set_pm_callback(card, snd_cs46xx_suspend, snd_cs46xx_resume, chip);
+-
+ if ((err = snd_device_new(card, SNDRV_DEV_LOWLEVEL, chip, &ops)) < 0) {
+ snd_cs46xx_free(chip);
+ return err;
+ }
+
++ snd_cs46xx_proc_init(card, chip);
++
++ snd_card_set_pm_callback(card, snd_cs46xx_suspend, snd_cs46xx_resume, chip);
++
+ chip->active_ctrl(chip, -1); /* disable CLKRUN */
+
+ snd_card_set_dev(card, &pci->dev);
+diff -Nru a/sound/pci/ens1370.c b/sound/pci/ens1370.c
+--- a/sound/pci/ens1370.c 2005-01-22 23:23:00 -08:00
++++ b/sound/pci/ens1370.c 2005-01-22 23:23:00 -08:00
+@@ -1924,7 +1924,6 @@
+ ensoniq->subsystem_vendor_id = cmdw;
+ pci_read_config_word(pci, PCI_SUBSYSTEM_ID, &cmdw);
+ ensoniq->subsystem_device_id = cmdw;
+- snd_ensoniq_proc_init(ensoniq);
+ #ifdef CHIP1370
+ #if 0
+ ensoniq->ctrl = ES_1370_CDC_EN | ES_1370_SERR_DISABLE | ES_1370_PCLKDIVO(ES_1370_SRTODIV(8000));
+@@ -2016,6 +2015,8 @@
+ snd_ensoniq_free(ensoniq);
+ return err;
+ }
++
++ snd_ensoniq_proc_init(ensoniq);
+
+ snd_card_set_dev(card, &pci->dev);
+
+diff -Nru a/sound/pci/korg1212/korg1212.c b/sound/pci/korg1212/korg1212.c
+--- a/sound/pci/korg1212/korg1212.c 2005-01-22 23:23:00 -08:00
++++ b/sound/pci/korg1212/korg1212.c 2005-01-22 23:23:00 -08:00
+@@ -2412,14 +2412,17 @@
+ if (rc) K1212_DEBUG_PRINTK("K1212_DEBUG: Reboot Card - RC = %d [%s]\n", rc, stateName[korg1212->cardState]);
+ #endif
+
++ if ((err = snd_device_new(card, SNDRV_DEV_LOWLEVEL, korg1212, &ops)) < 0) {
++ snd_korg1212_free(korg1212);
++ return err;
++ }
++
+ snd_korg1212_EnableCardInterrupts(korg1212);
+
+ mdelay(CARD_BOOT_DELAY_IN_MS);
+
+- if (snd_korg1212_downloadDSPCode(korg1212)) {
+- snd_korg1212_free(korg1212);
++ if (snd_korg1212_downloadDSPCode(korg1212))
+ return -EBUSY;
+- }
+
+ printk(KERN_INFO "dspMemPhy = %08x U[%08x]\n"
+ "PlayDataPhy = %08x L[%08x]\n"
+@@ -2434,10 +2437,8 @@
+ korg1212->RoutingTablePhy, LowerWordSwap(korg1212->RoutingTablePhy),
+ korg1212->AdatTimeCodePhy, LowerWordSwap(korg1212->AdatTimeCodePhy));
+
+- if ((err = snd_pcm_new(korg1212->card, "korg1212", 0, 1, 1, &korg1212->pcm)) < 0) {
+- snd_korg1212_free(korg1212);
++ if ((err = snd_pcm_new(korg1212->card, "korg1212", 0, 1, 1, &korg1212->pcm)) < 0)
+ return err;
+- }
+
+ korg1212->pcm->private_data = korg1212;
+ korg1212->pcm->private_free = snd_korg1212_free_pcm;
+@@ -2454,18 +2455,11 @@
+
+ for (i = 0; i < ARRAY_SIZE(snd_korg1212_controls); i++) {
+ err = snd_ctl_add(korg1212->card, snd_ctl_new1(&snd_korg1212_controls[i], korg1212));
+- if (err < 0) {
+- snd_korg1212_free(korg1212);
++ if (err < 0)
+ return err;
+- }
+ }
+
+ snd_korg1212_proc_init(korg1212);
+-
+- if ((err = snd_device_new(card, SNDRV_DEV_LOWLEVEL, korg1212, &ops)) < 0) {
+- snd_korg1212_free(korg1212);
+- return err;
+- }
+
+ snd_card_set_dev(card, &pci->dev);
+
+diff -Nru a/sound/pci/maestro3.c b/sound/pci/maestro3.c
+--- a/sound/pci/maestro3.c 2005-01-22 23:23:00 -08:00
++++ b/sound/pci/maestro3.c 2005-01-22 23:23:00 -08:00
+@@ -2564,26 +2564,7 @@
+
+ snd_m3_assp_init(chip);
+ snd_m3_amp_enable(chip, 1);
+-
+- if ((err = snd_m3_mixer(chip)) < 0) {
+- snd_m3_free(chip);
+- return err;
+- }
+
+- for (i = 0; i < chip->num_substreams; i++) {
+- m3_dma_t *s = &chip->substreams[i];
+- s->chip = chip;
+- if ((err = snd_m3_assp_client_init(chip, s, i)) < 0) {
+- snd_m3_free(chip);
+- return err;
+- }
+- }
+-
+- if ((err = snd_m3_pcm(chip, 0)) < 0) {
+- snd_m3_free(chip);
+- return err;
+- }
+-
+ if (request_irq(pci->irq, snd_m3_interrupt, SA_INTERRUPT|SA_SHIRQ,
+ card->driver, (void *)chip)) {
+ snd_printk("unable to grab IRQ %d\n", pci->irq);
+@@ -2605,6 +2586,19 @@
+ return err;
+ }
+
++ if ((err = snd_m3_mixer(chip)) < 0)
++ return err;
++
++ for (i = 0; i < chip->num_substreams; i++) {
++ m3_dma_t *s = &chip->substreams[i];
++ s->chip = chip;
++ if ((err = snd_m3_assp_client_init(chip, s, i)) < 0)
++ return err;
++ }
++
++ if ((err = snd_m3_pcm(chip, 0)) < 0)
++ return err;
++
+ snd_m3_enable_ints(chip);
+ snd_m3_assp_continue(chip);
+
+diff -Nru a/sound/pci/nm256/nm256.c b/sound/pci/nm256/nm256.c
+--- a/sound/pci/nm256/nm256.c 2005-01-22 23:23:00 -08:00
++++ b/sound/pci/nm256/nm256.c 2005-01-22 23:23:00 -08:00
+@@ -1486,12 +1486,6 @@
+
+ snd_nm256_init_chip(chip);
+
+- if ((err = snd_nm256_pcm(chip, 0)) < 0)
+- goto __error;
+-
+- if ((err = snd_nm256_mixer(chip)) < 0)
+- goto __error;
+-
+ // pci_set_master(pci); /* needed? */
+
+ snd_card_set_pm_callback(card, nm256_suspend, nm256_resume, chip);
+@@ -1610,6 +1604,12 @@
+ if (reset_workaround[dev]) {
+ snd_printdd(KERN_INFO "nm256: reset_workaround activated\n");
+ chip->reset_workaround = 1;
++ }
++
++ if ((err = snd_nm256_pcm(chip, 0)) < 0 ||
++ (err = snd_nm256_mixer(chip)) < 0) {
++ snd_card_free(card);
++ return err;
+ }
+
+ sprintf(card->shortname, "NeoMagic %s", card->driver);
+diff -Nru a/sound/pci/sonicvibes.c b/sound/pci/sonicvibes.c
+--- a/sound/pci/sonicvibes.c 2005-01-22 23:23:00 -08:00
++++ b/sound/pci/sonicvibes.c 2005-01-22 23:23:00 -08:00
+@@ -1333,12 +1333,13 @@
+ #endif
+ sonic->revision = snd_sonicvibes_in(sonic, SV_IREG_REVISION);
+ snd_ctl_add(card, snd_ctl_new1(&snd_sonicvibes_game_control, sonic));
+- snd_sonicvibes_proc_init(sonic);
+
+ if ((err = snd_device_new(card, SNDRV_DEV_LOWLEVEL, sonic, &ops)) < 0) {
+ snd_sonicvibes_free(sonic);
+ return err;
+ }
++
++ snd_sonicvibes_proc_init(sonic);
+
+ snd_card_set_dev(card, &pci->dev);
+
+diff -Nru a/sound/pci/trident/trident_main.c b/sound/pci/trident/trident_main.c
+--- a/sound/pci/trident/trident_main.c 2005-01-22 23:23:00 -08:00
++++ b/sound/pci/trident/trident_main.c 2005-01-22 23:23:00 -08:00
+@@ -3614,10 +3614,13 @@
+ return err;
+ }
+
+- if ((err = snd_trident_mixer(trident, pcm_spdif_device)) < 0) {
++ if ((err = snd_device_new(card, SNDRV_DEV_LOWLEVEL, trident, &ops)) < 0) {
+ snd_trident_free(trident);
+ return err;
+ }
++
++ if ((err = snd_trident_mixer(trident, pcm_spdif_device)) < 0)
++ return err;
+
+ /* initialise synth voices */
+ for (i = 0; i < 64; i++) {
+@@ -3638,12 +3641,7 @@
+
+
+ snd_card_set_pm_callback(card, snd_trident_suspend, snd_trident_resume, trident);
+-
+ snd_trident_proc_init(trident);
+- if ((err = snd_device_new(card, SNDRV_DEV_LOWLEVEL, trident, &ops)) < 0) {
+- snd_trident_free(trident);
+- return err;
+- }
+ snd_card_set_dev(card, &pci->dev);
+ *rtrident = trident;
+ return 0;
+@@ -3653,7 +3651,7 @@
+ snd_trident_free
+
+ Description: This routine will free the device specific class for
+- q the 4DWave card.
++ the 4DWave card.
+
+ Paramters: trident - device specific private data for 4DWave card
+
+diff -Nru a/sound/pci/ymfpci/ymfpci_main.c b/sound/pci/ymfpci/ymfpci_main.c
+--- a/sound/pci/ymfpci/ymfpci_main.c 2005-01-22 23:23:00 -08:00
++++ b/sound/pci/ymfpci/ymfpci_main.c 2005-01-22 23:23:00 -08:00
+@@ -2266,12 +2266,12 @@
+ snd_card_set_pm_callback(card, snd_ymfpci_suspend, snd_ymfpci_resume, chip);
+ #endif
+
+- snd_ymfpci_proc_init(card, chip);
+-
+ if ((err = snd_device_new(card, SNDRV_DEV_LOWLEVEL, chip, &ops)) < 0) {
+ snd_ymfpci_free(chip);
+ return err;
+ }
++
++ snd_ymfpci_proc_init(card, chip);
+
+ snd_card_set_dev(card, &pci->dev);
+
Added: trunk/kernel/source/kernel-source-2.6.10-2.6.10/debian/patches/072-sctp_do_bind_random_port.dpatch
===================================================================
--- trunk/kernel/source/kernel-source-2.6.10-2.6.10/debian/patches/072-sctp_do_bind_random_port.dpatch 2005-02-07 15:13:28 UTC (rev 2454)
+++ trunk/kernel/source/kernel-source-2.6.10-2.6.10/debian/patches/072-sctp_do_bind_random_port.dpatch 2005-02-07 20:27:20 UTC (rev 2455)
@@ -0,0 +1,46 @@
+#! /bin/sh -e
+## <PATCHNAME>.dpatch by <PATCH_AUTHOR@EMAI>
+##
+## All lines beginning with `## DP:' are a description of the patch.
+## DP: Description: [SCTP] Fix bug in setting ephemeral port in the bind address.
+## DP: Patch author: sri@us.ibm.com
+## DP: Upstream status: backported
+
+. $(dirname $0)/DPATCH
+
+@DPATCH@
+# This is a BitKeeper generated diff -Nru style patch.
+#
+# ChangeSet
+# 2004/12/28 17:04:30-08:00 sri@us.ibm.com
+# [SCTP] Fix bug in setting ephemeral port in the bind address.
+#
+# Signed-off-by: Sridhar Samudrala <sri@us.ibm.com>
+#
+# net/sctp/socket.c
+# 2004/12/28 17:04:18-08:00 sri@us.ibm.com +2 -4
+# [SCTP] Fix bug in setting ephemeral port in the bind address.
+#
+diff -Nru a/net/sctp/socket.c b/net/sctp/socket.c
+--- a/net/sctp/socket.c 2005-01-22 23:21:40 -08:00
++++ b/net/sctp/socket.c 2005-01-22 23:21:40 -08:00
+@@ -343,8 +343,8 @@
+ }
+
+ /* Refresh ephemeral port. */
+- if (!snum)
+- snum = inet_sk(sk)->num;
++ if (!bp->port)
++ bp->port = inet_sk(sk)->num;
+
+ /* Add the address to the bind address list. */
+ sctp_local_bh_disable();
+@@ -354,8 +354,6 @@
+ addr->v4.sin_port = ntohs(addr->v4.sin_port);
+ ret = sctp_add_bind_addr(bp, addr, GFP_ATOMIC);
+ addr->v4.sin_port = htons(addr->v4.sin_port);
+- if (!ret && !bp->port)
+- bp->port = snum;
+ sctp_write_unlock(&ep->base.addr_lock);
+ sctp_local_bh_enable();
+
Added: trunk/kernel/source/kernel-source-2.6.10-2.6.10/debian/patches/073-usb_gadget_serial_free_ports.dpatch
===================================================================
--- trunk/kernel/source/kernel-source-2.6.10-2.6.10/debian/patches/073-usb_gadget_serial_free_ports.dpatch 2005-02-07 15:13:28 UTC (rev 2454)
+++ trunk/kernel/source/kernel-source-2.6.10-2.6.10/debian/patches/073-usb_gadget_serial_free_ports.dpatch 2005-02-07 20:27:20 UTC (rev 2455)
@@ -0,0 +1,43 @@
+#! /bin/sh -e
+## <PATCHNAME>.dpatch by <PATCH_AUTHOR@EMAI>
+##
+## All lines beginning with `## DP:' are a description of the patch.
+## DP: Description: [PATCH] USB: fix serial gadget oops during enumeration
+## DP: Patch author: david-b@pacbell.net
+## DP: Upstream status: backported
+
+. $(dirname $0)/DPATCH
+
+@DPATCH@
+# This is a BitKeeper generated diff -Nru style patch.
+#
+# ChangeSet
+# 2005/01/06 17:27:58-08:00 david-b@pacbell.net
+# [PATCH] USB: fix serial gadget oops during enumeration
+#
+# This prevents the serial gadget driver from oopsing during enumeration
+# when spinlocks are configured, and slab poisoning is active...
+#
+# Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
+# Signed-off-by: Greg Kroah-Hartman <greg@kroah.com>
+#
+# drivers/usb/gadget/serial.c
+# 2005/01/06 12:29:34-08:00 david-b@pacbell.net +1 -1
+# USB: fix serial gadget oops during enumeration
+#
+diff -Nru a/drivers/usb/gadget/serial.c b/drivers/usb/gadget/serial.c
+--- a/drivers/usb/gadget/serial.c 2005-01-22 21:43:13 -08:00
++++ b/drivers/usb/gadget/serial.c 2005-01-22 21:43:13 -08:00
+@@ -2322,11 +2322,11 @@
+ wake_up_interruptible(&port->port_tty->read_wait);
+ wake_up_interruptible(&port->port_tty->write_wait);
+ }
++ spin_unlock_irqrestore(&port->port_lock, flags);
+ } else {
+ kfree(port);
+ }
+
+- spin_unlock_irqrestore(&port->port_lock, flags);
+ }
+ }
+ }
Added: trunk/kernel/source/kernel-source-2.6.10-2.6.10/debian/patches/074-usb_makefile_fixes.dpatch
===================================================================
--- trunk/kernel/source/kernel-source-2.6.10-2.6.10/debian/patches/074-usb_makefile_fixes.dpatch 2005-02-07 15:13:28 UTC (rev 2454)
+++ trunk/kernel/source/kernel-source-2.6.10-2.6.10/debian/patches/074-usb_makefile_fixes.dpatch 2005-02-07 20:27:20 UTC (rev 2455)
@@ -0,0 +1,46 @@
+#! /bin/sh -e
+## <PATCHNAME>.dpatch by <PATCH_AUTHOR@EMAI>
+##
+## All lines beginning with `## DP:' are a description of the patch.
+## DP: Description: [PATCH] USB: usb makefile tweaks
+## DP: Patch author: david-b@pacbell.net
+## DP: Upstream status: backported
+
+. $(dirname $0)/DPATCH
+
+@DPATCH@
+# This is a BitKeeper generated diff -Nru style patch.
+#
+# ChangeSet
+# 2005/01/07 08:46:29-08:00 david-b@pacbell.net
+# [PATCH] USB: usb makefile tweaks
+#
+# Two minor Makefile fixes, catching up to some driver removals.
+#
+# Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
+# Signed-off-by: Greg Kroah-Hartman <greg@kroah.com>
+#
+# drivers/usb/Makefile
+# 2005/01/05 12:21:54-08:00 david-b@pacbell.net +1 -2
+# USB: usb makefile tweaks
+#
+diff -Nru a/drivers/usb/Makefile b/drivers/usb/Makefile
+--- a/drivers/usb/Makefile 2005-01-22 21:15:50 -08:00
++++ b/drivers/usb/Makefile 2005-01-22 21:15:50 -08:00
+@@ -9,7 +9,7 @@
+ obj-$(CONFIG_USB_EHCI_HCD) += host/
+ obj-$(CONFIG_USB_OHCI_HCD) += host/
+ obj-$(CONFIG_USB_UHCI_HCD) += host/
+-obj-$(CONFIG_USB_SL811HS) += host/
++obj-$(CONFIG_USB_SL811_HCD) += host/
+ obj-$(CONFIG_ETRAX_USB_HOST) += host/
+
+ obj-$(CONFIG_USB_ACM) += class/
+@@ -49,7 +49,6 @@
+ obj-$(CONFIG_USB_RTL8150) += net/
+ obj-$(CONFIG_USB_USBNET) += net/
+
+-obj-$(CONFIG_USB_DC2XX) += image/
+ obj-$(CONFIG_USB_HPUSBSCSI) += image/
+ obj-$(CONFIG_USB_MDC800) += image/
+ obj-$(CONFIG_USB_MICROTEK) += image/
Added: trunk/kernel/source/kernel-source-2.6.10-2.6.10/debian/patches/075-acpiphp_ibm_module_parm_perm.dpatch
===================================================================
--- trunk/kernel/source/kernel-source-2.6.10-2.6.10/debian/patches/075-acpiphp_ibm_module_parm_perm.dpatch 2005-02-07 15:13:28 UTC (rev 2454)
+++ trunk/kernel/source/kernel-source-2.6.10-2.6.10/debian/patches/075-acpiphp_ibm_module_parm_perm.dpatch 2005-02-07 20:27:20 UTC (rev 2455)
@@ -0,0 +1,39 @@
+#! /bin/sh -e
+## <PATCHNAME>.dpatch by <PATCH_AUTHOR@EMAI>
+##
+## All lines beginning with `## DP:' are a description of the patch.
+## DP: Description: [PATCH] hotplug/acpiphp_ibm: module_param fix
+## DP: Patch author: domen@coderock.org
+## DP: Upstream status: backported
+
+. $(dirname $0)/DPATCH
+
+@DPATCH@
+# This is a BitKeeper generated diff -Nru style patch.
+#
+# ChangeSet
+# 2005/01/07 10:32:39-08:00 domen@coderock.org
+# [PATCH] hotplug/acpiphp_ibm: module_param fix
+#
+# File permissins should be octal number.
+#
+#
+# Signed-off-by: Domen Puncer <domen@coderock.org>
+# Signed-off-by: Greg Kroah-Hartman <greg@kroah.com>
+#
+# drivers/pci/hotplug/acpiphp_ibm.c
+# 2004/12/29 01:48:10-08:00 domen@coderock.org +1 -1
+# hotplug/acpiphp_ibm: module_param fix
+#
+diff -Nru a/drivers/pci/hotplug/acpiphp_ibm.c b/drivers/pci/hotplug/acpiphp_ibm.c
+--- a/drivers/pci/hotplug/acpiphp_ibm.c 2005-01-22 22:58:50 -08:00
++++ b/drivers/pci/hotplug/acpiphp_ibm.c 2005-01-22 22:58:50 -08:00
+@@ -47,7 +47,7 @@
+ MODULE_DESCRIPTION(DRIVER_DESC);
+ MODULE_LICENSE("GPL");
+ MODULE_VERSION(DRIVER_VERSION);
+-module_param(debug, bool, 644);
++module_param(debug, bool, 0644);
+ MODULE_PARM_DESC(debug, " Debugging mode enabled or not");
+ #define MY_NAME "acpiphp_ibm"
+
Added: trunk/kernel/source/kernel-source-2.6.10-2.6.10/debian/patches/076-i2c_ali1563_devinit_fixes.dpatch
===================================================================
--- trunk/kernel/source/kernel-source-2.6.10-2.6.10/debian/patches/076-i2c_ali1563_devinit_fixes.dpatch 2005-02-07 15:13:28 UTC (rev 2454)
+++ trunk/kernel/source/kernel-source-2.6.10-2.6.10/debian/patches/076-i2c_ali1563_devinit_fixes.dpatch 2005-02-07 20:27:20 UTC (rev 2455)
@@ -0,0 +1,67 @@
+#! /bin/sh -e
+## <PATCHNAME>.dpatch by <PATCH_AUTHOR@EMAI>
+##
+## All lines beginning with `## DP:' are a description of the patch.
+## DP: Description: [PATCH] i2c-ali1563: fix init & exit section usage
+## DP: Patch author: rddunlap@osdl.org
+## DP: Upstream status: backported
+
+. $(dirname $0)/DPATCH
+
+@DPATCH@
+# This is a BitKeeper generated diff -Nru style patch.
+#
+# ChangeSet
+# 2005/01/07 11:16:13-08:00 rddunlap@osdl.org
+# [PATCH] i2c-ali1563: fix init & exit section usage
+#
+# Fix init & exit section usages, beginning with this diagnostic
+# from reference_discarded.pl (make buildcheck):
+# Error: ./drivers/i2c/busses/i2c-ali1563.o .data refers to 00000278 R_386_32 .exit.text
+#
+# Signed-off-by: Randy Dunlap <rddunlap@osdl.org>
+# Signed-off-by: Greg Kroah-Hartman <greg@kroah.com>
+#
+# drivers/i2c/busses/i2c-ali1563.c
+# 2005/01/06 21:42:07-08:00 rddunlap@osdl.org +4 -4
+# i2c-ali1563: fix init & exit section usage
+#
+diff -Nru a/drivers/i2c/busses/i2c-ali1563.c b/drivers/i2c/busses/i2c-ali1563.c
+--- a/drivers/i2c/busses/i2c-ali1563.c 2005-01-22 23:45:29 -08:00
++++ b/drivers/i2c/busses/i2c-ali1563.c 2005-01-22 23:45:29 -08:00
+@@ -306,7 +306,7 @@
+ pci_write_config_word(dev,ALI1563_SMBBA,ctrl);
+ }
+
+-static int __init ali1563_setup(struct pci_dev * dev)
++static int __devinit ali1563_setup(struct pci_dev * dev)
+ {
+ u16 ctrl;
+
+@@ -362,7 +362,7 @@
+ .algo = &ali1563_algorithm,
+ };
+
+-static int __init ali1563_probe(struct pci_dev * dev,
++static int __devinit ali1563_probe(struct pci_dev * dev,
+ const struct pci_device_id * id_table)
+ {
+ int error;
+@@ -378,7 +378,7 @@
+ return error;
+ }
+
+-static void __exit ali1563_remove(struct pci_dev * dev)
++static void __devexit ali1563_remove(struct pci_dev * dev)
+ {
+ i2c_del_adapter(&ali1563_adapter);
+ ali1563_shutdown(dev);
+@@ -395,7 +395,7 @@
+ .name = "ali1563_i2c",
+ .id_table = ali1563_id_table,
+ .probe = ali1563_probe,
+- .remove = ali1563_remove,
++ .remove = __devexit_p(ali1563_remove),
+ };
+
+ static int __init ali1563_init(void)
Added: trunk/kernel/source/kernel-source-2.6.10-2.6.10/debian/patches/077-ext3_journal_abort_handle_silence.dpatch
===================================================================
--- trunk/kernel/source/kernel-source-2.6.10-2.6.10/debian/patches/077-ext3_journal_abort_handle_silence.dpatch 2005-02-07 15:13:28 UTC (rev 2454)
+++ trunk/kernel/source/kernel-source-2.6.10-2.6.10/debian/patches/077-ext3_journal_abort_handle_silence.dpatch 2005-02-07 20:27:20 UTC (rev 2455)
@@ -0,0 +1,64 @@
+#! /bin/sh -e
+## <PATCHNAME>.dpatch by <PATCH_AUTHOR@EMAI>
+##
+## All lines beginning with `## DP:' are a description of the patch.
+## DP: Description: [PATCH] ext3: cleanup handling of aborted transactions.
+## DP: Patch author: sct@redhat.com
+## DP: Upstream status: backported
+
+. $(dirname $0)/DPATCH
+
+@DPATCH@
+# This is a BitKeeper generated diff -Nru style patch.
+#
+# ChangeSet
+# 2005/01/04 21:27:23-08:00 sct@redhat.com
+# [PATCH] ext3: cleanup handling of aborted transactions.
+#
+# This patch improves ext3's error logging when we encounter an on-disk
+# corruption. Previously, a transaction (such as a truncate) which encountered
+# many corruptions (eg. a single highly-corrupt indirect block) would emit
+# copious "aborting transaction" errors to the log.
+#
+# Even worse, encountering an aborted journal can count as such an error,
+# leading to a flood of spurious "aborting transaction: Journal has aborted"
+# errors.
+#
+# With the fix, only emit that message on the first error. The patch also
+# restores a missing \n in that printk path.
+#
+# Signed-off-by: Stephen Tweedie <sct@redhat.com>
+# Signed-off-by: Andrew Morton <akpm@osdl.org>
+# Signed-off-by: Linus Torvalds <torvalds@osdl.org>
+#
+# fs/ext3/super.c
+# 2005/01/04 20:24:30-08:00 sct@redhat.com +9 -4
+# ext3: cleanup handling of aborted transactions.
+#
+diff -Nru a/fs/ext3/super.c b/fs/ext3/super.c
+--- a/fs/ext3/super.c 2005-01-22 22:55:48 -08:00
++++ b/fs/ext3/super.c 2005-01-22 22:55:48 -08:00
+@@ -108,14 +108,19 @@
+ char nbuf[16];
+ const char *errstr = ext3_decode_error(NULL, err, nbuf);
+
+- printk(KERN_ERR "%s: aborting transaction: %s in %s",
+- caller, errstr, err_fn);
+-
+ if (bh)
+ BUFFER_TRACE(bh, "abort");
+- journal_abort_handle(handle);
++
+ if (!handle->h_err)
+ handle->h_err = err;
++
++ if (is_handle_aborted(handle))
++ return;
++
++ printk(KERN_ERR "%s: aborting transaction: %s in %s\n",
++ caller, errstr, err_fn);
++
++ journal_abort_handle(handle);
+ }
+
+ /* Deal with the reporting of failure conditions on a filesystem such as
Added: trunk/kernel/source/kernel-source-2.6.10-2.6.10/debian/patches/078-jbd_journal_revoke_graceful_double_delete.dpatch
===================================================================
--- trunk/kernel/source/kernel-source-2.6.10-2.6.10/debian/patches/078-jbd_journal_revoke_graceful_double_delete.dpatch 2005-02-07 15:13:28 UTC (rev 2454)
+++ trunk/kernel/source/kernel-source-2.6.10-2.6.10/debian/patches/078-jbd_journal_revoke_graceful_double_delete.dpatch 2005-02-07 20:27:20 UTC (rev 2455)
@@ -0,0 +1,59 @@
+#! /bin/sh -e
+## <PATCHNAME>.dpatch by <PATCH_AUTHOR@EMAI>
+##
+## All lines beginning with `## DP:' are a description of the patch.
+## DP: Description: [PATCH] ext3: handle attempted double-delete of metadata.
+## DP: Patch author: sct@redhat.com
+## DP: Upstream status: backported
+
+. $(dirname $0)/DPATCH
+
+@DPATCH@
+# This is a BitKeeper generated diff -Nru style patch.
+#
+# ChangeSet
+# 2005/01/04 21:27:49-08:00 sct@redhat.com
+# [PATCH] ext3: handle attempted double-delete of metadata.
+#
+# This patch improves ext3's ability to deal with corruption on-disk. If we
+# try to delete a metadata block twice, we confuse ext3's internal revoke
+# error-checking, resulting in a BUG(). But this can occur in practice due
+# to a corrupt indirect block, so we should attempt to fail gracefully.
+#
+# Downgrade the assert failure to a JH_EXPECT_BH failure, and return EIO when
+# it occurs.
+#
+# This is easily reproduced with a sample ext3 fs image containing an inode
+# which references the same indirect block more than once. Deleting that
+# inode will BUG() an unfixed kernel with:
+#
+# Assertion failure in journal_revoke() at fs/jbd/revoke.c:379:
+# "!buffer_revoked(bh)"
+#
+# With the fix, ext3 recovers gracefully.
+#
+# Signed-off-by: Stephen Tweedie <sct@redhat.com>
+# Signed-off-by: Andrew Morton <akpm@osdl.org>
+# Signed-off-by: Linus Torvalds <torvalds@osdl.org>
+#
+# fs/jbd/revoke.c
+# 2005/01/04 18:48:12-08:00 sct@redhat.com +6 -1
+# ext3: handle attempted double-delete of metadata.
+#
+diff -Nru a/fs/jbd/revoke.c b/fs/jbd/revoke.c
+--- a/fs/jbd/revoke.c 2005-01-22 22:56:39 -08:00
++++ b/fs/jbd/revoke.c 2005-01-22 22:56:39 -08:00
+@@ -376,7 +376,12 @@
+ first having the revoke cancelled: it's illegal to free a
+ block twice without allocating it in between! */
+ if (bh) {
+- J_ASSERT_BH(bh, !buffer_revoked(bh));
++ if (!J_EXPECT_BH(bh, !buffer_revoked(bh),
++ "inconsistent data on disk")) {
++ if (!bh_in)
++ brelse(bh);
++ return -EIO;
++ }
+ set_buffer_revoked(bh);
+ set_buffer_revokevalid(bh);
+ if (bh_in) {
Added: trunk/kernel/source/kernel-source-2.6.10-2.6.10/debian/patches/079-i386_timer_resume_slowdown.dpatch
===================================================================
--- trunk/kernel/source/kernel-source-2.6.10-2.6.10/debian/patches/079-i386_timer_resume_slowdown.dpatch 2005-02-07 15:13:28 UTC (rev 2454)
+++ trunk/kernel/source/kernel-source-2.6.10-2.6.10/debian/patches/079-i386_timer_resume_slowdown.dpatch 2005-02-07 20:27:20 UTC (rev 2455)
@@ -0,0 +1,46 @@
+#! /bin/sh -e
+## <PATCHNAME>.dpatch by <PATCH_AUTHOR@EMAI>
+##
+## All lines beginning with `## DP:' are a description of the patch.
+## DP: Description: [PATCH] time runx too fast after S3
+## DP: Patch author: shaohua.li@intel.com
+## DP: Upstream status: backported
+
+. $(dirname $0)/DPATCH
+
+@DPATCH@
+# This is a BitKeeper generated diff -Nru style patch.
+#
+# ChangeSet
+# 2005/01/04 21:28:15-08:00 shaohua.li@intel.com
+# [PATCH] time runx too fast after S3
+#
+# After resume from S3, 'date' shows time run too fast.
+#
+# Signed-off-by: Li Shaohua <shaohua.li@intel.com>
+# Signed-off-by: Andrew Morton <akpm@osdl.org>
+# Signed-off-by: Linus Torvalds <torvalds@osdl.org>
+#
+# arch/i386/kernel/time.c
+# 2005/01/04 18:48:13-08:00 shaohua.li@intel.com +3 -2
+# time runx too fast after S3
+#
+diff -Nru a/arch/i386/kernel/time.c b/arch/i386/kernel/time.c
+--- a/arch/i386/kernel/time.c 2005-01-22 22:57:24 -08:00
++++ b/arch/i386/kernel/time.c 2005-01-22 22:57:24 -08:00
+@@ -342,12 +342,13 @@
+ hpet_reenable();
+ #endif
+ sec = get_cmos_time() + clock_cmos_diff;
+- sleep_length = get_cmos_time() - sleep_start;
++ sleep_length = (get_cmos_time() - sleep_start) * HZ;
+ write_seqlock_irqsave(&xtime_lock, flags);
+ xtime.tv_sec = sec;
+ xtime.tv_nsec = 0;
+ write_sequnlock_irqrestore(&xtime_lock, flags);
+- jiffies += sleep_length * HZ;
++ jiffies += sleep_length;
++ wall_jiffies += sleep_length;
+ return 0;
+ }
+
Added: trunk/kernel/source/kernel-source-2.6.10-2.6.10/debian/patches/080-kernel_sched_might_sleep_ignore_if_oopsed.dpatch
===================================================================
--- trunk/kernel/source/kernel-source-2.6.10-2.6.10/debian/patches/080-kernel_sched_might_sleep_ignore_if_oopsed.dpatch 2005-02-07 15:13:28 UTC (rev 2454)
+++ trunk/kernel/source/kernel-source-2.6.10-2.6.10/debian/patches/080-kernel_sched_might_sleep_ignore_if_oopsed.dpatch 2005-02-07 20:27:20 UTC (rev 2455)
@@ -0,0 +1,41 @@
+#! /bin/sh -e
+## <PATCHNAME>.dpatch by <PATCH_AUTHOR@EMAI>
+##
+## All lines beginning with `## DP:' are a description of the patch.
+## DP: Description: [PATCH] suppress might_sleep() if oopsing
+## DP: Patch author: akpm@osdl.org
+## DP: Upstream status: backported
+
+. $(dirname $0)/DPATCH
+
+@DPATCH@
+# This is a BitKeeper generated diff -Nru style patch.
+#
+# ChangeSet
+# 2005/01/04 21:28:41-08:00 akpm@osdl.org
+# [PATCH] suppress might_sleep() if oopsing
+#
+# We can call might_sleep() functions on the oops handling path (under do_exit).
+#
+# There seem little point in emitting spurious might_sleep() warnings into the
+# logs after the kernel has oopsed.
+#
+# Signed-off-by: Andrew Morton <akpm@osdl.org>
+# Signed-off-by: Linus Torvalds <torvalds@osdl.org>
+#
+# kernel/sched.c
+# 2005/01/04 20:24:26-08:00 akpm@osdl.org +1 -1
+# suppress might_sleep() if oopsing
+#
+diff -Nru a/kernel/sched.c b/kernel/sched.c
+--- a/kernel/sched.c 2005-01-22 22:57:56 -08:00
++++ b/kernel/sched.c 2005-01-22 22:57:56 -08:00
+@@ -4631,7 +4631,7 @@
+ static unsigned long prev_jiffy; /* ratelimiting */
+
+ if ((in_atomic() || irqs_disabled()) &&
+- system_state == SYSTEM_RUNNING) {
++ system_state == SYSTEM_RUNNING && !oops_in_progress) {
+ if (time_before(jiffies, prev_jiffy + HZ) && prev_jiffy)
+ return;
+ prev_jiffy = jiffies;
Added: trunk/kernel/source/kernel-source-2.6.10-2.6.10/debian/patches/081-ia64_early_sn_setup_nested_loop.dpatch
===================================================================
--- trunk/kernel/source/kernel-source-2.6.10-2.6.10/debian/patches/081-ia64_early_sn_setup_nested_loop.dpatch 2005-02-07 15:13:28 UTC (rev 2454)
+++ trunk/kernel/source/kernel-source-2.6.10-2.6.10/debian/patches/081-ia64_early_sn_setup_nested_loop.dpatch 2005-02-07 20:27:20 UTC (rev 2455)
@@ -0,0 +1,88 @@
+#! /bin/sh -e
+## <PATCHNAME>.dpatch by <PATCH_AUTHOR@EMAI>
+##
+## All lines beginning with `## DP:' are a description of the patch.
+## DP: Description: [IA64] fix early SAL init for sn2
+## DP: Patch author: jbarnes@sgi.com
+## DP: Upstream status: backported
+
+. $(dirname $0)/DPATCH
+
+@DPATCH@
+# This is a BitKeeper generated diff -Nru style patch.
+#
+# ChangeSet
+# 2005/01/22 14:58:21-08:00 jbarnes@sgi.com
+# [IA64] fix early SAL init for sn2
+#
+# sn2 does early initialization of the SAL so it can use it for early console
+# support. Unfortunately, the loop to find the SAL entry point was buggy so
+# when we tried out new EFI and SAL system table layouts, the loop didn't
+# terminate. Here's the fix (doh!, use two different loop counters instead of
+# one and just return if we find the SAL entry point).
+#
+# Signed-off-by: Jesse Barnes <jbarnes@sgi.com>
+# Signed-off-by: Tony Luck <tony.luck@intel.com>
+#
+# arch/ia64/sn/kernel/setup.c
+# 2005/01/22 14:57:15-08:00 jbarnes@sgi.com +5 -4
+# fix early SAL init for sn2
+#
+# include/asm-ia64/sal.h
+# 2005/01/22 14:57:26-08:00 jbarnes@sgi.com +2 -0
+# fix early SAL init for sn2
+#
+diff -Nru a/arch/ia64/sn/kernel/setup.c b/arch/ia64/sn/kernel/setup.c
+--- a/arch/ia64/sn/kernel/setup.c 2005-01-22 22:19:56 -08:00
++++ b/arch/ia64/sn/kernel/setup.c 2005-01-22 22:19:56 -08:00
+@@ -163,13 +163,12 @@
+
+ void __init early_sn_setup(void)
+ {
+- void ia64_sal_handler_init(void *entry_point, void *gpval);
+ efi_system_table_t *efi_systab;
+ efi_config_table_t *config_tables;
+ struct ia64_sal_systab *sal_systab;
+ struct ia64_sal_desc_entry_point *ep;
+ char *p;
+- int i;
++ int i, j;
+
+ /*
+ * Parse enough of the SAL tables to locate the SAL entry point. Since, console
+@@ -185,19 +184,21 @@
+ 0) {
+ sal_systab = __va(config_tables[i].table);
+ p = (char *)(sal_systab + 1);
+- for (i = 0; i < sal_systab->entry_count; i++) {
++ for (j = 0; j < sal_systab->entry_count; j++) {
+ if (*p == SAL_DESC_ENTRY_POINT) {
+ ep = (struct ia64_sal_desc_entry_point
+ *)p;
+ ia64_sal_handler_init(__va
+ (ep->sal_proc),
+ __va(ep->gp));
+- break;
++ return;
+ }
+ p += SAL_DESC_SIZE(*p);
+ }
+ }
+ }
++ /* Uh-oh, SAL not available?? */
++ printk(KERN_ERR "failed to find SAL entry point\n");
+ }
+
+ extern int platform_intr_list[];
+diff -Nru a/include/asm-ia64/sal.h b/include/asm-ia64/sal.h
+--- a/include/asm-ia64/sal.h 2005-01-22 22:19:56 -08:00
++++ b/include/asm-ia64/sal.h 2005-01-22 22:19:56 -08:00
+@@ -833,6 +833,8 @@
+ extern int ia64_sal_oemcall_reentrant(struct ia64_sal_retval *, u64, u64, u64,
+ u64, u64, u64, u64, u64);
+
++extern void ia64_sal_handler_init(void *entry_point, void *gpval);
++
+ #endif /* __ASSEMBLY__ */
+
+ #endif /* _ASM_IA64_SAL_H */
Added: trunk/kernel/source/kernel-source-2.6.10-2.6.10/debian/patches/082-ide_it8172_init_return_failure.dpatch
===================================================================
--- trunk/kernel/source/kernel-source-2.6.10-2.6.10/debian/patches/082-ide_it8172_init_return_failure.dpatch 2005-02-07 15:13:28 UTC (rev 2454)
+++ trunk/kernel/source/kernel-source-2.6.10-2.6.10/debian/patches/082-ide_it8172_init_return_failure.dpatch 2005-02-07 20:27:20 UTC (rev 2455)
@@ -0,0 +1,48 @@
+#! /bin/sh -e
+## <PATCHNAME>.dpatch by <PATCH_AUTHOR@EMAI>
+##
+## All lines beginning with `## DP:' are a description of the patch.
+## DP: Description: [ide] it8172: incorrect return from it8172_init_one()
+## DP: Patch author: bzolnier@trik.(none)
+## DP: Upstream status: backported
+
+. $(dirname $0)/DPATCH
+
+@DPATCH@
+# This is a BitKeeper generated diff -Nru style patch.
+#
+# ChangeSet
+# 2004/12/30 19:00:56+01:00 bzolnier@trik.(none)
+# [ide] it8172: incorrect return from it8172_init_one()
+#
+# From: Alan Cox <alan@lxorguk.ukuu.org.uk>
+#
+# Several IDE drivers return positive values as errors in the PCI setup
+# code. Unfortunately the PCI layer considers positive values as success
+# so the driver skips the device but still claims it and things then go
+# downhill.
+#
+# This fixes the IT8172 driver.
+#
+# From: Francois Romieu <romieu@fr.zoreil.com>
+#
+# Use -ENODEV instead of -EAGAIN.
+#
+# Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
+#
+# drivers/ide/pci/it8172.c
+# 2004/12/30 19:00:46+01:00 bzolnier@trik.(none) +1 -1
+# [ide] it8172: incorrect return from it8172_init_one()
+#
+diff -Nru a/drivers/ide/pci/it8172.c b/drivers/ide/pci/it8172.c
+--- a/drivers/ide/pci/it8172.c 2005-01-22 23:08:16 -08:00
++++ b/drivers/ide/pci/it8172.c 2005-01-22 23:08:16 -08:00
+@@ -270,7 +270,7 @@
+ {
+ if ((!(PCI_FUNC(dev->devfn) & 1) ||
+ (!((dev->class >> 8) == PCI_CLASS_STORAGE_IDE))))
+- return 1; /* IT8172 is more than only a IDE controller */
++ return -ENODEV; /* IT8172 is more than an IDE controller */
+ ide_setup_pci_device(dev, &it8172_chipsets[id->driver_data]);
+ return 0;
+ }
Added: trunk/kernel/source/kernel-source-2.6.10-2.6.10/debian/patches/083-x86_64_switch_mm_context_race.dpatch
===================================================================
--- trunk/kernel/source/kernel-source-2.6.10-2.6.10/debian/patches/083-x86_64_switch_mm_context_race.dpatch 2005-02-07 15:13:28 UTC (rev 2454)
+++ trunk/kernel/source/kernel-source-2.6.10-2.6.10/debian/patches/083-x86_64_switch_mm_context_race.dpatch 2005-02-07 20:27:20 UTC (rev 2455)
@@ -0,0 +1,51 @@
+#! /bin/sh -e
+## <PATCHNAME>.dpatch by <PATCH_AUTHOR@EMAI>
+##
+## All lines beginning with `## DP:' are a description of the patch.
+## DP: Description: [PATCH] x86_64: fix flush race on context switch
+## DP: Patch author: ak@suse.de
+## DP: Upstream status: backported
+
+. $(dirname $0)/DPATCH
+
+@DPATCH@
+# This is a BitKeeper generated diff -Nru style patch.
+#
+# ChangeSet
+# 2005/01/21 07:58:54-08:00 ak@suse.de
+# [PATCH] x86_64: fix flush race on context switch
+#
+# Fix a long standing race in x86-64 SMP TLB handling. When a mm is freed and
+# another thread exits to a lazy TLB thread (like idle) the freed user page
+# tables would be still kept loaded in the idle thread. When an interrupt does
+# a prefetch on NULL the CPU would try to follow it and read random data.
+#
+# This could lead to machine checks on Opterons in some cases.
+#
+# Credit goes to some unnamed debugging wizards at AMD who described the
+# problem. All blame to me. I did the fix based on their description.
+#
+# Signed-off-by: Andi Kleen <ak@suse.de>
+# Signed-off-by: Andrew Morton <akpm@osdl.org>
+# Signed-off-by: Linus Torvalds <torvalds@osdl.org>
+#
+# include/asm-x86_64/mmu_context.h
+# 2005/01/20 20:58:11-08:00 ak@suse.de +3 -2
+# x86_64: fix flush race on context switch
+#
+diff -Nru a/include/asm-x86_64/mmu_context.h b/include/asm-x86_64/mmu_context.h
+--- a/include/asm-x86_64/mmu_context.h 2005-01-22 21:36:29 -08:00
++++ b/include/asm-x86_64/mmu_context.h 2005-01-22 21:36:29 -08:00
+@@ -51,9 +51,10 @@
+ out_of_line_bug();
+ if(!test_and_set_bit(cpu, &next->cpu_vm_mask)) {
+ /* We were in lazy tlb mode and leave_mm disabled
+- * tlb flush IPI delivery. We must flush our tlb.
++ * tlb flush IPI delivery. We must reload CR3
++ * to make sure to use no freed page tables.
+ */
+- local_flush_tlb();
++ asm volatile("movq %0,%%cr3" :: "r" (__pa(next->pgd)) : "memory");
+ load_LDT_nolock(&next->context, cpu);
+ }
+ }
Added: trunk/kernel/source/kernel-source-2.6.10-2.6.10/debian/patches/084-smp_nmi_watchdog_race.dpatch
===================================================================
--- trunk/kernel/source/kernel-source-2.6.10-2.6.10/debian/patches/084-smp_nmi_watchdog_race.dpatch 2005-02-07 15:13:28 UTC (rev 2454)
+++ trunk/kernel/source/kernel-source-2.6.10-2.6.10/debian/patches/084-smp_nmi_watchdog_race.dpatch 2005-02-07 20:27:20 UTC (rev 2455)
@@ -0,0 +1,140 @@
+#! /bin/sh -e
+## <PATCHNAME>.dpatch by <PATCH_AUTHOR@EMAI>
+##
+## All lines beginning with `## DP:' are a description of the patch.
+## DP: Description: [PATCH] i386/x86-64: Fix SMP NMI watchdog race
+## DP: Patch author: ak@suse.de
+## DP: Upstream status: backported
+
+. $(dirname $0)/DPATCH
+
+@DPATCH@
+# This is a BitKeeper generated diff -Nru style patch.
+#
+# ChangeSet
+# 2005/01/21 07:59:10-08:00 ak@suse.de
+# [PATCH] i386/x86-64: Fix SMP NMI watchdog race
+#
+# Fix SMP race in NMI watchdog on i386/x86-64
+#
+# Fix a long standing SMP Setup race in the NMI watchdog. The watchdog would
+# tick from very early and check if all CPUs increase their timer interrupts.
+# For that it would check the cpu_online_map. Now if a CPU took too long to
+# boot the watchdog would trigger prematurely because the CPU didn't increase
+# its timer count yet.
+#
+# Fix is to check cpu_callin_map instead of cpu_online_map because the first is
+# only set when a CPU started its timer interrupt.
+#
+# I fixed it on i386 and x86-64.
+#
+# Description of the problem from Manpreet Singh. Thanks.
+#
+# Cc: <manpreet@fabric7.com>
+# Signed-off-by: Andrew Morton <akpm@osdl.org>
+# Signed-off-by: Linus Torvalds <torvalds@osdl.org>
+#
+# arch/i386/kernel/nmi.c
+# 2005/01/20 21:29:13-08:00 ak@suse.de +5 -1
+# i386/x86-64: Fix SMP NMI watchdog race
+#
+# arch/i386/kernel/smpboot.c
+# 2005/01/20 20:58:11-08:00 ak@suse.de +1 -1
+# i386/x86-64: Fix SMP NMI watchdog race
+#
+# arch/x86_64/kernel/nmi.c
+# 2005/01/20 21:29:11-08:00 ak@suse.de +5 -1
+# i386/x86-64: Fix SMP NMI watchdog race
+#
+# arch/x86_64/kernel/smpboot.c
+# 2005/01/20 20:58:11-08:00 ak@suse.de +1 -1
+# i386/x86-64: Fix SMP NMI watchdog race
+#
+# include/asm-i386/smp.h
+# 2005/01/20 20:58:11-08:00 ak@suse.de +1 -0
+# i386/x86-64: Fix SMP NMI watchdog race
+#
+# include/asm-x86_64/smp.h
+# 2005/01/20 20:58:11-08:00 ak@suse.de +1 -0
+# i386/x86-64: Fix SMP NMI watchdog race
+#
+diff -Nru a/arch/i386/kernel/nmi.c b/arch/i386/kernel/nmi.c
+--- a/arch/i386/kernel/nmi.c 2005-01-22 21:36:57 -08:00
++++ b/arch/i386/kernel/nmi.c 2005-01-22 21:36:57 -08:00
+@@ -117,8 +117,12 @@
+ /* FIXME: Only boot CPU is online at this stage. Check CPUs
+ as they come up. */
+ for (cpu = 0; cpu < NR_CPUS; cpu++) {
+- if (!cpu_online(cpu))
++#ifdef CONFIG_SMP
++ /* Check cpu_callin_map here because that is set
++ after the timer is started. */
++ if (!cpu_isset(cpu, cpu_callin_map))
+ continue;
++#endif
+ if (nmi_count(cpu) - prev_nmi_count[cpu] <= 5) {
+ printk("CPU#%d: NMI appears to be stuck!\n", cpu);
+ nmi_active = 0;
+diff -Nru a/arch/i386/kernel/smpboot.c b/arch/i386/kernel/smpboot.c
+--- a/arch/i386/kernel/smpboot.c 2005-01-22 21:36:57 -08:00
++++ b/arch/i386/kernel/smpboot.c 2005-01-22 21:36:57 -08:00
+@@ -66,7 +66,7 @@
+ /* bitmap of online cpus */
+ cpumask_t cpu_online_map;
+
+-static cpumask_t cpu_callin_map;
++cpumask_t cpu_callin_map;
+ cpumask_t cpu_callout_map;
+ static cpumask_t smp_commenced_mask;
+
+diff -Nru a/arch/x86_64/kernel/nmi.c b/arch/x86_64/kernel/nmi.c
+--- a/arch/x86_64/kernel/nmi.c 2005-01-22 21:36:57 -08:00
++++ b/arch/x86_64/kernel/nmi.c 2005-01-22 21:36:57 -08:00
+@@ -130,8 +130,12 @@
+ mdelay((10*1000)/nmi_hz); // wait 10 ticks
+
+ for (cpu = 0; cpu < NR_CPUS; cpu++) {
+- if (!cpu_online(cpu))
++#ifdef CONFIG_SMP
++ /* Check cpu_callin_map here because that is set
++ after the timer is started. */
++ if (!cpu_isset(cpu, cpu_callin_map))
+ continue;
++#endif
+ if (cpu_pda[cpu].__nmi_count - counts[cpu] <= 5) {
+ printk("CPU#%d: NMI appears to be stuck (%d)!\n",
+ cpu,
+diff -Nru a/arch/x86_64/kernel/smpboot.c b/arch/x86_64/kernel/smpboot.c
+--- a/arch/x86_64/kernel/smpboot.c 2005-01-22 21:36:57 -08:00
++++ b/arch/x86_64/kernel/smpboot.c 2005-01-22 21:36:57 -08:00
+@@ -63,7 +63,7 @@
+ /* Bitmask of currently online CPUs */
+ cpumask_t cpu_online_map;
+
+-static cpumask_t cpu_callin_map;
++cpumask_t cpu_callin_map;
+ cpumask_t cpu_callout_map;
+ static cpumask_t smp_commenced_mask;
+
+diff -Nru a/include/asm-i386/smp.h b/include/asm-i386/smp.h
+--- a/include/asm-i386/smp.h 2005-01-22 21:36:57 -08:00
++++ b/include/asm-i386/smp.h 2005-01-22 21:36:57 -08:00
+@@ -53,6 +53,7 @@
+ #define __smp_processor_id() (current_thread_info()->cpu)
+
+ extern cpumask_t cpu_callout_map;
++extern cpumask_t cpu_callin_map;
+ #define cpu_possible_map cpu_callout_map
+
+ /* We don't mark CPUs online until __cpu_up(), so we need another measure */
+diff -Nru a/include/asm-x86_64/smp.h b/include/asm-x86_64/smp.h
+--- a/include/asm-x86_64/smp.h 2005-01-22 21:36:57 -08:00
++++ b/include/asm-x86_64/smp.h 2005-01-22 21:36:57 -08:00
+@@ -59,6 +59,7 @@
+ */
+
+ extern cpumask_t cpu_callout_map;
++extern cpumask_t cpu_callin_map;
+ #define cpu_possible_map cpu_callout_map
+
+ static inline int num_booting_cpus(void)
Added: trunk/kernel/source/kernel-source-2.6.10-2.6.10/debian/patches/085-ia64_irq_reg_typo.dpatch
===================================================================
--- trunk/kernel/source/kernel-source-2.6.10-2.6.10/debian/patches/085-ia64_irq_reg_typo.dpatch 2005-02-07 15:13:28 UTC (rev 2454)
+++ trunk/kernel/source/kernel-source-2.6.10-2.6.10/debian/patches/085-ia64_irq_reg_typo.dpatch 2005-02-07 20:27:20 UTC (rev 2455)
@@ -0,0 +1,39 @@
+#! /bin/sh -e
+## <PATCHNAME>.dpatch by <PATCH_AUTHOR@EMAI>
+##
+## All lines beginning with `## DP:' are a description of the patch.
+## DP: Description: [IA64] irq_ia64.c typo s/_IA64_REG_AR_SP/_IA64_REG_SP/
+## DP: Patch author: tony.luck@intel.com
+## DP: Upstream status: backported
+
+. $(dirname $0)/DPATCH
+
+@DPATCH@
+# This is a BitKeeper generated diff -Nru style patch.
+#
+# ChangeSet
+# 2004/12/28 13:15:44-08:00 tony.luck@intel.com
+# [IA64] irq_ia64.c typo s/_IA64_REG_AR_SP/_IA64_REG_SP/
+#
+# Patch supplied by Sourav Sen from HP:
+# If I turn on IRQ_DEBUG in arch/ia64/kernel/irq_ia64.c in 2.6.8.1,
+# the compilation does not go thru as there isn't any _IA64_REG_AR_SP
+#
+# Signed-off-by: Tony Luck <tony.luck@intel.com>
+#
+# arch/ia64/kernel/irq_ia64.c
+# 2004/12/28 13:12:43-08:00 tony.luck@intel.com +1 -1
+# typo s/_IA64_REG_AR_SP/_IA64_REG_SP/
+#
+diff -Nru a/arch/ia64/kernel/irq_ia64.c b/arch/ia64/kernel/irq_ia64.c
+--- a/arch/ia64/kernel/irq_ia64.c 2005-01-22 21:48:10 -08:00
++++ b/arch/ia64/kernel/irq_ia64.c 2005-01-22 21:48:10 -08:00
+@@ -115,7 +115,7 @@
+ * switched atomically.
+ */
+ bsp = ia64_getreg(_IA64_REG_AR_BSP);
+- sp = ia64_getreg(_IA64_REG_AR_SP);
++ sp = ia64_getreg(_IA64_REG_SP);
+
+ if ((sp - bsp) < 1024) {
+ static unsigned char count;
Added: trunk/kernel/source/kernel-source-2.6.10-2.6.10/debian/patches/086-i386_cpufreq_powernow_k8_acpi_error.dpatch
===================================================================
--- trunk/kernel/source/kernel-source-2.6.10-2.6.10/debian/patches/086-i386_cpufreq_powernow_k8_acpi_error.dpatch 2005-02-07 15:13:28 UTC (rev 2454)
+++ trunk/kernel/source/kernel-source-2.6.10-2.6.10/debian/patches/086-i386_cpufreq_powernow_k8_acpi_error.dpatch 2005-02-07 20:27:20 UTC (rev 2455)
@@ -0,0 +1,52 @@
+#! /bin/sh -e
+## <PATCHNAME>.dpatch by <PATCH_AUTHOR@EMAI>
+##
+## All lines beginning with `## DP:' are a description of the patch.
+## DP: Description: [CPUFREQ] powernow-k8: unregister from ACPI perflib in error path
+## DP: Patch author: davej@redhat.com
+## DP: Upstream status: backported
+
+. $(dirname $0)/DPATCH
+
+@DPATCH@
+# This is a BitKeeper generated diff -Nru style patch.
+#
+# ChangeSet
+# 2004/12/29 02:41:40-05:00 davej@redhat.com
+# [CPUFREQ] powernow-k8: unregister from ACPI perflib in error path
+#
+# If something fails in the per-CPU initialization in powernow-k8, it should
+# unregister itself from the ACPI performance library.
+#
+# Signed-off-by: Dominik Brodowski <linux@brodo.de>
+# Signed-off-by: Dave Jones <davej@redhat.com>
+#
+# arch/i386/kernel/cpu/cpufreq/powernow-k8.c
+# 2004/12/29 02:41:24-05:00 davej@redhat.com +2 -0
+# [CPUFREQ] powernow-k8: unregister from ACPI perflib in error path
+#
+# If something fails in the per-CPU initialization in powernow-k8, it should
+# unregister itself from the ACPI performance library.
+#
+# Signed-off-by: Dominik Brodowski <linux@brodo.de>
+# Signed-off-by: Dave Jones <davej@redhat.com>
+#
+diff -Nru a/arch/i386/kernel/cpu/cpufreq/powernow-k8.c b/arch/i386/kernel/cpu/cpufreq/powernow-k8.c
+--- a/arch/i386/kernel/cpu/cpufreq/powernow-k8.c 2005-01-22 22:03:03 -08:00
++++ b/arch/i386/kernel/cpu/cpufreq/powernow-k8.c 2005-01-22 22:03:03 -08:00
+@@ -1010,6 +1010,7 @@
+ /* min/max the cpu is capable of */
+ if (cpufreq_frequency_table_cpuinfo(pol, data->powernow_table)) {
+ printk(KERN_ERR PFX "invalid powernow_table\n");
++ powernow_k8_cpu_exit_acpi(data);
+ kfree(data->powernow_table);
+ kfree(data);
+ return -EINVAL;
+@@ -1027,6 +1028,7 @@
+ err_out:
+ set_cpus_allowed(current, oldmask);
+ schedule();
++ powernow_k8_cpu_exit_acpi(data);
+
+ kfree(data);
+ return -ENODEV;
Added: trunk/kernel/source/kernel-source-2.6.10-2.6.10/debian/patches/087-ext3_graceful_corruption_fixes.dpatch
===================================================================
--- trunk/kernel/source/kernel-source-2.6.10-2.6.10/debian/patches/087-ext3_graceful_corruption_fixes.dpatch 2005-02-07 15:13:28 UTC (rev 2454)
+++ trunk/kernel/source/kernel-source-2.6.10-2.6.10/debian/patches/087-ext3_graceful_corruption_fixes.dpatch 2005-02-07 20:27:20 UTC (rev 2455)
@@ -0,0 +1,191 @@
+#! /bin/sh -e
+## <PATCHNAME>.dpatch by <PATCH_AUTHOR@EMAI>
+##
+## All lines beginning with `## DP:' are a description of the patch.
+## DP: Description: [PATCH] ext3: handle attempted delete of bitmap blocks.
+## DP: Patch author: sct@redhat.com
+## DP: Upstream status: backported
+
+. $(dirname $0)/DPATCH
+
+@DPATCH@
+# This is a BitKeeper generated diff -Nru style patch.
+#
+# ChangeSet
+# 2005/01/04 21:27:36-08:00 sct@redhat.com
+# [PATCH] ext3: handle attempted delete of bitmap blocks.
+#
+# This patch improves ext3's ability to deal with corruption on-disk. If we
+# ever get a corrupt inode or indirect block, then an attempt to delete it
+# can end up trying to remove any block on the fs, including bitmap blocks.
+# This can cause ext3 to assert-fail as we end up trying to do an ext3_forget
+# on a buffer with b_committed_data set.
+#
+# The fix is to downgrade this to an IO error and journal abort, so that we
+# take the filesystem readonly but don't bring down the whole kernel.
+#
+# Make J_EXPECT_JH() return a value so it can be easily tested and yet still
+# retained as an assert failure if we build ext3 with full internal debugging
+# enabled. Make journal_forget() return an error code so that in this case
+# the error can be passed up to the caller.
+#
+# This is easily reproduced with a sample ext3 fs image containing an inode
+# whose direct and indirect blocks refer to a block bitmap block. Allocating
+# new blocks and then deleting that inode will BUG() with:
+#
+# Assertion failure in journal_forget() at fs/jbd/transaction.c:1228:
+# "!jh->b_committed_data"
+#
+# With the fix, ext3 recovers gracefully.
+#
+# Signed-off-by: Stephen Tweedie <sct@redhat.com>
+# Signed-off-by: Andrew Morton <akpm@osdl.org>
+# Signed-off-by: Linus Torvalds <torvalds@osdl.org>
+#
+# fs/ext3/inode.c
+# 2005/01/04 20:24:31-08:00 sct@redhat.com +1 -1
+# ext3: handle attempted delete of bitmap blocks.
+#
+# fs/jbd/transaction.c
+# 2005/01/04 18:48:12-08:00 sct@redhat.com +12 -4
+# ext3: handle attempted delete of bitmap blocks.
+#
+# include/linux/ext3_jbd.h
+# 2005/01/04 18:48:12-08:00 sct@redhat.com +8 -3
+# ext3: handle attempted delete of bitmap blocks.
+#
+# include/linux/jbd.h
+# 2005/01/04 18:48:12-08:00 sct@redhat.com +7 -5
+# ext3: handle attempted delete of bitmap blocks.
+#
+diff -Nru a/fs/ext3/inode.c b/fs/ext3/inode.c
+--- a/fs/ext3/inode.c 2005-01-22 22:56:19 -08:00
++++ b/fs/ext3/inode.c 2005-01-22 22:56:19 -08:00
+@@ -84,7 +84,7 @@
+ (!is_metadata && !ext3_should_journal_data(inode))) {
+ if (bh) {
+ BUFFER_TRACE(bh, "call journal_forget");
+- ext3_journal_forget(handle, bh);
++ return ext3_journal_forget(handle, bh);
+ }
+ return 0;
+ }
+diff -Nru a/fs/jbd/transaction.c b/fs/jbd/transaction.c
+--- a/fs/jbd/transaction.c 2005-01-22 22:56:19 -08:00
++++ b/fs/jbd/transaction.c 2005-01-22 22:56:19 -08:00
+@@ -1198,11 +1198,12 @@
+ * Allow this call even if the handle has aborted --- it may be part of
+ * the caller's cleanup after an abort.
+ */
+-void journal_forget(handle_t *handle, struct buffer_head *bh)
++int journal_forget (handle_t *handle, struct buffer_head *bh)
+ {
+ transaction_t *transaction = handle->h_transaction;
+ journal_t *journal = transaction->t_journal;
+ struct journal_head *jh;
++ int err = 0;
+
+ BUFFER_TRACE(bh, "entry");
+
+@@ -1213,6 +1214,14 @@
+ goto not_jbd;
+ jh = bh2jh(bh);
+
++ /* Critical error: attempting to delete a bitmap buffer, maybe?
++ * Don't do any jbd operations, and return an error. */
++ if (!J_EXPECT_JH(jh, !jh->b_committed_data,
++ "inconsistent data on disk")) {
++ err = -EIO;
++ goto not_jbd;
++ }
++
+ if (jh->b_transaction == handle->h_transaction) {
+ J_ASSERT_JH(jh, !jh->b_frozen_data);
+
+@@ -1223,7 +1232,6 @@
+ clear_buffer_jbddirty(bh);
+
+ JBUFFER_TRACE(jh, "belongs to current transaction: unfile");
+- J_ASSERT_JH(jh, !jh->b_committed_data);
+
+ __journal_unfile_buffer(jh);
+
+@@ -1248,7 +1256,7 @@
+ spin_unlock(&journal->j_list_lock);
+ jbd_unlock_bh_state(bh);
+ __bforget(bh);
+- return;
++ return 0;
+ }
+ }
+ } else if (jh->b_transaction) {
+@@ -1270,7 +1278,7 @@
+ spin_unlock(&journal->j_list_lock);
+ jbd_unlock_bh_state(bh);
+ __brelse(bh);
+- return;
++ return err;
+ }
+
+ /**
+diff -Nru a/include/linux/ext3_jbd.h b/include/linux/ext3_jbd.h
+--- a/include/linux/ext3_jbd.h 2005-01-22 22:56:19 -08:00
++++ b/include/linux/ext3_jbd.h 2005-01-22 22:56:19 -08:00
+@@ -138,10 +138,13 @@
+ journal_release_buffer(handle, bh, credits);
+ }
+
+-static inline void
+-ext3_journal_forget(handle_t *handle, struct buffer_head *bh)
++static inline int
++__ext3_journal_forget(const char *where, handle_t *handle, struct buffer_head *bh)
+ {
+- journal_forget(handle, bh);
++ int err = journal_forget(handle, bh);
++ if (err)
++ ext3_journal_abort_handle(where, __FUNCTION__, bh, handle,err);
++ return err;
+ }
+
+ static inline int
+@@ -187,6 +190,8 @@
+ __ext3_journal_get_create_access(__FUNCTION__, (handle), (bh))
+ #define ext3_journal_dirty_metadata(handle, bh) \
+ __ext3_journal_dirty_metadata(__FUNCTION__, (handle), (bh))
++#define ext3_journal_forget(handle, bh) \
++ __ext3_journal_forget(__FUNCTION__, (handle), (bh))
+
+ int ext3_journal_dirty_data(handle_t *handle, struct buffer_head *bh);
+
+diff -Nru a/include/linux/jbd.h b/include/linux/jbd.h
+--- a/include/linux/jbd.h 2005-01-22 22:56:19 -08:00
++++ b/include/linux/jbd.h 2005-01-22 22:56:19 -08:00
+@@ -277,13 +277,15 @@
+ #define J_EXPECT_JH(jh, expr, why...) J_ASSERT_JH(jh, expr)
+ #else
+ #define __journal_expect(expr, why...) \
+- do { \
+- if (!(expr)) { \
++ ({ \
++ int val = (expr); \
++ if (!val) { \
+ printk(KERN_ERR \
+ "EXT3-fs unexpected failure: %s;\n",# expr); \
+- printk(KERN_ERR why); \
++ printk(KERN_ERR why "\n"); \
+ } \
+- } while (0)
++ val; \
++ })
+ #define J_EXPECT(expr, why...) __journal_expect(expr, ## why)
+ #define J_EXPECT_BH(bh, expr, why...) __journal_expect(expr, ## why)
+ #define J_EXPECT_JH(jh, expr, why...) __journal_expect(expr, ## why)
+@@ -874,7 +876,7 @@
+ extern int journal_dirty_metadata (handle_t *, struct buffer_head *);
+ extern void journal_release_buffer (handle_t *, struct buffer_head *,
+ int credits);
+-extern void journal_forget (handle_t *, struct buffer_head *);
++extern int journal_forget (handle_t *, struct buffer_head *);
+ extern void journal_sync_buffer (struct buffer_head *);
+ extern int journal_invalidatepage(journal_t *,
+ struct page *, unsigned long);
Modified: trunk/kernel/source/kernel-source-2.6.10-2.6.10/debian/patches/series/2.6.10-5
===================================================================
--- trunk/kernel/source/kernel-source-2.6.10-2.6.10/debian/patches/series/2.6.10-5 2005-02-07 15:13:28 UTC (rev 2454)
+++ trunk/kernel/source/kernel-source-2.6.10-2.6.10/debian/patches/series/2.6.10-5 2005-02-07 20:27:20 UTC (rev 2455)
@@ -6,3 +6,40 @@
+ amd64-parse-noexec-fix.dpatch
+ amd64-int3-fix.dpatch
+ fbdev-radeon-noaccel.dpatch
++ 051-md_sync_page_io_max_vecs.dpatch
++ 052-vfat_valid_longname_proper_return.dpatch
++ 053-ipmi_unhandled_message_counting.dpatch
++ 054-ext3_journal_abort_before_panic.dpatch
++ 055-uml_new_thread_race.dpatch
++ 056-x86_64_acpi_do_suspend_lowlevel_arg.dpatch
++ 057-scsi_ioctl_unknown_opcode.dpatch
++ 058-ia64_binfmt_elf_bug_out.dpatch
++ 059-ia64_unwind_stack_check.dpatch
++ 060-alsa_cs4231_lib_ifdef_typo.dpatch
++ 061-alsa_es18xx_ifdef_typo.dpatch
++ 062-alsa_sscape_user_copy_check.dpatch
++ 063-alsa_opl4_build_fix.dpatch
++ 064-alsa_usbaudio_disconnect.dpatch
++ 065-alsa_vx_kcalloc.dpatch
++ 066-ibmvscsi_probe_delay_loop_fix.dpatch
++ 067-scsi_gdth_pci_map_sg.dpatch
++ 068-scsi_sd_read_capacity_LBD_bail.dpatch
++ 069-alsa_sscape_upload_firmware_len.dpatch
++ 070-alsa_rme9652_hdsp_get_autosync.dpatch
++ 071-alsa_creation_order_fixes.dpatch
++ 072-sctp_do_bind_random_port.dpatch
++ 073-usb_gadget_serial_free_ports.dpatch
++ 074-usb_makefile_fixes.dpatch
++ 075-acpiphp_ibm_module_parm_perm.dpatch
++ 076-i2c_ali1563_devinit_fixes.dpatch
++ 077-ext3_journal_abort_handle_silence.dpatch
++ 078-jbd_journal_revoke_graceful_double_delete.dpatch
++ 079-i386_timer_resume_slowdown.dpatch
++ 080-kernel_sched_might_sleep_ignore_if_oopsed.dpatch
++ 081-ia64_early_sn_setup_nested_loop.dpatch
++ 082-ide_it8172_init_return_failure.dpatch
++ 083-x86_64_switch_mm_context_race.dpatch
++ 084-smp_nmi_watchdog_race.dpatch
++ 085-ia64_irq_reg_typo.dpatch
++ 086-i386_cpufreq_powernow_k8_acpi_error.dpatch
++ 087-ext3_graceful_corruption_fixes.dpatch