while we are at it name it linux-kernel

svn path=/branches/linux-kernel-2.6.12/; revision=3354
This commit is contained in:
maximilian attems 2005-06-18 22:11:15 +00:00
parent 64d0ce873a
commit 65582dd7e2
23 changed files with 11282 additions and 0 deletions

View File

@ -0,0 +1,18 @@
## amd64-int3-fix.dpatch by <fschueler@gmx.net>
##
## All lines beginning with `## DP:' are a description of the patch.
## DP: Description: Revert int3 handling
## DP: Patch author: Andi Kleen <ak@muc.de>
## DP: Upstream status: not yet committed to BK
#
--- a/arch/x86_64/kernel/kprobes.c 2005-06-06 11:22:29.000000000 -0400
+++ b/arch/x86_64/kernel/kprobes.c 2005-06-15 21:17:14.000000000 -0400
@@ -447,6 +447,8 @@
struct die_args *args = (struct die_args *)data;
switch (val) {
case DIE_INT3:
+ if (args->regs->cs & 3)
+ return NOTIFY_DONE;
if (kprobe_handler(args->regs))
return NOTIFY_STOP;
break;

24
debian/patches-debian/amd64-outs.patch vendored Normal file
View File

@ -0,0 +1,24 @@
#! /bin/sh -e
## <PATCHNAME>.dpatch by <PATCH_AUTHOR@EMAI>
##
## All lines beginning with `## DP:' are a description of the patch.
## DP: Description: [CAN-2005-0204]: AMD64, allows local users to write to privileged IO ports via OUTS instruction
## DP: Patch author: Suresh Siddha (suresh.b.siddha@intel.com)
## DP: Upstream status: unknown
## DP: URL: https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=146244
## DP: Patch source: Micah Anderson <micah@riseup.net> (debian-kernel)
. $(dirname $0)/DPATCH
@DPATCH@
--- linux-2.6.9/include/asm-x86_64/desc.h 2005-01-30 20:08:12.799247944 -0800
+++ linux-2.6.9/include/asm-x86_64/desc.h 2005-01-30 20:08:12.799247944 -0800
@@ -128,7 +128,7 @@
{
set_tssldt_descriptor(&cpu_gdt_table[cpu][GDT_ENTRY_TSS], (unsigned long)addr,
DESC_TSS,
- sizeof(struct tss_struct) - 1);
+ IO_BITMAP_OFFSET + IO_BITMAP_BYTES + 7);
}
static inline void set_ldt_desc(unsigned cpu, void *addr, int size)

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,339 @@
diff -aurN a/drivers/ide/pci/alim15x3.c b/drivers/ide/pci/alim15x3.c
--- a/drivers/ide/pci/alim15x3.c 2005-06-06 11:22:29.000000000 -0400
+++ b/drivers/ide/pci/alim15x3.c 2005-06-15 22:01:23.000000000 -0400
@@ -583,7 +583,7 @@
* appropriate also sets up the 1533 southbridge.
*/
-static unsigned int __init init_chipset_ali15x3 (struct pci_dev *dev, const char *name)
+static unsigned int __devinit init_chipset_ali15x3 (struct pci_dev *dev, const char *name)
{
unsigned long flags;
u8 tmpbyte;
@@ -677,7 +677,7 @@
* FIXME: frobs bits that are not defined on newer ALi devicea
*/
-static unsigned int __init ata66_ali15x3 (ide_hwif_t *hwif)
+static unsigned int __devinit ata66_ali15x3 (ide_hwif_t *hwif)
{
struct pci_dev *dev = hwif->pci_dev;
unsigned int ata66 = 0;
@@ -748,7 +748,7 @@
* Initialize the IDE structure side of the ALi 15x3 driver.
*/
-static void __init init_hwif_common_ali15x3 (ide_hwif_t *hwif)
+static void __devinit init_hwif_common_ali15x3 (ide_hwif_t *hwif)
{
hwif->autodma = 0;
hwif->tuneproc = &ali15x3_tune_drive;
@@ -794,7 +794,7 @@
* Sparc systems
*/
-static void __init init_hwif_ali15x3 (ide_hwif_t *hwif)
+static void __devinit init_hwif_ali15x3 (ide_hwif_t *hwif)
{
u8 ideic, inmir;
s8 irq_routing_table[] = { -1, 9, 3, 10, 4, 5, 7, 6,
@@ -847,7 +847,7 @@
* the actual work.
*/
-static void __init init_dma_ali15x3 (ide_hwif_t *hwif, unsigned long dmabase)
+static void __devinit init_dma_ali15x3 (ide_hwif_t *hwif, unsigned long dmabase)
{
if (m5229_revision < 0x20)
return;
diff -aurN a/drivers/ide/pci/amd74xx.c b/drivers/ide/pci/amd74xx.c
--- a/drivers/ide/pci/amd74xx.c 2005-06-06 11:22:29.000000000 -0400
+++ b/drivers/ide/pci/amd74xx.c 2005-06-15 22:01:23.000000000 -0400
@@ -309,7 +309,7 @@
* and initialize its drive independent registers.
*/
-static unsigned int __init init_chipset_amd74xx(struct pci_dev *dev, const char *name)
+static unsigned int __devinit init_chipset_amd74xx(struct pci_dev *dev, const char *name)
{
unsigned char t;
unsigned int u;
@@ -413,7 +413,7 @@
return dev->irq;
}
-static void __init init_hwif_amd74xx(ide_hwif_t *hwif)
+static void __devinit init_hwif_amd74xx(ide_hwif_t *hwif)
{
int i;
diff -aurN a/drivers/ide/pci/cmd640.c b/drivers/ide/pci/cmd640.c
--- a/drivers/ide/pci/cmd640.c 2005-06-06 11:22:29.000000000 -0400
+++ b/drivers/ide/pci/cmd640.c 2005-06-15 22:01:23.000000000 -0400
@@ -278,7 +278,7 @@
spin_unlock_irqrestore(&ide_lock, flags);
}
-static int __init match_pci_cmd640_device (void)
+static int __devinit match_pci_cmd640_device (void)
{
const u8 ven_dev[4] = {0x95, 0x10, 0x40, 0x06};
unsigned int i;
@@ -298,7 +298,7 @@
/*
* Probe for CMD640x -- pci method 1
*/
-static int __init probe_for_cmd640_pci1 (void)
+static int __devinit probe_for_cmd640_pci1 (void)
{
__get_cmd640_reg = get_cmd640_reg_pci1;
__put_cmd640_reg = put_cmd640_reg_pci1;
@@ -314,7 +314,7 @@
/*
* Probe for CMD640x -- pci method 2
*/
-static int __init probe_for_cmd640_pci2 (void)
+static int __devinit probe_for_cmd640_pci2 (void)
{
__get_cmd640_reg = get_cmd640_reg_pci2;
__put_cmd640_reg = put_cmd640_reg_pci2;
@@ -328,7 +328,7 @@
/*
* Probe for CMD640x -- vlb
*/
-static int __init probe_for_cmd640_vlb (void)
+static int __devinit probe_for_cmd640_vlb (void)
{
u8 b;
@@ -349,7 +349,7 @@
* Returns 1 if an IDE interface/drive exists at 0x170,
* Returns 0 otherwise.
*/
-static int __init secondary_port_responding (void)
+static int __devinit secondary_port_responding (void)
{
unsigned long flags;
@@ -392,7 +392,7 @@
* Check whether prefetch is on for a drive,
* and initialize the unmask flags for safe operation.
*/
-static void __init check_prefetch (unsigned int index)
+static void __devinit check_prefetch (unsigned int index)
{
ide_drive_t *drive = cmd_drives[index];
u8 b = get_cmd640_reg(prefetch_regs[index]);
@@ -413,7 +413,7 @@
/*
* Figure out which devices we control
*/
-static void __init setup_device_ptrs (void)
+static void __devinit setup_device_ptrs (void)
{
unsigned int i;
@@ -495,7 +495,7 @@
/*
* This routine retrieves the initial drive timings from the chipset.
*/
-static void __init retrieve_drive_counts (unsigned int index)
+static void __devinit retrieve_drive_counts (unsigned int index)
{
u8 b;
@@ -716,7 +716,7 @@
/*
* Probe for a cmd640 chipset, and initialize it if found. Called from ide.c
*/
-int __init ide_probe_for_cmd640x (void)
+int __devinit ide_probe_for_cmd640x (void)
{
#ifdef CONFIG_BLK_DEV_CMD640_ENHANCED
int second_port_toggled = 0;
diff -aurN a/drivers/ide/pci/cs5530.c b/drivers/ide/pci/cs5530.c
--- a/drivers/ide/pci/cs5530.c 2005-06-06 11:22:29.000000000 -0400
+++ b/drivers/ide/pci/cs5530.c 2005-06-15 22:01:23.000000000 -0400
@@ -217,7 +217,7 @@
* Initialize the cs5530 bridge for reliable IDE DMA operation.
*/
-static unsigned int __init init_chipset_cs5530 (struct pci_dev *dev, const char *name)
+static unsigned int __devinit init_chipset_cs5530 (struct pci_dev *dev, const char *name)
{
struct pci_dev *master_0 = NULL, *cs5530_0 = NULL;
unsigned long flags;
@@ -308,7 +308,7 @@
* performs channel-specific pre-initialization before drive probing.
*/
-static void __init init_hwif_cs5530 (ide_hwif_t *hwif)
+static void __devinit init_hwif_cs5530 (ide_hwif_t *hwif)
{
unsigned long basereg;
u32 d0_timings;
diff -aurN a/drivers/ide/pci/cy82c693.c b/drivers/ide/pci/cy82c693.c
--- a/drivers/ide/pci/cy82c693.c 2005-06-06 11:22:29.000000000 -0400
+++ b/drivers/ide/pci/cy82c693.c 2005-06-15 22:01:23.000000000 -0400
@@ -391,7 +391,7 @@
/*
* this function is called during init and is used to setup the cy82c693 chip
*/
-static unsigned int __init init_chipset_cy82c693(struct pci_dev *dev, const char *name)
+static unsigned int __devinit init_chipset_cy82c693(struct pci_dev *dev, const char *name)
{
if (PCI_FUNC(dev->devfn) != 1)
return 0;
@@ -443,7 +443,7 @@
/*
* the init function - called for each ide channel once
*/
-static void __init init_hwif_cy82c693(ide_hwif_t *hwif)
+static void __devinit init_hwif_cy82c693(ide_hwif_t *hwif)
{
hwif->autodma = 0;
@@ -467,9 +467,9 @@
hwif->drives[1].autodma = hwif->autodma;
}
-static __initdata ide_hwif_t *primary;
+static __devinitdata ide_hwif_t *primary;
-void __init init_iops_cy82c693(ide_hwif_t *hwif)
+void __devinit init_iops_cy82c693(ide_hwif_t *hwif)
{
if (PCI_FUNC(hwif->pci_dev->devfn) == 1)
primary = hwif;
diff -aurN a/drivers/ide/pci/it8172.c b/drivers/ide/pci/it8172.c
--- a/drivers/ide/pci/it8172.c 2005-06-06 11:22:29.000000000 -0400
+++ b/drivers/ide/pci/it8172.c 2005-06-15 22:01:23.000000000 -0400
@@ -216,7 +216,7 @@
return 0;
}
-static unsigned int __init init_chipset_it8172 (struct pci_dev *dev, const char *name)
+static unsigned int __devinit init_chipset_it8172 (struct pci_dev *dev, const char *name)
{
unsigned char progif;
@@ -230,7 +230,7 @@
}
-static void __init init_hwif_it8172 (ide_hwif_t *hwif)
+static void __devinit init_hwif_it8172 (ide_hwif_t *hwif)
{
struct pci_dev* dev = hwif->pci_dev;
unsigned long cmdBase, ctrlBase;
diff -aurN a/drivers/ide/pci/ns87415.c b/drivers/ide/pci/ns87415.c
--- a/drivers/ide/pci/ns87415.c 2005-06-06 11:22:29.000000000 -0400
+++ b/drivers/ide/pci/ns87415.c 2005-06-15 22:01:23.000000000 -0400
@@ -195,7 +195,7 @@
return __ide_dma_check(drive);
}
-static void __init init_hwif_ns87415 (ide_hwif_t *hwif)
+static void __devinit init_hwif_ns87415 (ide_hwif_t *hwif)
{
struct pci_dev *dev = hwif->pci_dev;
unsigned int ctrl, using_inta;
diff -aurN a/drivers/ide/pci/opti621.c b/drivers/ide/pci/opti621.c
--- a/drivers/ide/pci/opti621.c 2005-06-06 11:22:29.000000000 -0400
+++ b/drivers/ide/pci/opti621.c 2005-06-15 22:01:23.000000000 -0400
@@ -326,7 +326,7 @@
/*
* init_hwif_opti621() is called once for each hwif found at boot.
*/
-static void __init init_hwif_opti621 (ide_hwif_t *hwif)
+static void __devinit init_hwif_opti621 (ide_hwif_t *hwif)
{
hwif->autodma = 0;
hwif->drives[0].drive_data = PIO_DONT_KNOW;
diff -aurN a/drivers/ide/pci/sc1200.c b/drivers/ide/pci/sc1200.c
--- a/drivers/ide/pci/sc1200.c 2005-06-06 11:22:29.000000000 -0400
+++ b/drivers/ide/pci/sc1200.c 2005-06-15 22:01:23.000000000 -0400
@@ -459,7 +459,7 @@
* This gets invoked by the IDE driver once for each channel,
* and performs channel-specific pre-initialization before drive probing.
*/
-static void __init init_hwif_sc1200 (ide_hwif_t *hwif)
+static void __devinit init_hwif_sc1200 (ide_hwif_t *hwif)
{
if (hwif->mate)
hwif->serialized = hwif->mate->serialized = 1;
diff -aurN a/drivers/ide/pci/sl82c105.c b/drivers/ide/pci/sl82c105.c
--- a/drivers/ide/pci/sl82c105.c 2005-06-06 11:22:29.000000000 -0400
+++ b/drivers/ide/pci/sl82c105.c 2005-06-15 22:01:23.000000000 -0400
@@ -386,7 +386,7 @@
* channel 0 here at least, but channel 1 has to be enabled by
* firmware or arch code. We still set both to 16 bits mode.
*/
-static unsigned int __init init_chipset_sl82c105(struct pci_dev *dev, const char *msg)
+static unsigned int __devinit init_chipset_sl82c105(struct pci_dev *dev, const char *msg)
{
u32 val;
@@ -399,7 +399,7 @@
return dev->irq;
}
-static void __init init_dma_sl82c105(ide_hwif_t *hwif, unsigned long dma_base)
+static void __devinit init_dma_sl82c105(ide_hwif_t *hwif, unsigned long dma_base)
{
unsigned int rev;
u8 dma_state;
@@ -431,7 +431,7 @@
* Initialise the chip
*/
-static void __init init_hwif_sl82c105(ide_hwif_t *hwif)
+static void __devinit init_hwif_sl82c105(ide_hwif_t *hwif)
{
struct pci_dev *dev = hwif->pci_dev;
u32 val;
diff -aurN a/drivers/ide/pci/slc90e66.c b/drivers/ide/pci/slc90e66.c
--- a/drivers/ide/pci/slc90e66.c 2005-06-06 11:22:29.000000000 -0400
+++ b/drivers/ide/pci/slc90e66.c 2005-06-15 22:01:23.000000000 -0400
@@ -196,7 +196,7 @@
}
#endif /* CONFIG_BLK_DEV_IDEDMA */
-static void __init init_hwif_slc90e66 (ide_hwif_t *hwif)
+static void __devinit init_hwif_slc90e66 (ide_hwif_t *hwif)
{
u8 reg47 = 0;
u8 mask = hwif->channel ? 0x01 : 0x02; /* bit0:Primary */
diff -aurN a/drivers/ide/pci/triflex.c b/drivers/ide/pci/triflex.c
--- a/drivers/ide/pci/triflex.c 2005-06-06 11:22:29.000000000 -0400
+++ b/drivers/ide/pci/triflex.c 2005-06-15 22:01:23.000000000 -0400
@@ -130,7 +130,7 @@
return hwif->ide_dma_off_quietly(drive);
}
-static void __init init_hwif_triflex(ide_hwif_t *hwif)
+static void __devinit init_hwif_triflex(ide_hwif_t *hwif)
{
hwif->tuneproc = &triflex_tune_drive;
hwif->speedproc = &triflex_tune_chipset;
diff -aurN a/drivers/ide/pci/via82cxxx.c b/drivers/ide/pci/via82cxxx.c
--- a/drivers/ide/pci/via82cxxx.c 2005-06-06 11:22:29.000000000 -0400
+++ b/drivers/ide/pci/via82cxxx.c 2005-06-15 22:01:23.000000000 -0400
@@ -415,7 +415,7 @@
* and initialize its drive independent registers.
*/
-static unsigned int __init init_chipset_via82cxxx(struct pci_dev *dev, const char *name)
+static unsigned int __devinit init_chipset_via82cxxx(struct pci_dev *dev, const char *name)
{
struct pci_dev *isa = NULL;
u8 t, v;
@@ -576,7 +576,7 @@
return 0;
}
-static void __init init_hwif_via82cxxx(ide_hwif_t *hwif)
+static void __devinit init_hwif_via82cxxx(ide_hwif_t *hwif)
{
int i;

View File

@ -0,0 +1,21 @@
#! /bin/sh -e
## <PATCHNAME>.dpatch by <PATCH_AUTHOR@EMAI>
##
## All lines beginning with `## DP:' are a description of the patch.
## DP: Description: blacklist "TOSHIBA CD-ROM XM-1702BC" in drivers/ide/ide-dma.c
## DP: Patch author: unknown
## DP: Upstream status: not submitted
. $(dirname $0)/DPATCH
@DPATCH@
--- kernel-source-2.6.6/drivers/ide/ide-dma.c 2004-04-05 19:49:28.000000000 +1000
+++ kernel-source-2.6.6-1/drivers/ide/ide-dma.c 2004-04-05 20:54:34.000000000 +1000
@@ -125,6 +125,7 @@
{ "HITACHI CDR-8335" , "ALL" },
{ "HITACHI CDR-8435" , "ALL" },
{ "Toshiba CD-ROM XM-6202B" , "ALL" },
+ { "TOSHIBA CD-ROM XM-1702BC" , "ALL" },
{ "CD-532E-A" , "ALL" },
{ "E-IDE CD-ROM CR-840", "ALL" },
{ "CD-ROM Drive/F5A", "ALL" },

View File

@ -0,0 +1,110 @@
# From Fabio M. Di Nitto <fabbione@ubuntu.com>
# Date 27th May 2005
# Source Ubuntu kernel-team baz-archive
# http://people.u.c/~lamont/Archives/kernel-team@ubuntu.com--2005/
# kernel-debian--pre1,2--2.6.11.93
#
# * The megaraid legacy driver is around only to support AMI megaraid 1 and 2.
# All the other controllers are supported (according to the code) by the
# new megaraid driver:
# - Add patch drivers-scsi-megaraid_spiltup.dpatch:
# . Split PCI ID's properly between the 2 drivers.
# . Allow compilation of both drivers at the same time.
# . Update Kconfig.megaraid to reflect the new changes in the help.
# . Rename a few things in the old megaraid driver to avoid possible
# conflicts with the new drivers (NOTE: there might be more that needs
# to be changed given that now the 2 modules can be loaded at the same
# time).
diff -urNad linux-source-2.6.12-2.6.11.90/drivers/scsi/megaraid/Kconfig.megaraid /usr/src/dpatchtemp/dpep.eRg2wK/linux-source-2.6.12-2.6.11.90/drivers/scsi/megaraid/Kconfig.megaraid
--- linux-source-2.6.12-2.6.11.90/drivers/scsi/megaraid/Kconfig.megaraid 2005-03-02 08:37:49.000000000 +0100
+++ /usr/src/dpatchtemp/dpep.eRg2wK/linux-source-2.6.12-2.6.11.90/drivers/scsi/megaraid/Kconfig.megaraid 2005-04-19 08:28:09.521239400 +0200
@@ -64,15 +64,11 @@
To compile this driver as a module, choose M here: the
module will be called megaraid_mbox
-if MEGARAID_NEWGEN=n
config MEGARAID_LEGACY
tristate "LSI Logic Legacy MegaRAID Driver"
depends on PCI && SCSI
help
- This driver supports the LSI MegaRAID 418, 428, 438, 466, 762, 490
- and 467 SCSI host adapters. This driver also support the all U320
- RAID controllers
+ This driver supports the AMI MEGARAID 1 and 2.
To compile this driver as a module, choose M here: the
module will be called megaraid
-endif
diff -urNad linux-source-2.6.12-2.6.11.90/drivers/scsi/megaraid.c /usr/src/dpatchtemp/dpep.eRg2wK/linux-source-2.6.12-2.6.11.90/drivers/scsi/megaraid.c
--- linux-source-2.6.12-2.6.11.90/drivers/scsi/megaraid.c 2005-03-02 08:37:30.000000000 +0100
+++ /usr/src/dpatchtemp/dpep.eRg2wK/linux-source-2.6.12-2.6.11.90/drivers/scsi/megaraid.c 2005-04-19 08:35:13.889725584 +0200
@@ -4565,7 +4565,7 @@
};
static int __devinit
-megaraid_probe_one(struct pci_dev *pdev, const struct pci_device_id *id)
+megaraid_legacy_probe_one(struct pci_dev *pdev, const struct pci_device_id *id)
{
struct Scsi_Host *host;
adapter_t *adapter;
@@ -5033,37 +5033,25 @@
}
static struct pci_device_id megaraid_pci_tbl[] = {
- {PCI_VENDOR_ID_DELL, PCI_DEVICE_ID_DISCOVERY,
- PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0},
- {PCI_VENDOR_ID_DELL, PCI_DEVICE_ID_PERC4_DI,
- PCI_ANY_ID, PCI_ANY_ID, 0, 0, BOARD_64BIT},
- {PCI_VENDOR_ID_LSI_LOGIC, PCI_DEVICE_ID_PERC4_QC_VERDE,
- PCI_ANY_ID, PCI_ANY_ID, 0, 0, BOARD_64BIT},
{PCI_VENDOR_ID_AMI, PCI_DEVICE_ID_AMI_MEGARAID,
PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0},
{PCI_VENDOR_ID_AMI, PCI_DEVICE_ID_AMI_MEGARAID2,
PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0},
- {PCI_VENDOR_ID_AMI, PCI_DEVICE_ID_AMI_MEGARAID3,
- PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0},
- {PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_AMI_MEGARAID3,
- PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0},
- {PCI_VENDOR_ID_LSI_LOGIC, PCI_DEVICE_ID_AMI_MEGARAID3,
- PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0},
{0,}
};
MODULE_DEVICE_TABLE(pci, megaraid_pci_tbl);
static struct pci_driver megaraid_pci_driver = {
- .name = "megaraid",
+ .name = "megaraidlegacy",
.id_table = megaraid_pci_tbl,
- .probe = megaraid_probe_one,
+ .probe = megaraid_legacy_probe_one,
.remove = __devexit_p(megaraid_remove_one),
.driver = {
.shutdown = megaraid_shutdown,
},
};
-static int __init megaraid_init(void)
+static int __init megaraid_legacy_init(void)
{
int error;
@@ -5102,7 +5090,7 @@
return 0;
}
-static void __exit megaraid_exit(void)
+static void __exit megaraid_legacy_exit(void)
{
/*
* Unregister the character device interface to the driver.
@@ -5116,7 +5104,7 @@
#endif
}
-module_init(megaraid_init);
-module_exit(megaraid_exit);
+module_init(megaraid_legacy_init);
+module_exit(megaraid_legacy_exit);
/* vi: set ts=8 sw=8 tw=78: */

View File

@ -0,0 +1,17 @@
diff -aurN a/drivers/video/aty/radeon_base.c b/drivers/video/aty/radeon_base.c
--- a/drivers/video/aty/radeon_base.c 2005-06-06 11:22:29.000000000 -0400
+++ b/drivers/video/aty/radeon_base.c 2005-06-15 21:55:56.000000000 -0400
@@ -1907,8 +1907,12 @@
fb_alloc_cmap(&info->cmap, 256, 0);
- if (noaccel)
+ if (noaccel) {
info->flags |= FBINFO_HWACCEL_DISABLED;
+ info->fix.accel = FB_ACCEL_NONE;
+ } else {
+ info->fix.accel = FB_ACCEL_ATI_RADEON;
+ }
return 0;
}

5262
debian/patches-debian/fs-asfs-2.patch vendored Normal file

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,19 @@
## DP: Description: Add a no-op set_irq_affinity_info() for non-SMP
## DP: Patch author: dann frazier <dannf@hp.com>
## DP: Upstream status: Submitted
#
diff -aurN a/arch/ia64/kernel/irq.c b/arch/ia64/kernel/irq.c
--- a/arch/ia64/kernel/irq.c 2005-06-06 11:22:29.000000000 -0400
+++ b/arch/ia64/kernel/irq.c 2005-06-15 22:13:24.000000000 -0400
@@ -141,7 +141,10 @@
}
}
-
+#else /* !CONFIG_SMP */
+void set_irq_affinity_info (unsigned int irq, int hwid, int redir)
+{
+}
#endif /* CONFIG_SMP */
#ifdef CONFIG_HOTPLUG_CPU

View File

@ -0,0 +1,75 @@
## All lines beginning with `## DP:' are a description of the patch.
## DP: Description: Allow modular built of ide-pnp
## DP: Patch author: Herbert Xu, Christoph Hellwig
## DP: Upstream status: submitted
#
diff -aurN a/drivers/ide/Kconfig b/drivers/ide/Kconfig
--- a/drivers/ide/Kconfig 2005-06-06 11:22:29.000000000 -0400
+++ b/drivers/ide/Kconfig 2005-06-15 22:15:06.000000000 -0400
@@ -315,7 +315,7 @@
Otherwise say N.
config BLK_DEV_IDEPNP
- bool "PNP EIDE support"
+ tristate "PNP EIDE support"
depends on PNP
help
If you have a PnP (Plug and Play) compatible EIDE card and
diff -aurN a/drivers/ide/Makefile b/drivers/ide/Makefile
--- a/drivers/ide/Makefile 2005-06-06 11:22:29.000000000 -0400
+++ b/drivers/ide/Makefile 2005-06-15 22:15:06.000000000 -0400
@@ -22,7 +22,6 @@
ide-core-$(CONFIG_BLK_DEV_IDEDMA) += ide-dma.o
ide-core-$(CONFIG_BLK_DEV_IDE_TCQ) += ide-tcq.o
ide-core-$(CONFIG_PROC_FS) += ide-proc.o
-ide-core-$(CONFIG_BLK_DEV_IDEPNP) += ide-pnp.o
# built-in only drivers from arm/
ide-core-$(CONFIG_IDE_ARM) += arm/ide_arm.o
@@ -43,6 +42,7 @@
obj-$(CONFIG_BLK_DEV_IDE) += ide-core.o
obj-$(CONFIG_IDE_GENERIC) += ide-generic.o
+obj-$(CONFIG_BLK_DEV_IDEPNP) += ide-pnp.o
obj-$(CONFIG_BLK_DEV_IDEDISK) += ide-disk.o
obj-$(CONFIG_BLK_DEV_IDECD) += ide-cd.o
diff -aurN a/drivers/ide/ide-pnp.c b/drivers/ide/ide-pnp.c
--- a/drivers/ide/ide-pnp.c 2005-06-06 11:22:29.000000000 -0400
+++ b/drivers/ide/ide-pnp.c 2005-06-15 22:15:06.000000000 -0400
@@ -69,7 +69,21 @@
.remove = idepnp_remove,
};
-void __init pnpide_init(void)
+int __init pnpide_init(void)
{
- pnp_register_driver(&idepnp_driver);
+ return pnp_register_driver(&idepnp_driver);
}
+
+#ifdef MODULE
+static void __exit pnpide_exit(void)
+{
+ pnp_unregister_driver(&idepnp_driver);
+}
+
+module_init(pnpide_init);
+module_exit(pnpide_exit);
+#endif
+
+MODULE_AUTHOR("Andrey Panin");
+MODULE_DESCRIPTION("Enabler for ISAPNP IDE devices");
+MODULE_LICENSE("GPL");
diff -aurN a/drivers/ide/ide.c b/drivers/ide/ide.c
--- a/drivers/ide/ide.c 2005-06-06 11:22:29.000000000 -0400
+++ b/drivers/ide/ide.c 2005-06-15 22:15:06.000000000 -0400
@@ -1789,7 +1789,7 @@
return 1;
}
-extern void pnpide_init(void);
+extern int pnpide_init(void);
extern void h8300_ide_init(void);
/*

126
debian/patches-debian/modular-ide.patch vendored Normal file
View File

@ -0,0 +1,126 @@
## All lines beginning with `## DP:' are a description of the patch.
## DP: Description: fix IDE modularisation
## DP: Patch author: Herbert Xu
## DP: Upstream status: rejected
#
diff -aurN a/drivers/ide/ide-generic.c b/drivers/ide/ide-generic.c
--- a/drivers/ide/ide-generic.c 2005-06-06 11:22:29.000000000 -0400
+++ b/drivers/ide/ide-generic.c 2005-06-15 22:16:56.000000000 -0400
@@ -11,9 +11,14 @@
#include <linux/init.h>
#include <linux/module.h>
#include <linux/ide.h>
+#include <linux/config.h>
static int __init ide_generic_init(void)
{
+#ifdef CONFIG_BLK_DEV_IDEPCI
+ ide_scan_pcibus();
+#endif
+
if (ide_hwifs[0].io_ports[IDE_DATA_OFFSET])
ide_get_lock(NULL, NULL); /* for atari only */
diff -aurN a/drivers/ide/ide.c b/drivers/ide/ide.c
--- a/drivers/ide/ide.c 2005-06-06 11:22:29.000000000 -0400
+++ b/drivers/ide/ide.c 2005-06-15 22:16:56.000000000 -0400
@@ -175,10 +175,11 @@
static int initializing; /* set while initializing built-in drivers */
DECLARE_MUTEX(ide_cfg_sem);
+EXPORT_SYMBOL(ide_cfg_sem);
__cacheline_aligned_in_smp DEFINE_SPINLOCK(ide_lock);
#ifdef CONFIG_BLK_DEV_IDEPCI
-static int ide_scan_direction; /* THIS was formerly 2.2.x pci=reverse */
+int ide_scan_direction; /* THIS was formerly 2.2.x pci=reverse */
#endif
#ifdef CONFIG_IDEDMA_AUTO
@@ -1418,6 +1419,8 @@
EXPORT_SYMBOL(generic_ide_ioctl);
+EXPORT_SYMBOL(ide_add_generic_settings);
+
/*
* stridx() returns the offset of c within s,
* or -1 if c is '\0' or not found within s.
@@ -1797,9 +1800,9 @@
*/
static void __init probe_for_hwifs (void)
{
-#ifdef CONFIG_BLK_DEV_IDEPCI
- ide_scan_pcibus(ide_scan_direction);
-#endif /* CONFIG_BLK_DEV_IDEPCI */
+#if defined(CONFIG_BLK_DEV_IDEPCI) && !defined(MODULE)
+ ide_scan_pcibus();
+#endif /* CONFIG_BLK_DEV_IDEPCI && !MODULE */
#ifdef CONFIG_ETRAX_IDE
{
diff -aurN a/drivers/ide/setup-pci.c b/drivers/ide/setup-pci.c
--- a/drivers/ide/setup-pci.c 2005-06-06 11:22:29.000000000 -0400
+++ b/drivers/ide/setup-pci.c 2005-06-15 22:16:56.000000000 -0400
@@ -837,7 +837,7 @@
* boot up the pci layer takes over the job.
*/
-static int __init ide_scan_pcidev(struct pci_dev *dev)
+static int ide_scan_pcidev(struct pci_dev *dev)
{
struct list_head *l;
struct pci_driver *d;
@@ -863,21 +863,23 @@
/**
* ide_scan_pcibus - perform the initial IDE driver scan
- * @scan_direction: set for reverse order scanning
*
* Perform the initial bus rather than driver ordered scan of the
* PCI drivers. After this all IDE pci handling becomes standard
* module ordering not traditionally ordered.
*/
-void __init ide_scan_pcibus (int scan_direction)
+void ide_scan_pcibus(void)
{
struct pci_dev *dev = NULL;
struct pci_driver *d;
struct list_head *l, *n;
+ if (!pre_init)
+ return;
+
pre_init = 0;
- if (!scan_direction) {
+ if (!ide_scan_direction) {
while ((dev = pci_find_device(PCI_ANY_ID, PCI_ANY_ID, dev)) != NULL) {
ide_scan_pcidev(dev);
}
@@ -899,3 +901,5 @@
pci_register_driver(d);
}
}
+
+EXPORT_SYMBOL_GPL(ide_scan_pcibus);
diff -aurN a/include/linux/ide.h b/include/linux/ide.h
--- a/include/linux/ide.h 2005-06-06 11:22:29.000000000 -0400
+++ b/include/linux/ide.h 2005-06-15 22:16:56.000000000 -0400
@@ -1115,6 +1115,7 @@
extern ide_hwif_t ide_hwifs[]; /* master data repository */
#endif
extern int noautodma;
+extern int ide_scan_direction;
extern int ide_end_request (ide_drive_t *drive, int uptodate, int nrsecs);
extern int __ide_end_request (ide_drive_t *drive, struct request *rq, int uptodate, int nrsecs);
@@ -1323,7 +1324,7 @@
extern int ideprobe_init(void);
-extern void ide_scan_pcibus(int scan_direction) __init;
+extern void ide_scan_pcibus(void);
extern int ide_pci_register_driver(struct pci_driver *driver);
extern void ide_pci_unregister_driver(struct pci_driver *driver);
void ide_pci_setup_ports(struct pci_dev *, struct ide_pci_device_s *, int, ata_index_t *);

View File

@ -0,0 +1,197 @@
## All lines beginning with `## DP:' are a description of the patch.
## DP: Description: modularised VESA FB
## DP: Patch author: initial author unknown, fixed up by Andres Salomon
## DP: Upstream status: not submitted
#
diff -aurN a/drivers/video/Kconfig b/drivers/video/Kconfig
--- a/drivers/video/Kconfig 2005-06-06 11:22:29.000000000 -0400
+++ b/drivers/video/Kconfig 2005-06-15 22:32:51.000000000 -0400
@@ -477,7 +477,7 @@
cards. Say Y if you have one of those.
config FB_VESA
- bool "VESA VGA graphics support"
+ tristate "VESA VGA graphics support"
depends on (FB = y) && (X86 || X86_64)
select FB_CFB_FILLRECT
select FB_CFB_COPYAREA
diff -aurN a/drivers/video/vesafb.c b/drivers/video/vesafb.c
--- a/drivers/video/vesafb.c 2005-06-06 11:22:29.000000000 -0400
+++ b/drivers/video/vesafb.c 2005-06-15 22:33:47.000000000 -0400
@@ -25,6 +25,12 @@
#define dac_reg (0x3c8)
#define dac_val (0x3c9)
+struct vesafb_info
+{
+ u32 pseudo_palette[256];
+ int mtrr_hdl;
+};
+
/* --------------------------------------------------------------------- */
static struct fb_var_screeninfo vesafb_defined __initdata = {
@@ -44,17 +50,34 @@
.accel = FB_ACCEL_NONE,
};
-static int inverse = 0;
-static int mtrr = 1;
+static int mtrr __initdata = 1;
static int vram_remap __initdata = 0; /* Set amount of memory to be used */
static int vram_total __initdata = 0; /* Set total amount of memory */
static int pmi_setpal = 0; /* pmi for palette changes ??? */
+static int redraw __initdata = 0;
static int ypan = 0; /* 0..nothing, 1..ypan, 2..ywrap */
+static int ywrap __initdata = 0;
static unsigned short *pmi_base = NULL;
static void (*pmi_start)(void);
static void (*pmi_pal)(void);
static int depth;
+module_param(redraw, bool, 0);
+module_param(ypan, bool, 0);
+module_param(ywrap, bool, 0);
+module_param_named(vgapal, pmi_setpal, invbool, 0);
+MODULE_PARM_DESC(vgapal, "Use VGA for setting palette (default)");
+module_param_named(pmipal, pmi_setpal, bool, 0);
+MODULE_PARM_DESC(pmipal, "Use PMI for setting palette");
+module_param(mtrr, bool, 0);
+MODULE_PARM_DESC(mtrr, "Enable MTRR support (default)");
+module_param_named(nomtrr, mtrr, invbool, 0);
+MODULE_PARM_DESC(nomtrr, "Disable MTRR support");
+module_param(vram_remap, int, 0);
+MODULE_PARM_DESC(vram_remap, "Set total amount of memory to be used");
+module_param(vram_total, int, 0);
+MODULE_PARM_DESC(vram_total, "Total amount of memory");
+
/* --------------------------------------------------------------------- */
static int vesafb_pan_display(struct fb_var_screeninfo *var,
@@ -182,6 +205,7 @@
.fb_cursor = soft_cursor,
};
+#ifndef MODULE
static int __init vesafb_setup(char *options)
{
char *this_opt;
@@ -192,9 +216,7 @@
while ((this_opt = strsep(&options, ",")) != NULL) {
if (!*this_opt) continue;
- if (! strcmp(this_opt, "inverse"))
- inverse=1;
- else if (! strcmp(this_opt, "redraw"))
+ if (! strcmp(this_opt, "redraw"))
ypan=0;
else if (! strcmp(this_opt, "ypan"))
ypan=1;
@@ -215,11 +237,13 @@
}
return 0;
}
+#endif
static int __init vesafb_probe(struct device *device)
{
struct platform_device *dev = to_platform_device(device);
struct fb_info *info;
+ struct vesafb_info *vfb_info;
int i, err;
unsigned int size_vmode;
unsigned int size_remap;
@@ -277,13 +301,14 @@
spaces our resource handlers simply don't know about */
}
- info = framebuffer_alloc(sizeof(u32) * 256, &dev->dev);
+ info = framebuffer_alloc(sizeof(struct vesafb_info), &dev->dev);
if (!info) {
release_mem_region(vesafb_fix.smem_start, vesafb_fix.smem_len);
return -ENOMEM;
}
- info->pseudo_palette = info->par;
- info->par = NULL;
+ vfb_info = (struct vesafb_info *) info->par;
+ vfb_info->mtrr_hdl = -1;
+ info->pseudo_palette = vfb_info->pseudo_palette;
info->screen_base = ioremap(vesafb_fix.smem_start, vesafb_fix.smem_len);
if (!info->screen_base) {
@@ -392,7 +417,7 @@
temp_size &= (temp_size - 1);
/* Try and find a power of two to add */
- while (temp_size && mtrr_add(vesafb_fix.smem_start, temp_size, MTRR_TYPE_WRCOMB, 1)==-EINVAL) {
+ while (temp_size && (vfb_info->mtrr_hdl = mtrr_add(vesafb_fix.smem_start, temp_size, MTRR_TYPE_WRCOMB, 1)) == -EINVAL) {
temp_size >>= 1;
}
}
@@ -414,6 +439,7 @@
}
printk(KERN_INFO "fb%d: %s frame buffer device\n",
info->node, info->fix.id);
+ dev_set_drvdata(device, info);
return 0;
err:
framebuffer_release(info);
@@ -421,10 +447,24 @@
return err;
}
+static void __exit vesafb_remove(struct device *device)
+{
+ struct fb_info *info = dev_get_drvdata(device);
+ struct vesafb_info *vfb_info = (struct vesafb_info *) info->par;
+
+ unregister_framebuffer(info);
+ if (vfb_info->mtrr_hdl >= 0)
+ mtrr_del(vfb_info->mtrr_hdl, 0, 0);
+ iounmap(info->screen_base);
+ framebuffer_release(info);
+ release_mem_region(vesafb_fix.smem_start, vesafb_fix.smem_len);
+}
+
static struct device_driver vesafb_driver = {
.name = "vesafb",
.bus = &platform_bus_type,
.probe = vesafb_probe,
+ .remove = vesafb_remove,
};
static struct platform_device vesafb_device = {
@@ -434,11 +474,18 @@
static int __init vesafb_init(void)
{
int ret;
+#ifndef MODULE
char *option = NULL;
/* ignore error return of fb_get_options */
fb_get_options("vesafb", &option);
vesafb_setup(option);
+#else
+ if (redraw)
+ ypan = 0;
+ if (ywrap)
+ ypan = 2;
+#endif
ret = driver_register(&vesafb_driver);
if (!ret) {
@@ -448,6 +495,14 @@
}
return ret;
}
+
+static void __exit vesafb_exit(void)
+{
+ platform_device_unregister(&vesafb_device);
+ driver_unregister(&vesafb_driver);
+}
+
module_init(vesafb_init);
+module_exit(vesafb_exit);
MODULE_LICENSE("GPL");

View File

@ -0,0 +1,69 @@
#! /bin/sh -e
##
## All lines beginning with `## DP:' are a description of the patch.
## DP: Description: Adds support TAU calibration on G3 processors
## DP: Patch author: Nicolas DET <nd@bplan-gmbh.de>
## DP: Upstream status: submitted
diff -aurN a/arch/ppc/Kconfig b/arch/ppc/Kconfig
--- a/arch/ppc/Kconfig 2005-06-06 11:22:29.000000000 -0400
+++ b/arch/ppc/Kconfig 2005-06-17 20:48:38.000000000 -0400
@@ -198,6 +198,24 @@
If in doubt, say N here.
+config TAU_CALIBRATED
+ bool "The CPU sensor has been calibrated."
+ depends on TAU
+ help
+ Enable it you got the real temperature with an external sensor
+ and you know the offset between the one advertised by the CPU
+ and the real one
+
+config TAU_CALIBRATED_VALUE
+ int "Offset of the themal sensor"
+ depends on TAU_CALIBRATED
+ default "0"
+ help
+ This is the offset of the thermal sensor compare to the real value
+ For example, if you get 27°C in /proc/cpuinfo (uncalibrated) and
+ you know real one is 53°C, then you should set 26 as offset.
+ value = Real val - CPU val;
+
config MATH_EMULATION
bool "Math emulation"
depends on 4xx || 8xx || E500
diff -aurN a/arch/ppc/kernel/setup.c b/arch/ppc/kernel/setup.c
--- a/arch/ppc/kernel/setup.c 2005-06-06 11:22:29.000000000 -0400
+++ b/arch/ppc/kernel/setup.c 2005-06-17 20:50:14.000000000 -0400
@@ -201,17 +201,25 @@
#ifdef CONFIG_TAU
if (cur_cpu_spec[i]->cpu_features & CPU_FTR_TAU) {
+#ifdef CONFIG_TAU_CALIBRATED
+ int is_calibrated = 1;
+ int temp_offset = CONFIG_TAU_CALIBRATED_VALUE;
+#else
+ int is_calibrated = 0;
+ int temp_offset = 0;
+#endif
#ifdef CONFIG_TAU_AVERAGE
/* more straightforward, but potentially misleading */
- seq_printf(m, "temperature \t: %u C (uncalibrated)\n",
- cpu_temp(i));
+ seq_printf(m, "temperature \t: %u C %s- average\n",
+ cpu_temp(i) + temp_offset, is_calibrated ? "" : "(uncalibrated) " );
#else
/* show the actual temp sensor range */
u32 temp;
temp = cpu_temp_both(i);
- seq_printf(m, "temperature \t: %u-%u C (uncalibrated)\n",
- temp & 0xff, temp >> 16);
-#endif
+ seq_printf(m, "temperature \t: %u-%u C %s\n",
+ (temp & 0xff) + temp_offset, (temp >> 16) + temp_offset, is_calibrated ? "" : "(uncalibrated)" );
+
+#endif /* CONFIG_TAU_AVERAGE */
}
#endif /* CONFIG_TAU */

View File

@ -0,0 +1,27 @@
#! /bin/sh -e
##
## All lines beginning with `## DP:' are a description of the patch.
## DP: Description: Works around a broken build system, namely the
## DP: Description: simple bootloader on power 3/4.
## DP: Misc: Pulled from the ubuntu tree.
## DP: Patch author: fabbione@ubuntu.com
## DP: Upstream status: FTBFS fix, guess it will be fixed upstream too
. $(dirname $0)/DPATCH
@DPATCH@
diff -urNad linux-source-2.6.10-2.6.10/arch/ppc/boot/simple/misc-prep.c /usr/src/dpatchtemp/dpep.cQRwcC/linux-source-2.6.10-2.6.10/arch/ppc/boot/simple/misc-prep.c
--- linux-source-2.6.10-2.6.10/arch/ppc/boot/simple/misc-prep.c 2004-12-24 22:33:51.000000000 +0100
+++ /usr/src/dpatchtemp/dpep.cQRwcC/linux-source-2.6.10-2.6.10/arch/ppc/boot/simple/misc-prep.c 2004-12-28 10:43:29.838010536 +0100
@@ -152,9 +152,11 @@
hold_residual->VitalProductData.Reserved5 = 0xdeadbeef;
}
+#if defined(CONFIG_6xx)
/* Now go and clear out the BATs and ensure that our MSR is
* correct .*/
disable_6xx_mmu();
+#endif
/* Make r3 be a pointer to the residual data. */
return (unsigned long)hold_residual;

View File

@ -0,0 +1,68 @@
#! /bin/sh -e
##
## All lines beginning with `## DP:' are a description of the patch.
## DP: Description: Adds support for 750CXe rev 3.1, prv 0008 3311 (previously recognized as 745/755).
## DP: Patch author: Nicolas DET <nd@bplan-gmbh.de>
## DP: Upstream status: submitted
. $(dirname $0)/DPATCH
@DPATCH@
--- linux-2.6.11.orig/arch/ppc/kernel/cputable.c 2005-03-02 08:38:09.000000000 +0100
+++ linux-2.6.11_nico/arch/ppc/kernel/cputable.c 2005-03-04 15:39:11.032975088 +0100
@@ -198,20 +198,6 @@
.num_pmcs = 4,
.cpu_setup = __setup_cpu_750
},
- { /* 745/755 */
- .pvr_mask = 0xfffff000,
- .pvr_value = 0x00083000,
- .cpu_name = "745/755",
- .cpu_features = CPU_FTR_COMMON |
- CPU_FTR_SPLIT_ID_CACHE | CPU_FTR_MAYBE_CAN_DOZE |
- CPU_FTR_USE_TB | CPU_FTR_L2CR | CPU_FTR_TAU |
- CPU_FTR_HPTE_TABLE | CPU_FTR_MAYBE_CAN_NAP,
- .cpu_user_features = COMMON_PPC,
- .icache_bsize = 32,
- .dcache_bsize = 32,
- .num_pmcs = 4,
- .cpu_setup = __setup_cpu_750
- },
{ /* 750CX (80100 and 8010x?) */
.pvr_mask = 0xfffffff0,
.pvr_value = 0x00080100,
@@ -254,6 +240,34 @@
.num_pmcs = 4,
.cpu_setup = __setup_cpu_750cx
},
+ { /* 750CXe (00082311 or 00083311) revision 3.1 / 3.1 pre_GA */
+ .pvr_mask = 0xffff0fff,
+ .pvr_value = 0x00080311,
+ .cpu_name = "750CXe rev 3.1",
+ .cpu_features = CPU_FTR_COMMON |
+ CPU_FTR_SPLIT_ID_CACHE | CPU_FTR_MAYBE_CAN_DOZE |
+ CPU_FTR_USE_TB | CPU_FTR_L2CR | CPU_FTR_TAU |
+ CPU_FTR_HPTE_TABLE | CPU_FTR_MAYBE_CAN_NAP,
+ .cpu_user_features = COMMON_PPC,
+ .icache_bsize = 32,
+ .dcache_bsize = 32,
+ .num_pmcs = 4,
+ .cpu_setup = __setup_cpu_750cx
+ },
+ { /* 745/755 */
+ .pvr_mask = 0xfffff000,
+ .pvr_value = 0x00083000,
+ .cpu_name = "745/755",
+ .cpu_features = CPU_FTR_COMMON |
+ CPU_FTR_SPLIT_ID_CACHE | CPU_FTR_MAYBE_CAN_DOZE |
+ CPU_FTR_USE_TB | CPU_FTR_L2CR | CPU_FTR_TAU |
+ CPU_FTR_HPTE_TABLE | CPU_FTR_MAYBE_CAN_NAP,
+ .cpu_user_features = COMMON_PPC,
+ .icache_bsize = 32,
+ .dcache_bsize = 32,
+ .num_pmcs = 4,
+ .cpu_setup = __setup_cpu_750
+ },
{ /* 750FX rev 1.x */
.pvr_mask = 0xffffff00,
.pvr_value = 0x70000100,

View File

@ -0,0 +1,30 @@
#! /bin/sh -e
##
## All lines beginning with `## DP:' are a description of the patch.
## DP: Description: [PATCH] ppc32: fixes FTBFS on power3/4.
## DP: This patch doesn't build pmac_cache.S on power3/power4, since it is
## DP: broken there and not needed.
## DP: Patch author: Sven Luther <luther@debian.org>
## DP: Upstream status: FTBFS, submitted to linuxppc-dev and benh.
. $(dirname $0)/DPATCH
@DPATCH@
--- kernel-source-2.6.11/arch/ppc/platforms/Makefile.orig 2005-03-27 11:38:25.000000000 +0200
+++ kernel-source-2.6.11/arch/ppc/platforms/Makefile 2005-03-27 11:39:23.000000000 +0200
@@ -9,9 +9,15 @@
ifeq ($(CONFIG_APUS),y)
obj-$(CONFIG_PCI) += apus_pci.o
endif
+ifeq ($(CONFIG_6xx),y)
obj-$(CONFIG_PPC_PMAC) += pmac_pic.o pmac_setup.o pmac_time.o \
pmac_feature.o pmac_pci.o pmac_sleep.o \
pmac_low_i2c.o pmac_cache.o
+else
+obj-$(CONFIG_PPC_PMAC) += pmac_pic.o pmac_setup.o pmac_time.o \
+ pmac_feature.o pmac_pci.o pmac_sleep.o \
+ pmac_low_i2c.o
+endif
obj-$(CONFIG_PPC_CHRP) += chrp_setup.o chrp_time.o chrp_pci.o \
chrp_pegasos_eth.o
obj-$(CONFIG_PPC_PREP) += prep_pci.o prep_setup.o

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,48 @@
#! /bin/sh -e
##
## All lines beginning with `## DP:' are a description of the patch.
## DP: Description: Disables legacy serial driver on powermacs.
## DP: Patch author: Sven Luther <luther@debian.org>
## DP: Patch author: adapted from the SuSE kernel tree.
## DP: Upstream status: workaround hack waiting for a clean legacy device solution.
diff -aurN a/drivers/serial/8250.c b/drivers/serial/8250.c
--- a/drivers/serial/8250.c 2005-06-17 15:48:29.000000000 -0400
+++ b/drivers/serial/8250.c 2005-06-18 12:05:39.000000000 -0400
@@ -46,6 +46,10 @@
#include "8250.h"
+#ifdef CONFIG_PPC_MULTIPLATFORM
+#include <asm/processor.h>
+#endif
+
/*
* Configuration:
* share_irqs - whether we pass SA_SHIRQ to request_irq(). This option
@@ -2188,6 +2192,12 @@
static int __init serial8250_console_init(void)
{
+#ifdef CONFIG_PPC_MULTIPLATFORM
+ if(_machine == _MACH_Pmac) {
+ printk("%s: nothing to do on PowerMac\n",__FUNCTION__);
+ return -ENODEV;
+ }
+#endif
serial8250_isa_init_ports();
register_console(&serial8250_console);
return 0;
@@ -2491,6 +2501,12 @@
{
int ret, i;
+#ifdef CONFIG_PPC_MULTIPLATFORM
+ if(_machine == _MACH_Pmac) {
+ printk("%s: nothing to do on PowerMac\n",__FUNCTION__);
+ return -ENODEV;
+ }
+#endif
printk(KERN_INFO "Serial: 8250/16550 driver $Revision: 1.90 $ "
"%d ports, IRQ sharing %sabled\n", (int) UART_NR,
share_irqs ? "en" : "dis");

View File

@ -0,0 +1,23 @@
diff -aurN a/drivers/scsi/Kconfig b/drivers/scsi/Kconfig
--- a/drivers/scsi/Kconfig 2005-06-17 15:48:29.000000000 -0400
+++ b/drivers/scsi/Kconfig 2005-06-18 15:19:35.000000000 -0400
@@ -1312,8 +1312,6 @@
To compile this driver as a module, choose M here: the
module will be called qlogicpti.
-source "drivers/scsi/qla2xxx/Kconfig"
-
config SCSI_LPFC
tristate "Emulex LightPulse Fibre Channel Support"
depends on PCI && SCSI
diff -aurN a/drivers/scsi/Makefile b/drivers/scsi/Makefile
--- a/drivers/scsi/Makefile 2005-06-17 15:48:29.000000000 -0400
+++ b/drivers/scsi/Makefile 2005-06-18 15:19:15.000000000 -0400
@@ -79,7 +79,6 @@
obj-$(CONFIG_SCSI_QLOGIC_ISP) += qlogicisp.o
obj-$(CONFIG_SCSI_QLOGIC_FC) += qlogicfc.o
obj-$(CONFIG_SCSI_QLOGIC_1280) += qla1280.o
-obj-$(CONFIG_SCSI_QLA2XXX) += qla2xxx/
obj-$(CONFIG_SCSI_LPFC) += lpfc/
obj-$(CONFIG_SCSI_PAS16) += pas16.o
obj-$(CONFIG_SCSI_SEAGATE) += seagate.o

View File

@ -0,0 +1,410 @@
diff -aurN a/arch/alpha/defconfig b/arch/alpha/defconfig
--- a/arch/alpha/defconfig 2005-06-17 15:48:29.000000000 -0400
+++ b/arch/alpha/defconfig 2005-06-18 16:11:08.000000000 -0400
@@ -512,7 +512,6 @@
# CONFIG_B44 is not set
# CONFIG_FORCEDETH is not set
# CONFIG_CS89x0 is not set
-# CONFIG_DGRS is not set
# CONFIG_EEPRO100 is not set
# CONFIG_E100 is not set
# CONFIG_LNE390 is not set
@@ -533,7 +532,6 @@
#
# Ethernet (1000 Mbit)
#
-# CONFIG_ACENIC is not set
# CONFIG_DL2K is not set
# CONFIG_E1000 is not set
# CONFIG_NS83820 is not set
diff -aurN a/arch/arm/configs/lpd7a404_defconfig b/arch/arm/configs/lpd7a404_defconfig
--- a/arch/arm/configs/lpd7a404_defconfig 2005-06-17 15:48:29.000000000 -0400
+++ b/arch/arm/configs/lpd7a404_defconfig 2005-06-18 16:30:01.000000000 -0400
@@ -676,8 +676,6 @@
#
# USB Miscellaneous drivers
#
-# CONFIG_USB_EMI62 is not set
-# CONFIG_USB_EMI26 is not set
# CONFIG_USB_AUERSWALD is not set
# CONFIG_USB_RIO500 is not set
# CONFIG_USB_LEGOTOWER is not set
diff -aurN a/arch/i386/defconfig b/arch/i386/defconfig
--- a/arch/i386/defconfig 2005-06-17 15:48:29.000000000 -0400
+++ b/arch/i386/defconfig 2005-06-18 16:22:33.000000000 -0400
@@ -624,7 +624,6 @@
# CONFIG_B44 is not set
# CONFIG_FORCEDETH is not set
# CONFIG_CS89x0 is not set
-# CONFIG_DGRS is not set
# CONFIG_EEPRO100 is not set
# CONFIG_E100 is not set
# CONFIG_FEALNX is not set
@@ -646,7 +645,6 @@
#
# Ethernet (1000 Mbit)
#
-# CONFIG_ACENIC is not set
# CONFIG_DL2K is not set
# CONFIG_E1000 is not set
# CONFIG_NS83820 is not set
@@ -1026,7 +1024,6 @@
#
# USB Multimedia devices
#
-# CONFIG_USB_DABUSB is not set
#
# Video4Linux support is needed for USB Multimedia device support
@@ -1054,8 +1051,6 @@
#
# USB Miscellaneous drivers
#
-# CONFIG_USB_EMI62 is not set
-# CONFIG_USB_EMI26 is not set
# CONFIG_USB_TIGL is not set
# CONFIG_USB_AUERSWALD is not set
# CONFIG_USB_RIO500 is not set
diff -aurN a/arch/ia64/configs/zx1_defconfig b/arch/ia64/configs/zx1_defconfig
--- a/arch/ia64/configs/zx1_defconfig 2005-06-17 15:48:29.000000000 -0400
+++ b/arch/ia64/configs/zx1_defconfig 2005-06-18 16:27:49.000000000 -0400
@@ -1014,8 +1014,6 @@
#
# USB Miscellaneous drivers
#
-# CONFIG_USB_EMI62 is not set
-# CONFIG_USB_EMI26 is not set
# CONFIG_USB_TIGL is not set
# CONFIG_USB_AUERSWALD is not set
# CONFIG_USB_RIO500 is not set
diff -aurN a/arch/ia64/defconfig b/arch/ia64/defconfig
--- a/arch/ia64/defconfig 2005-06-17 15:48:29.000000000 -0400
+++ b/arch/ia64/defconfig 2005-06-18 16:28:03.000000000 -0400
@@ -482,7 +482,6 @@
# CONFIG_ADAPTEC_STARFIRE is not set
# CONFIG_B44 is not set
# CONFIG_FORCEDETH is not set
-# CONFIG_DGRS is not set
CONFIG_EEPRO100=m
# CONFIG_EEPRO100_PIO is not set
CONFIG_E100=m
@@ -500,7 +499,6 @@
#
# Ethernet (1000 Mbit)
#
-# CONFIG_ACENIC is not set
# CONFIG_DL2K is not set
CONFIG_E1000=y
# CONFIG_E1000_NAPI is not set
@@ -879,7 +877,6 @@
#
# USB Multimedia devices
#
-# CONFIG_USB_DABUSB is not set
#
# Video4Linux support is needed for USB Multimedia device support
@@ -906,8 +903,6 @@
#
# USB Miscellaneous drivers
#
-# CONFIG_USB_EMI62 is not set
-# CONFIG_USB_EMI26 is not set
# CONFIG_USB_TIGL is not set
# CONFIG_USB_AUERSWALD is not set
# CONFIG_USB_RIO500 is not set
diff -aurN a/arch/mips/configs/rm200_defconfig b/arch/mips/configs/rm200_defconfig
--- a/arch/mips/configs/rm200_defconfig 2005-06-17 15:48:29.000000000 -0400
+++ b/arch/mips/configs/rm200_defconfig 2005-06-18 16:27:28.000000000 -0400
@@ -1098,8 +1098,6 @@
#
# USB Miscellaneous drivers
#
-# CONFIG_USB_EMI62 is not set
-# CONFIG_USB_EMI26 is not set
CONFIG_USB_AUERSWALD=m
CONFIG_USB_RIO500=m
CONFIG_USB_LEGOTOWER=m
diff -aurN a/arch/parisc/configs/c3000_defconfig b/arch/parisc/configs/c3000_defconfig
--- a/arch/parisc/configs/c3000_defconfig 2005-06-17 15:48:29.000000000 -0400
+++ b/arch/parisc/configs/c3000_defconfig 2005-06-18 16:30:26.000000000 -0400
@@ -892,8 +892,6 @@
#
# USB Miscellaneous drivers
#
-# CONFIG_USB_EMI62 is not set
-# CONFIG_USB_EMI26 is not set
# CONFIG_USB_TIGL is not set
# CONFIG_USB_AUERSWALD is not set
# CONFIG_USB_RIO500 is not set
diff -aurN a/arch/parisc/defconfig b/arch/parisc/defconfig
--- a/arch/parisc/defconfig 2005-06-17 15:48:29.000000000 -0400
+++ b/arch/parisc/defconfig 2005-06-18 16:30:45.000000000 -0400
@@ -345,7 +345,6 @@
# CONFIG_AC3200 is not set
# CONFIG_B44 is not set
# CONFIG_FORCEDETH is not set
-# CONFIG_DGRS is not set
# CONFIG_EEPRO100 is not set
# CONFIG_E100 is not set
# CONFIG_LNE390 is not set
@@ -365,7 +364,6 @@
#
# Ethernet (1000 Mbit)
#
-# CONFIG_ACENIC is not set
CONFIG_DL2K=y
# CONFIG_E1000 is not set
# CONFIG_NS83820 is not set
@@ -702,7 +700,6 @@
#
# USB Multimedia devices
#
-# CONFIG_USB_DABUSB is not set
#
# Video4Linux support is needed for USB Multimedia device support
@@ -730,8 +727,6 @@
#
# USB Miscellaneous drivers
#
-# CONFIG_USB_EMI62 is not set
-# CONFIG_USB_EMI26 is not set
# CONFIG_USB_TIGL is not set
# CONFIG_USB_AUERSWALD is not set
# CONFIG_USB_RIO500 is not set
diff -aurN a/arch/ppc/configs/common_defconfig b/arch/ppc/configs/common_defconfig
--- a/arch/ppc/configs/common_defconfig 2005-06-17 15:48:29.000000000 -0400
+++ b/arch/ppc/configs/common_defconfig 2005-06-18 16:24:38.000000000 -0400
@@ -1213,8 +1213,6 @@
#
# USB Miscellaneous drivers
#
-# CONFIG_USB_EMI62 is not set
-# CONFIG_USB_EMI26 is not set
# CONFIG_USB_TIGL is not set
# CONFIG_USB_AUERSWALD is not set
# CONFIG_USB_RIO500 is not set
diff -aurN a/arch/ppc/configs/lopec_defconfig b/arch/ppc/configs/lopec_defconfig
--- a/arch/ppc/configs/lopec_defconfig 2005-06-17 15:48:29.000000000 -0400
+++ b/arch/ppc/configs/lopec_defconfig 2005-06-18 16:25:01.000000000 -0400
@@ -681,8 +681,6 @@
#
# USB Miscellaneous drivers
#
-# CONFIG_USB_EMI62 is not set
-# CONFIG_USB_EMI26 is not set
# CONFIG_USB_TIGL is not set
# CONFIG_USB_AUERSWALD is not set
# CONFIG_USB_RIO500 is not set
diff -aurN a/arch/ppc/configs/pmac_defconfig b/arch/ppc/configs/pmac_defconfig
--- a/arch/ppc/configs/pmac_defconfig 2005-06-17 15:48:29.000000000 -0400
+++ b/arch/ppc/configs/pmac_defconfig 2005-06-18 16:25:19.000000000 -0400
@@ -1278,8 +1278,6 @@
#
# USB Miscellaneous drivers
#
-# CONFIG_USB_EMI62 is not set
-# CONFIG_USB_EMI26 is not set
# CONFIG_USB_AUERSWALD is not set
# CONFIG_USB_RIO500 is not set
# CONFIG_USB_LEGOTOWER is not set
diff -aurN a/arch/ppc/configs/sandpoint_defconfig b/arch/ppc/configs/sandpoint_defconfig
--- a/arch/ppc/configs/sandpoint_defconfig 2005-06-17 15:48:29.000000000 -0400
+++ b/arch/ppc/configs/sandpoint_defconfig 2005-06-18 16:24:50.000000000 -0400
@@ -600,8 +600,6 @@
#
# USB Miscellaneous drivers
#
-# CONFIG_USB_EMI62 is not set
-# CONFIG_USB_EMI26 is not set
# CONFIG_USB_TIGL is not set
# CONFIG_USB_AUERSWALD is not set
# CONFIG_USB_RIO500 is not set
diff -aurN a/arch/ppc64/configs/g5_defconfig b/arch/ppc64/configs/g5_defconfig
--- a/arch/ppc64/configs/g5_defconfig 2005-06-17 15:48:29.000000000 -0400
+++ b/arch/ppc64/configs/g5_defconfig 2005-06-18 16:28:43.000000000 -0400
@@ -1059,8 +1059,6 @@
#
# USB Miscellaneous drivers
#
-# CONFIG_USB_EMI62 is not set
-# CONFIG_USB_EMI26 is not set
# CONFIG_USB_AUERSWALD is not set
# CONFIG_USB_RIO500 is not set
# CONFIG_USB_LEGOTOWER is not set
diff -aurN a/arch/ppc64/configs/pSeries_defconfig b/arch/ppc64/configs/pSeries_defconfig
--- a/arch/ppc64/configs/pSeries_defconfig 2005-06-17 15:48:29.000000000 -0400
+++ b/arch/ppc64/configs/pSeries_defconfig 2005-06-18 16:29:21.000000000 -0400
@@ -1014,8 +1014,6 @@
#
# USB Miscellaneous drivers
#
-# CONFIG_USB_EMI62 is not set
-# CONFIG_USB_EMI26 is not set
# CONFIG_USB_AUERSWALD is not set
# CONFIG_USB_RIO500 is not set
# CONFIG_USB_LEGOTOWER is not set
diff -aurN a/arch/ppc64/defconfig b/arch/ppc64/defconfig
--- a/arch/ppc64/defconfig 2005-06-17 15:48:29.000000000 -0400
+++ b/arch/ppc64/defconfig 2005-06-18 16:29:36.000000000 -0400
@@ -591,7 +591,6 @@
# CONFIG_ADAPTEC_STARFIRE is not set
# CONFIG_B44 is not set
# CONFIG_FORCEDETH is not set
-# CONFIG_DGRS is not set
# CONFIG_EEPRO100 is not set
CONFIG_E100=y
# CONFIG_FEALNX is not set
@@ -607,8 +606,6 @@
#
# Ethernet (1000 Mbit)
#
-CONFIG_ACENIC=y
-CONFIG_ACENIC_OMIT_TIGON_I=y
# CONFIG_DL2K is not set
CONFIG_E1000=y
# CONFIG_E1000_NAPI is not set
@@ -1040,7 +1037,6 @@
#
# USB Multimedia devices
#
-# CONFIG_USB_DABUSB is not set
#
# Video4Linux support is needed for USB Multimedia device support
@@ -1069,8 +1065,6 @@
#
# USB Miscellaneous drivers
#
-# CONFIG_USB_EMI62 is not set
-# CONFIG_USB_EMI26 is not set
# CONFIG_USB_AUERSWALD is not set
# CONFIG_USB_RIO500 is not set
# CONFIG_USB_LEGOTOWER is not set
diff -aurN a/arch/sparc64/defconfig b/arch/sparc64/defconfig
--- a/arch/sparc64/defconfig 2005-06-17 15:48:29.000000000 -0400
+++ b/arch/sparc64/defconfig 2005-06-18 16:23:32.000000000 -0400
@@ -904,7 +904,6 @@
CONFIG_ADAPTEC_STARFIRE_NAPI=y
CONFIG_B44=m
CONFIG_FORCEDETH=m
-CONFIG_DGRS=m
CONFIG_EEPRO100=m
CONFIG_E100=m
CONFIG_FEALNX=m
@@ -926,8 +925,6 @@
#
# Ethernet (1000 Mbit)
#
-CONFIG_ACENIC=m
-# CONFIG_ACENIC_OMIT_TIGON_I is not set
CONFIG_DL2K=m
CONFIG_E1000=m
CONFIG_E1000_NAPI=y
@@ -1723,7 +1720,6 @@
#
# USB Multimedia devices
#
-# CONFIG_USB_DABUSB is not set
# CONFIG_USB_VICAM is not set
# CONFIG_USB_DSBR is not set
# CONFIG_USB_IBMCAM is not set
@@ -1817,8 +1813,6 @@
#
# USB Miscellaneous drivers
#
-CONFIG_USB_EMI62=m
-CONFIG_USB_EMI26=m
CONFIG_USB_AUERSWALD=m
CONFIG_USB_RIO500=m
CONFIG_USB_LEGOTOWER=m
diff -aurN a/arch/x86_64/defconfig b/arch/x86_64/defconfig
--- a/arch/x86_64/defconfig 2005-06-17 15:48:29.000000000 -0400
+++ b/arch/x86_64/defconfig 2005-06-18 16:31:01.000000000 -0400
@@ -530,7 +530,6 @@
# CONFIG_ADAPTEC_STARFIRE is not set
# CONFIG_B44 is not set
CONFIG_FORCEDETH=y
-# CONFIG_DGRS is not set
# CONFIG_EEPRO100 is not set
# CONFIG_E100 is not set
# CONFIG_FEALNX is not set
@@ -550,7 +549,6 @@
#
# Ethernet (1000 Mbit)
#
-# CONFIG_ACENIC is not set
# CONFIG_DL2K is not set
CONFIG_E1000=y
# CONFIG_E1000_NAPI is not set
@@ -862,7 +860,6 @@
#
# USB Multimedia devices
#
-# CONFIG_USB_DABUSB is not set
#
# Video4Linux support is needed for USB Multimedia device support
@@ -890,8 +887,6 @@
#
# USB Miscellaneous drivers
#
-# CONFIG_USB_EMI62 is not set
-# CONFIG_USB_EMI26 is not set
# CONFIG_USB_AUERSWALD is not set
# CONFIG_USB_RIO500 is not set
# CONFIG_USB_LEGOTOWER is not set
diff -aurN a/drivers/usb/Makefile b/drivers/usb/Makefile
--- a/drivers/usb/Makefile 2005-06-17 15:48:29.000000000 -0400
+++ b/drivers/usb/Makefile 2005-06-18 16:32:12.000000000 -0400
@@ -59,8 +59,6 @@
obj-$(CONFIG_USB_AUERSWALD) += misc/
obj-$(CONFIG_USB_CYTHERM) += misc/
-obj-$(CONFIG_USB_EMI26) += misc/
-obj-$(CONFIG_USB_EMI62) += misc/
obj-$(CONFIG_USB_IDMOUSE) += misc/
obj-$(CONFIG_USB_LCD) += misc/
obj-$(CONFIG_USB_LED) += misc/
diff -aurN a/drivers/usb/misc/Kconfig b/drivers/usb/misc/Kconfig
--- a/drivers/usb/misc/Kconfig 2005-06-18 11:23:01.000000000 -0400
+++ b/drivers/usb/misc/Kconfig 2005-06-18 16:31:32.000000000 -0400
@@ -4,19 +4,6 @@
comment "USB Miscellaneous drivers"
depends on USB
-config USB_EMI26
- tristate "EMI 2|6 USB Audio interface support"
- depends on USB
- ---help---
- This driver loads firmware to Emagic EMI 2|6 low latency USB
- Audio interface.
-
- After firmware load the device is handled with standard linux
- USB Audio driver.
-
- To compile this driver as a module, choose M here: the
- module will be called emi26.
-
config USB_AUERSWALD
tristate "USB Auerswald ISDN support (EXPERIMENTAL)"
depends on USB && EXPERIMENTAL
diff -aurN a/drivers/usb/misc/Makefile b/drivers/usb/misc/Makefile
--- a/drivers/usb/misc/Makefile 2005-06-18 11:23:01.000000000 -0400
+++ b/drivers/usb/misc/Makefile 2005-06-18 16:31:47.000000000 -0400
@@ -5,7 +5,6 @@
obj-$(CONFIG_USB_AUERSWALD) += auerswald.o
obj-$(CONFIG_USB_CYTHERM) += cytherm.o
-obj-$(CONFIG_USB_EMI26) += emi26.o
obj-$(CONFIG_USB_IDMOUSE) += idmouse.o
obj-$(CONFIG_USB_LCD) += usblcd.o
obj-$(CONFIG_USB_LED) += usbled.o
@@ -16,4 +15,4 @@
obj-$(CONFIG_USB_TEST) += usbtest.o
obj-$(CONFIG_USB_USS720) += uss720.o
-obj-$(CONFIG_USB_SISUSBVGA) += sisusbvga/
\ No newline at end of file
+obj-$(CONFIG_USB_SISUSBVGA) += sisusbvga/

21
debian/patches-debian/series/2.6.12-1 vendored Normal file
View File

@ -0,0 +1,21 @@
+ amd64-int3-fix.patch
+ amd64-outs.patch
+ drivers-add-scsi_changer.patch
+ drivers-ide-__devinit.patch
+ drivers-ide-dma-blacklist-toshiba.patch
+ drivers-scsi-megaraid_splitup.patch
+ fbdev-radeon-noaccel.patch
+ fs-asfs-2.patch
+ ia64-irq-affinity-upfix.patch
+ modular-ide-pnp.patch
+ modular-ide.patch
+ modular-vesafb.patch
+ powerpc-calibrate-tau.patch
+ powerpc-fix-power3-ftbfs.patch
+ powerpc-g3-750cxe.patch
+ powerpc-pmac-cache-power34-fix.patch
+ powerpc-ppc64-ibmvscsi.patch
+ powerpc-serial.patch
+ qla2xxx-removed.patch
+ remove-references-to-removed-drivers.patch
+ tty-locking-fixes9.patch

View File

@ -0,0 +1,16 @@
# origin: Debian (bcollins)
# cset: n/a
# inclusion: not suitable for upstream
# revision date: 2004-10-08
diff -aurN a/drivers/net/sunhme.c b/drivers/net/sunhme.c
--- a/drivers/net/sunhme.c 2005-06-17 15:48:29.000000000 -0400
+++ b/drivers/net/sunhme.c 2005-06-18 12:12:18.000000000 -0400
@@ -1996,6 +1996,7 @@
}
hp->tx_old = elem;
TXD((">"));
+ udelay(1);
if (netif_queue_stopped(dev) &&
TX_BUFFS_AVAIL(hp) > (MAX_SKB_FRAGS + 1))

View File

@ -0,0 +1,12 @@
--- kernel-source-2.6.11-2.6.11-orig/drivers/serial/serial_core.c 2005-03-02 08:37:50.000000000 +0100
+++ kernel-source-2.6.11-2.6.11/drivers/serial/serial_core.c 2005-03-05 10:46:43.417109240 +0100
@@ -108,7 +108,8 @@
static void uart_tasklet_action(unsigned long data)
{
struct uart_state *state = (struct uart_state *)data;
- tty_wakeup(state->info->tty);
+ if (state->info->tty)
+ tty_wakeup(state->info->tty);
}
static inline void