Merge branch 'agp-patches' of git://git.kernel.org/pub/scm/linux/kernel/git/airlied/agp-2.6

* 'agp-patches' of git://git.kernel.org/pub/scm/linux/kernel/git/airlied/agp-2.6:
agp: balance ioremap checks
agp: Add device id for P4M900 to via-agp module
efficeon-agp leaks 'struct agp_bridge_data' in error paths of agp_efficeon_probe()

+30 -5
+2
drivers/char/agp/amd-k7-agp.c
··· 223 223 pci_read_config_dword(agp_bridge->dev, AMD_MMBASE, &temp); 224 224 temp = (temp & PCI_BASE_ADDRESS_MEM_MASK); 225 225 amd_irongate_private.registers = (volatile u8 __iomem *) ioremap(temp, 4096); 226 + if (!amd_irongate_private.registers) 227 + return -ENOMEM; 226 228 227 229 /* Write out the address of the gatt table */ 228 230 writel(agp_bridge->gatt_bus_addr, amd_irongate_private.registers+AMD_ATTBASE);
+3
drivers/char/agp/ati-agp.c
··· 213 213 temp = (temp & 0xfffff000); 214 214 ati_generic_private.registers = (volatile u8 __iomem *) ioremap(temp, 4096); 215 215 216 + if (!ati_generic_private.registers) 217 + return -ENOMEM; 218 + 216 219 if (is_r200()) 217 220 pci_write_config_dword(agp_bridge->dev, ATI_RS100_IG_AGPMODE, 0x20000); 218 221 else
+2
drivers/char/agp/efficeon-agp.c
··· 375 375 if (!r->start && r->end) { 376 376 if (pci_assign_resource(pdev, 0)) { 377 377 printk(KERN_ERR PFX "could not assign resource 0\n"); 378 + agp_put_bridge(bridge); 378 379 return -ENODEV; 379 380 } 380 381 } ··· 387 386 */ 388 387 if (pci_enable_device(pdev)) { 389 388 printk(KERN_ERR PFX "Unable to Enable PCI device\n"); 389 + agp_put_bridge(bridge); 390 390 return -ENODEV; 391 391 } 392 392
+1
drivers/char/agp/hp-agp.c
··· 221 221 if (cap != PCI_CAP_ID_AGP) { 222 222 printk(KERN_ERR PFX "Invalid capability ID 0x%02x at 0x%x\n", 223 223 cap, hp->lba_cap_offset); 224 + iounmap(hp->lba_regs); 224 225 return -ENODEV; 225 226 } 226 227
+4
drivers/char/agp/i460-agp.c
··· 249 249 num_entries = A_SIZE_8(temp)->num_entries; 250 250 251 251 i460.gatt = ioremap(INTEL_I460_ATTBASE, PAGE_SIZE << page_order); 252 + if (!i460.gatt) { 253 + printk(KERN_ERR PFX "ioremap failed\n"); 254 + return -ENOMEM; 255 + } 252 256 253 257 /* These are no good, the should be removed from the agp_bridge strucure... */ 254 258 agp_bridge->gatt_table_real = NULL;
+9 -5
drivers/char/agp/intel-agp.c
··· 930 930 temp &= 0xfff80000; 931 931 932 932 intel_private.registers = ioremap(temp,128 * 4096); 933 - if (!intel_private.registers) 933 + if (!intel_private.registers) { 934 + iounmap(intel_private.gtt); 934 935 return -ENOMEM; 936 + } 935 937 936 938 temp = readl(intel_private.registers+I810_PGETBL_CTL) & 0xfffff000; 937 939 global_cache_flush(); /* FIXME: ? */ ··· 987 985 temp &= 0xfff00000; 988 986 intel_private.gtt = ioremap((temp + (512 * 1024)) , 512 * 1024); 989 987 990 - if (!intel_private.gtt) 991 - return -ENOMEM; 988 + if (!intel_private.gtt) 989 + return -ENOMEM; 992 990 993 991 994 992 intel_private.registers = ioremap(temp,128 * 4096); 995 - if (!intel_private.registers) 996 - return -ENOMEM; 993 + if (!intel_private.registers) { 994 + iounmap(intel_private.gtt); 995 + return -ENOMEM; 996 + } 997 997 998 998 temp = readl(intel_private.registers+I810_PGETBL_CTL) & 0xfffff000; 999 999 global_cache_flush(); /* FIXME: ? */
+3
drivers/char/agp/nvidia-agp.c
··· 157 157 nvidia_private.aperture = 158 158 (volatile u32 __iomem *) ioremap(apbase, 33 * PAGE_SIZE); 159 159 160 + if (!nvidia_private.aperture) 161 + return -ENOMEM; 162 + 160 163 return 0; 161 164 } 162 165
+5
drivers/char/agp/via-agp.c
··· 399 399 .device_id = PCI_DEVICE_ID_VIA_P4M890, 400 400 .chipset_name = "P4M890", 401 401 }, 402 + /* P4M900 */ 403 + { 404 + .device_id = PCI_DEVICE_ID_VIA_VT3364, 405 + .chipset_name = "P4M900", 406 + }, 402 407 { }, /* dummy final entry, always present */ 403 408 }; 404 409
+1
include/linux/pci_ids.h
··· 1290 1290 #define PCI_DEVICE_ID_VIA_VT3324 0x0324 1291 1291 #define PCI_DEVICE_ID_VIA_VT3336 0x0336 1292 1292 #define PCI_DEVICE_ID_VIA_VT3351 0x0351 1293 + #define PCI_DEVICE_ID_VIA_VT3364 0x0364 1293 1294 #define PCI_DEVICE_ID_VIA_8371_0 0x0391 1294 1295 #define PCI_DEVICE_ID_VIA_8501_0 0x0501 1295 1296 #define PCI_DEVICE_ID_VIA_82C561 0x0561