diff options
author | Greg Kroah-Hartman <gregkh@suse.de> | 2006-05-23 09:08:35 -0700 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@suse.de> | 2006-05-23 09:08:35 -0700 |
commit | c73f4933327f9e928e894710284d058ca4640b96 (patch) | |
tree | 390a444a6d6059aeb0b4fc8d7f8885c05d85d93d /pci | |
parent | cc2ddaccce45eac258d3ad0a9b7ac9dc884b10b1 (diff) | |
download | patches-c73f4933327f9e928e894710284d058ca4640b96.tar.gz |
2.6.17-rc4-git10 refresh
Diffstat (limited to 'pci')
4 files changed, 8 insertions, 152 deletions
diff --git a/pci/pci-64-bit-resources-drivers-media-changes.patch b/pci/pci-64-bit-resources-drivers-media-changes.patch index e54d61f7490a6..e205671d147ea 100644 --- a/pci/pci-64-bit-resources-drivers-media-changes.patch +++ b/pci/pci-64-bit-resources-drivers-media-changes.patch @@ -80,7 +80,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> dprintk (0, "%s/%i: ALSA support for cx2388x boards\n", --- gregkh-2.6.orig/drivers/media/video/cx88/cx88-core.c +++ gregkh-2.6/drivers/media/video/cx88/cx88-core.c -@@ -1027,8 +1027,8 @@ static int get_ressources(struct cx88_co +@@ -1031,8 +1031,8 @@ static int get_ressources(struct cx88_co pci_resource_len(pci,0), core->name)) return 0; @@ -107,7 +107,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> spin_lock_init(&dev->slock); --- gregkh-2.6.orig/drivers/media/video/cx88/cx88-video.c +++ gregkh-2.6/drivers/media/video/cx88/cx88-video.c -@@ -1847,9 +1847,9 @@ static int __devinit cx8800_initdev(stru +@@ -1849,9 +1849,9 @@ static int __devinit cx8800_initdev(stru pci_read_config_byte(pci_dev, PCI_CLASS_REVISION, &dev->pci_rev); pci_read_config_byte(pci_dev, PCI_LATENCY_TIMER, &dev->pci_lat); printk(KERN_INFO "%s/0: found at %s, rev: %d, irq: %d, " @@ -121,7 +121,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> if (!pci_dma_supported(pci_dev,0xffffffff)) { --- gregkh-2.6.orig/drivers/media/video/saa7134/saa7134-core.c +++ gregkh-2.6/drivers/media/video/saa7134/saa7134-core.c -@@ -867,9 +867,9 @@ static int __devinit saa7134_initdev(str +@@ -871,9 +871,9 @@ static int __devinit saa7134_initdev(str pci_read_config_byte(pci_dev, PCI_CLASS_REVISION, &dev->pci_rev); pci_read_config_byte(pci_dev, PCI_LATENCY_TIMER, &dev->pci_lat); printk(KERN_INFO "%s: found at %s, rev: %d, irq: %d, " @@ -133,7 +133,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> pci_set_master(pci_dev); if (!pci_dma_supported(pci_dev, DMA_32BIT_MASK)) { printk("%s: Oops: no 32bit PCI DMA ???\n",dev->name); -@@ -901,8 +901,8 @@ static int __devinit saa7134_initdev(str +@@ -905,8 +905,8 @@ static int __devinit saa7134_initdev(str pci_resource_len(pci_dev,0), dev->name)) { err = -EBUSY; diff --git a/pci/pci-64-bit-resources-drivers-net-changes.patch b/pci/pci-64-bit-resources-drivers-net-changes.patch index 85dbd0091d9a7..d79051cbd01a2 100644 --- a/pci/pci-64-bit-resources-drivers-net-changes.patch +++ b/pci/pci-64-bit-resources-drivers-net-changes.patch @@ -113,7 +113,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> --- gregkh-2.6.orig/drivers/net/skge.c +++ gregkh-2.6/drivers/net/skge.c -@@ -3329,8 +3329,8 @@ static int __devinit skge_probe(struct p +@@ -3327,8 +3327,8 @@ static int __devinit skge_probe(struct p if (err) goto err_out_free_irq; @@ -126,7 +126,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> if ((dev = skge_devinit(hw, 0, using_dac)) == NULL) --- gregkh-2.6.orig/drivers/net/sky2.c +++ gregkh-2.6/drivers/net/sky2.c -@@ -3279,9 +3279,9 @@ static int __devinit sky2_probe(struct p +@@ -3289,9 +3289,9 @@ static int __devinit sky2_probe(struct p if (err) goto err_out_iounmap; diff --git a/pci/pci-64-bit-resources-sound-changes.patch b/pci/pci-64-bit-resources-sound-changes.patch index 20624d52411f7..67e4934ee6b8a 100644 --- a/pci/pci-64-bit-resources-sound-changes.patch +++ b/pci/pci-64-bit-resources-sound-changes.patch @@ -47,7 +47,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> mutex_init(&aaci->ac97_sem); --- gregkh-2.6.orig/sound/drivers/mpu401/mpu401.c +++ gregkh-2.6/sound/drivers/mpu401/mpu401.c -@@ -160,8 +160,9 @@ static int __init snd_mpu401_pnp(int dev +@@ -160,8 +160,9 @@ static int __devinit snd_mpu401_pnp(int return -ENODEV; } if (pnp_port_len(device, 0) < IO_EXTENT) { @@ -61,7 +61,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> port[dev] = pnp_port_start(device, 0); --- gregkh-2.6.orig/sound/isa/es18xx.c +++ gregkh-2.6/sound/isa/es18xx.c -@@ -2086,7 +2086,8 @@ static int __devinit snd_audiodrive_pnp( +@@ -2088,7 +2088,8 @@ static int __devinit snd_audiodrive_pnp( kfree(cfg); return -EAGAIN; } diff --git a/pci/pci-correctly-allocate-return-buffers-for-osc-calls.patch b/pci/pci-correctly-allocate-return-buffers-for-osc-calls.patch deleted file mode 100644 index 8ccfca5839bc8..0000000000000 --- a/pci/pci-correctly-allocate-return-buffers-for-osc-calls.patch +++ /dev/null @@ -1,144 +0,0 @@ -From owner-linux-pci@atrey.karlin.mff.cuni.cz Wed May 17 11:04:37 2006 -Subject: PCI: correctly allocate return buffers for osc calls -From: Kristen Accardi <kristen.c.accardi@intel.com> -To: linux-pci@atrey.karlin.mff.cuni.cz -Cc: linux-kernel@vger.kernel.org, greg@kroah.com -Date: Wed, 17 May 2006 11:13:37 -0700 -Message-Id: <1147889618.8472.6.camel@whizzy> - -The OSC set and query functions do not allocate enough space for return values, -and set the output buffer length to a false, too large value. This causes the -acpi-ca code to assume that the output buffer is larger than it actually is, -and overwrite memory when copying acpi return buffers into this caller provided -buffer. In some cases this can cause kernel oops if the memory that is -overwritten is a pointer. This patch will change these calls to use a -dynamically allocated output buffer, thus allowing the acpi-ca code to decide -how much space is needed. - -Signed-off-by: Kristen Carlson Accardi <kristen.c.accardi@intel.com> -Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> - ---- - drivers/pci/pci-acpi.c | 60 ++++++++++++++++++++++++++++--------------------- - 1 file changed, 35 insertions(+), 25 deletions(-) - ---- gregkh-2.6.orig/drivers/pci/pci-acpi.c -+++ gregkh-2.6/drivers/pci/pci-acpi.c -@@ -33,13 +33,10 @@ acpi_query_osc ( - acpi_status status; - struct acpi_object_list input; - union acpi_object in_params[4]; -- struct acpi_buffer output; -- union acpi_object out_obj; -+ struct acpi_buffer output = {ACPI_ALLOCATE_BUFFER, NULL}; -+ union acpi_object *out_obj; - u32 osc_dw0; - -- /* Setting up output buffer */ -- output.length = sizeof(out_obj) + 3*sizeof(u32); -- output.pointer = &out_obj; - - /* Setting up input parameters */ - input.count = 4; -@@ -61,12 +58,15 @@ acpi_query_osc ( - "Evaluate _OSC Set fails. Status = 0x%04x\n", status); - return status; - } -- if (out_obj.type != ACPI_TYPE_BUFFER) { -+ out_obj = output.pointer; -+ -+ if (out_obj->type != ACPI_TYPE_BUFFER) { - printk(KERN_DEBUG - "Evaluate _OSC returns wrong type\n"); -- return AE_TYPE; -+ status = AE_TYPE; -+ goto query_osc_out; - } -- osc_dw0 = *((u32 *) out_obj.buffer.pointer); -+ osc_dw0 = *((u32 *) out_obj->buffer.pointer); - if (osc_dw0) { - if (osc_dw0 & OSC_REQUEST_ERROR) - printk(KERN_DEBUG "_OSC request fails\n"); -@@ -76,15 +76,21 @@ acpi_query_osc ( - printk(KERN_DEBUG "_OSC invalid revision\n"); - if (osc_dw0 & OSC_CAPABILITIES_MASK_ERROR) { - /* Update Global Control Set */ -- global_ctrlsets = *((u32 *)(out_obj.buffer.pointer+8)); -- return AE_OK; -+ global_ctrlsets = *((u32 *)(out_obj->buffer.pointer+8)); -+ status = AE_OK; -+ goto query_osc_out; - } -- return AE_ERROR; -+ status = AE_ERROR; -+ goto query_osc_out; - } - - /* Update Global Control Set */ -- global_ctrlsets = *((u32 *)(out_obj.buffer.pointer + 8)); -- return AE_OK; -+ global_ctrlsets = *((u32 *)(out_obj->buffer.pointer + 8)); -+ status = AE_OK; -+ -+query_osc_out: -+ kfree(output.pointer); -+ return status; - } - - -@@ -96,14 +102,10 @@ acpi_run_osc ( - acpi_status status; - struct acpi_object_list input; - union acpi_object in_params[4]; -- struct acpi_buffer output; -- union acpi_object out_obj; -+ struct acpi_buffer output = {ACPI_ALLOCATE_BUFFER, NULL}; -+ union acpi_object *out_obj; - u32 osc_dw0; - -- /* Setting up output buffer */ -- output.length = sizeof(out_obj) + 3*sizeof(u32); -- output.pointer = &out_obj; -- - /* Setting up input parameters */ - input.count = 4; - input.pointer = in_params; -@@ -124,12 +126,14 @@ acpi_run_osc ( - "Evaluate _OSC Set fails. Status = 0x%04x\n", status); - return status; - } -- if (out_obj.type != ACPI_TYPE_BUFFER) { -+ out_obj = output.pointer; -+ if (out_obj->type != ACPI_TYPE_BUFFER) { - printk(KERN_DEBUG - "Evaluate _OSC returns wrong type\n"); -- return AE_TYPE; -+ status = AE_TYPE; -+ goto run_osc_out; - } -- osc_dw0 = *((u32 *) out_obj.buffer.pointer); -+ osc_dw0 = *((u32 *) out_obj->buffer.pointer); - if (osc_dw0) { - if (osc_dw0 & OSC_REQUEST_ERROR) - printk(KERN_DEBUG "_OSC request fails\n"); -@@ -139,11 +143,17 @@ acpi_run_osc ( - printk(KERN_DEBUG "_OSC invalid revision\n"); - if (osc_dw0 & OSC_CAPABILITIES_MASK_ERROR) { - printk(KERN_DEBUG "_OSC FW not grant req. control\n"); -- return AE_SUPPORT; -+ status = AE_SUPPORT; -+ goto run_osc_out; - } -- return AE_ERROR; -+ status = AE_ERROR; -+ goto run_osc_out; - } -- return AE_OK; -+ status = AE_OK; -+ -+run_osc_out: -+ kfree(output.pointer); -+ return status; - } - - /** |