Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

Merge tag 'edac_for_3.15' of git://git.kernel.org/pub/scm/linux/kernel/git/bp/bp

Pull EDAC updates from Borislav Petkov:
"A bunch of EDAC updates all over the place:

- Support for new AMD models, along with more graceful fallback for
unsupported hw.

- Bunch of fixes from SUSE accumulated from bug reports

- Misc other fixes and cleanups"

* tag 'edac_for_3.15' of git://git.kernel.org/pub/scm/linux/kernel/git/bp/bp:
amd64_edac: Add support for newer F16h models
i7core_edac: Drop unused variable
i82875p_edac: Drop redundant call to pci_get_device()
amd8111_edac: Fix leaks in probe error paths
e752x_edac: Drop pvt->bridge_ck
MCE, AMD: Fix decoding module loading on unsupported hw
i5100_edac: Remove an unneeded condition in i5100_init_csrows()
sb_edac: Degrade log level for device registration
amd64_edac: Fix logic to determine channel for F15 M30h processors
edac/85xx: Remove deprecated IRQF_DISABLED
i3200_edac: Add a missing pci_disable_device() on the exit path
i5400_edac: Disable device when unloading module
e752x_edac: Simplify call to pci_get_device()

+134 -91
+2
arch/x86/kernel/amd_nb.c
··· 22 22 { PCI_DEVICE(PCI_VENDOR_ID_AMD, PCI_DEVICE_ID_AMD_15H_M10H_F3) }, 23 23 { PCI_DEVICE(PCI_VENDOR_ID_AMD, PCI_DEVICE_ID_AMD_15H_M30H_NB_F3) }, 24 24 { PCI_DEVICE(PCI_VENDOR_ID_AMD, PCI_DEVICE_ID_AMD_16H_NB_F3) }, 25 + { PCI_DEVICE(PCI_VENDOR_ID_AMD, PCI_DEVICE_ID_AMD_16H_M30H_NB_F3) }, 25 26 {} 26 27 }; 27 28 EXPORT_SYMBOL(amd_nb_misc_ids); ··· 31 30 { PCI_DEVICE(PCI_VENDOR_ID_AMD, PCI_DEVICE_ID_AMD_15H_NB_F4) }, 32 31 { PCI_DEVICE(PCI_VENDOR_ID_AMD, PCI_DEVICE_ID_AMD_15H_M30H_NB_F4) }, 33 32 { PCI_DEVICE(PCI_VENDOR_ID_AMD, PCI_DEVICE_ID_AMD_16H_NB_F4) }, 33 + { PCI_DEVICE(PCI_VENDOR_ID_AMD, PCI_DEVICE_ID_AMD_16H_M30H_NB_F4) }, 34 34 {} 35 35 }; 36 36
+35 -3
drivers/edac/amd64_edac.c
··· 1239 1239 if (num_dcts_intlv == 2) { 1240 1240 select = (sys_addr >> 8) & 0x3; 1241 1241 channel = select ? 0x3 : 0; 1242 - } else if (num_dcts_intlv == 4) 1243 - channel = (sys_addr >> 8) & 0x7; 1244 - 1242 + } else if (num_dcts_intlv == 4) { 1243 + u8 intlv_addr = dct_sel_interleave_addr(pvt); 1244 + switch (intlv_addr) { 1245 + case 0x4: 1246 + channel = (sys_addr >> 8) & 0x3; 1247 + break; 1248 + case 0x5: 1249 + channel = (sys_addr >> 9) & 0x3; 1250 + break; 1251 + } 1252 + } 1245 1253 return channel; 1246 1254 } 1247 1255 ··· 1800 1792 .ctl_name = "F16h", 1801 1793 .f1_id = PCI_DEVICE_ID_AMD_16H_NB_F1, 1802 1794 .f3_id = PCI_DEVICE_ID_AMD_16H_NB_F3, 1795 + .ops = { 1796 + .early_channel_count = f1x_early_channel_count, 1797 + .map_sysaddr_to_csrow = f1x_map_sysaddr_to_csrow, 1798 + .dbam_to_cs = f16_dbam_to_chip_select, 1799 + .read_dct_pci_cfg = f10_read_dct_pci_cfg, 1800 + } 1801 + }, 1802 + [F16_M30H_CPUS] = { 1803 + .ctl_name = "F16h_M30h", 1804 + .f1_id = PCI_DEVICE_ID_AMD_16H_M30H_NB_F1, 1805 + .f3_id = PCI_DEVICE_ID_AMD_16H_M30H_NB_F3, 1803 1806 .ops = { 1804 1807 .early_channel_count = f1x_early_channel_count, 1805 1808 .map_sysaddr_to_csrow = f1x_map_sysaddr_to_csrow, ··· 2597 2578 break; 2598 2579 2599 2580 case 0x16: 2581 + if (pvt->model == 0x30) { 2582 + fam_type = &family_types[F16_M30H_CPUS]; 2583 + pvt->ops = &family_types[F16_M30H_CPUS].ops; 2584 + break; 2585 + } 2600 2586 fam_type = &family_types[F16_CPUS]; 2601 2587 pvt->ops = &family_types[F16_CPUS].ops; 2602 2588 break; ··· 2849 2825 { 2850 2826 .vendor = PCI_VENDOR_ID_AMD, 2851 2827 .device = PCI_DEVICE_ID_AMD_16H_NB_F2, 2828 + .subvendor = PCI_ANY_ID, 2829 + .subdevice = PCI_ANY_ID, 2830 + .class = 0, 2831 + .class_mask = 0, 2832 + }, 2833 + { 2834 + .vendor = PCI_VENDOR_ID_AMD, 2835 + .device = PCI_DEVICE_ID_AMD_16H_M30H_NB_F2, 2852 2836 .subvendor = PCI_ANY_ID, 2853 2837 .subdevice = PCI_ANY_ID, 2854 2838 .class = 0,
+3
drivers/edac/amd64_edac.h
··· 168 168 #define PCI_DEVICE_ID_AMD_15H_NB_F2 0x1602 169 169 #define PCI_DEVICE_ID_AMD_16H_NB_F1 0x1531 170 170 #define PCI_DEVICE_ID_AMD_16H_NB_F2 0x1532 171 + #define PCI_DEVICE_ID_AMD_16H_M30H_NB_F1 0x1581 172 + #define PCI_DEVICE_ID_AMD_16H_M30H_NB_F2 0x1582 171 173 172 174 /* 173 175 * Function 1 - Address Map ··· 302 300 F15_CPUS, 303 301 F15_M30H_CPUS, 304 302 F16_CPUS, 303 + F16_M30H_CPUS, 305 304 NUM_FAMILIES, 306 305 }; 307 306
+30 -14
drivers/edac/amd8111_edac.c
··· 350 350 const struct pci_device_id *id) 351 351 { 352 352 struct amd8111_dev_info *dev_info = &amd8111_devices[id->driver_data]; 353 + int ret = -ENODEV; 353 354 354 355 dev_info->dev = pci_get_device(PCI_VENDOR_ID_AMD, 355 356 dev_info->err_dev, NULL); ··· 360 359 "vendor %x, device %x, name %s\n", 361 360 PCI_VENDOR_ID_AMD, dev_info->err_dev, 362 361 dev_info->ctl_name); 363 - return -ENODEV; 362 + goto err; 364 363 } 365 364 366 365 if (pci_enable_device(dev_info->dev)) { 367 - pci_dev_put(dev_info->dev); 368 366 printk(KERN_ERR "failed to enable:" 369 367 "vendor %x, device %x, name %s\n", 370 368 PCI_VENDOR_ID_AMD, dev_info->err_dev, 371 369 dev_info->ctl_name); 372 - return -ENODEV; 370 + goto err_dev_put; 373 371 } 374 372 375 373 /* ··· 381 381 edac_device_alloc_ctl_info(0, dev_info->ctl_name, 1, 382 382 NULL, 0, 0, 383 383 NULL, 0, dev_info->edac_idx); 384 - if (!dev_info->edac_dev) 385 - return -ENOMEM; 384 + if (!dev_info->edac_dev) { 385 + ret = -ENOMEM; 386 + goto err_dev_put; 387 + } 386 388 387 389 dev_info->edac_dev->pvt_info = dev_info; 388 390 dev_info->edac_dev->dev = &dev_info->dev->dev; ··· 401 399 if (edac_device_add_device(dev_info->edac_dev) > 0) { 402 400 printk(KERN_ERR "failed to add edac_dev for %s\n", 403 401 dev_info->ctl_name); 404 - edac_device_free_ctl_info(dev_info->edac_dev); 405 - return -ENODEV; 402 + goto err_edac_free_ctl; 406 403 } 407 404 408 405 printk(KERN_INFO "added one edac_dev on AMD8111 " ··· 410 409 dev_info->ctl_name); 411 410 412 411 return 0; 412 + 413 + err_edac_free_ctl: 414 + edac_device_free_ctl_info(dev_info->edac_dev); 415 + err_dev_put: 416 + pci_dev_put(dev_info->dev); 417 + err: 418 + return ret; 413 419 } 414 420 415 421 static void amd8111_dev_remove(struct pci_dev *dev) ··· 445 437 const struct pci_device_id *id) 446 438 { 447 439 struct amd8111_pci_info *pci_info = &amd8111_pcis[id->driver_data]; 440 + int ret = -ENODEV; 448 441 449 442 pci_info->dev = pci_get_device(PCI_VENDOR_ID_AMD, 450 443 pci_info->err_dev, NULL); ··· 455 446 "vendor %x, device %x, name %s\n", 456 447 PCI_VENDOR_ID_AMD, pci_info->err_dev, 457 448 pci_info->ctl_name); 458 - return -ENODEV; 449 + goto err; 459 450 } 460 451 461 452 if (pci_enable_device(pci_info->dev)) { 462 - pci_dev_put(pci_info->dev); 463 453 printk(KERN_ERR "failed to enable:" 464 454 "vendor %x, device %x, name %s\n", 465 455 PCI_VENDOR_ID_AMD, pci_info->err_dev, 466 456 pci_info->ctl_name); 467 - return -ENODEV; 457 + goto err_dev_put; 468 458 } 469 459 470 460 /* ··· 473 465 */ 474 466 pci_info->edac_idx = edac_pci_alloc_index(); 475 467 pci_info->edac_dev = edac_pci_alloc_ctl_info(0, pci_info->ctl_name); 476 - if (!pci_info->edac_dev) 477 - return -ENOMEM; 468 + if (!pci_info->edac_dev) { 469 + ret = -ENOMEM; 470 + goto err_dev_put; 471 + } 478 472 479 473 pci_info->edac_dev->pvt_info = pci_info; 480 474 pci_info->edac_dev->dev = &pci_info->dev->dev; ··· 493 483 if (edac_pci_add_device(pci_info->edac_dev, pci_info->edac_idx) > 0) { 494 484 printk(KERN_ERR "failed to add edac_pci for %s\n", 495 485 pci_info->ctl_name); 496 - edac_pci_free_ctl_info(pci_info->edac_dev); 497 - return -ENODEV; 486 + goto err_edac_free_ctl; 498 487 } 499 488 500 489 printk(KERN_INFO "added one edac_pci on AMD8111 " ··· 502 493 pci_info->ctl_name); 503 494 504 495 return 0; 496 + 497 + err_edac_free_ctl: 498 + edac_pci_free_ctl_info(pci_info->edac_dev); 499 + err_dev_put: 500 + pci_dev_put(pci_info->dev); 501 + err: 502 + return ret; 505 503 } 506 504 507 505 static void amd8111_pci_remove(struct pci_dev *dev)
+11 -19
drivers/edac/e752x_edac.c
··· 209 209 */ 210 210 211 211 struct e752x_pvt { 212 - struct pci_dev *bridge_ck; 213 212 struct pci_dev *dev_d0f0; 214 213 struct pci_dev *dev_d0f1; 215 214 u32 tolm; ··· 890 891 info->buf_ferr); 891 892 892 893 if (info->dram_ferr) 893 - pci_write_bits16(pvt->bridge_ck, E752X_DRAM_FERR, 894 + pci_write_bits16(pvt->dev_d0f1, E752X_DRAM_FERR, 894 895 info->dram_ferr, info->dram_ferr); 895 896 896 897 pci_write_config_dword(dev, E752X_FERR_GLOBAL, ··· 935 936 info->buf_nerr); 936 937 937 938 if (info->dram_nerr) 938 - pci_write_bits16(pvt->bridge_ck, E752X_DRAM_NERR, 939 + pci_write_bits16(pvt->dev_d0f1, E752X_DRAM_NERR, 939 940 info->dram_nerr, info->dram_nerr); 940 941 941 942 pci_write_config_dword(dev, E752X_NERR_GLOBAL, ··· 1176 1177 static int e752x_get_devs(struct pci_dev *pdev, int dev_idx, 1177 1178 struct e752x_pvt *pvt) 1178 1179 { 1179 - struct pci_dev *dev; 1180 + pvt->dev_d0f1 = pci_get_device(PCI_VENDOR_ID_INTEL, 1181 + pvt->dev_info->err_dev, NULL); 1180 1182 1181 - pvt->bridge_ck = pci_get_device(PCI_VENDOR_ID_INTEL, 1182 - pvt->dev_info->err_dev, pvt->bridge_ck); 1183 - 1184 - if (pvt->bridge_ck == NULL) { 1185 - pvt->bridge_ck = pci_scan_single_device(pdev->bus, 1183 + if (pvt->dev_d0f1 == NULL) { 1184 + pvt->dev_d0f1 = pci_scan_single_device(pdev->bus, 1186 1185 PCI_DEVFN(0, 1)); 1187 - pci_dev_get(pvt->bridge_ck); 1186 + pci_dev_get(pvt->dev_d0f1); 1188 1187 } 1189 1188 1190 - if (pvt->bridge_ck == NULL) { 1189 + if (pvt->dev_d0f1 == NULL) { 1191 1190 e752x_printk(KERN_ERR, "error reporting device not found:" 1192 1191 "vendor %x device 0x%x (broken BIOS?)\n", 1193 1192 PCI_VENDOR_ID_INTEL, e752x_devs[dev_idx].err_dev); 1194 1193 return 1; 1195 1194 } 1196 1195 1197 - dev = pci_get_device(PCI_VENDOR_ID_INTEL, 1196 + pvt->dev_d0f0 = pci_get_device(PCI_VENDOR_ID_INTEL, 1198 1197 e752x_devs[dev_idx].ctl_dev, 1199 1198 NULL); 1200 1199 1201 - if (dev == NULL) 1200 + if (pvt->dev_d0f0 == NULL) 1202 1201 goto fail; 1203 - 1204 - pvt->dev_d0f0 = dev; 1205 - pvt->dev_d0f1 = pci_dev_get(pvt->bridge_ck); 1206 1202 1207 1203 return 0; 1208 1204 1209 1205 fail: 1210 - pci_dev_put(pvt->bridge_ck); 1206 + pci_dev_put(pvt->dev_d0f1); 1211 1207 return 1; 1212 1208 } 1213 1209 ··· 1379 1385 fail: 1380 1386 pci_dev_put(pvt->dev_d0f0); 1381 1387 pci_dev_put(pvt->dev_d0f1); 1382 - pci_dev_put(pvt->bridge_ck); 1383 1388 edac_mc_free(mci); 1384 1389 1385 1390 return -ENODEV; ··· 1412 1419 pvt = (struct e752x_pvt *)mci->pvt_info; 1413 1420 pci_dev_put(pvt->dev_d0f0); 1414 1421 pci_dev_put(pvt->dev_d0f1); 1415 - pci_dev_put(pvt->bridge_ck); 1416 1422 edac_mc_free(mci); 1417 1423 } 1418 1424
+2
drivers/edac/i3200_edac.c
··· 464 464 iounmap(priv->window); 465 465 466 466 edac_mc_free(mci); 467 + 468 + pci_disable_device(pdev); 467 469 } 468 470 469 471 static const struct pci_device_id i3200_pci_tbl[] = {
+7 -10
drivers/edac/i5100_edac.c
··· 869 869 chan, rank, 0); 870 870 871 871 dimm->nr_pages = npages; 872 - if (npages) { 873 - dimm->grain = 32; 874 - dimm->dtype = (priv->mtr[chan][rank].width == 4) ? 875 - DEV_X4 : DEV_X8; 876 - dimm->mtype = MEM_RDDR2; 877 - dimm->edac_mode = EDAC_SECDED; 878 - snprintf(dimm->label, sizeof(dimm->label), 879 - "DIMM%u", 880 - i5100_rank_to_slot(mci, chan, rank)); 881 - } 872 + dimm->grain = 32; 873 + dimm->dtype = (priv->mtr[chan][rank].width == 4) ? 874 + DEV_X4 : DEV_X8; 875 + dimm->mtype = MEM_RDDR2; 876 + dimm->edac_mode = EDAC_SECDED; 877 + snprintf(dimm->label, sizeof(dimm->label), "DIMM%u", 878 + i5100_rank_to_slot(mci, chan, rank)); 882 879 883 880 edac_dbg(2, "dimm channel %d, rank %d, size %ld\n", 884 881 chan, rank, (long)PAGES_TO_MiB(npages));
+2
drivers/edac/i5400_edac.c
··· 1408 1408 /* retrieve references to resources, and free those resources */ 1409 1409 i5400_put_devices(mci); 1410 1410 1411 + pci_disable_device(pdev); 1412 + 1411 1413 edac_mc_free(mci); 1412 1414 } 1413 1415
+3 -7
drivers/edac/i7core_edac.c
··· 1708 1708 const struct mce *m) 1709 1709 { 1710 1710 struct i7core_pvt *pvt = mci->pvt_info; 1711 - char *type, *optype, *err; 1711 + char *optype, *err; 1712 1712 enum hw_event_mc_err_type tp_event; 1713 1713 unsigned long error = m->status & 0x1ff0000l; 1714 1714 bool uncorrected_error = m->mcgstatus & 1ll << 61; ··· 1721 1721 u32 errnum = find_first_bit(&error, 32); 1722 1722 1723 1723 if (uncorrected_error) { 1724 - if (ripv) { 1725 - type = "FATAL"; 1724 + if (ripv) 1726 1725 tp_event = HW_EVENT_ERR_FATAL; 1727 - } else { 1728 - type = "NON_FATAL"; 1726 + else 1729 1727 tp_event = HW_EVENT_ERR_UNCORRECTED; 1730 - } 1731 1728 } else { 1732 - type = "CORRECTED"; 1733 1729 tp_event = HW_EVENT_ERR_CORRECTED; 1734 1730 } 1735 1731
-2
drivers/edac/i82875p_edac.c
··· 406 406 407 407 edac_dbg(0, "\n"); 408 408 409 - ovrfl_pdev = pci_get_device(PCI_VEND_DEV(INTEL, 82875_6), NULL); 410 - 411 409 if (i82875p_setup_overfl_dev(pdev, &ovrfl_pdev, &ovrfl_window)) 412 410 return -ENODEV; 413 411 drc = readl(ovrfl_window + I82875P_DRC);
+33 -32
drivers/edac/mce_amd.c
··· 741 741 if (amd_filter_mce(m)) 742 742 return NOTIFY_STOP; 743 743 744 + pr_emerg(HW_ERR "%s\n", decode_error_status(m)); 745 + 746 + pr_emerg(HW_ERR "CPU:%d (%x:%x:%x) MC%d_STATUS[%s|%s|%s|%s|%s", 747 + m->extcpu, 748 + c->x86, c->x86_model, c->x86_mask, 749 + m->bank, 750 + ((m->status & MCI_STATUS_OVER) ? "Over" : "-"), 751 + ((m->status & MCI_STATUS_UC) ? "UE" : "CE"), 752 + ((m->status & MCI_STATUS_MISCV) ? "MiscV" : "-"), 753 + ((m->status & MCI_STATUS_PCC) ? "PCC" : "-"), 754 + ((m->status & MCI_STATUS_ADDRV) ? "AddrV" : "-")); 755 + 756 + if (c->x86 == 0x15 || c->x86 == 0x16) 757 + pr_cont("|%s|%s", 758 + ((m->status & MCI_STATUS_DEFERRED) ? "Deferred" : "-"), 759 + ((m->status & MCI_STATUS_POISON) ? "Poison" : "-")); 760 + 761 + /* do the two bits[14:13] together */ 762 + ecc = (m->status >> 45) & 0x3; 763 + if (ecc) 764 + pr_cont("|%sECC", ((ecc == 2) ? "C" : "U")); 765 + 766 + pr_cont("]: 0x%016llx\n", m->status); 767 + 768 + if (m->status & MCI_STATUS_ADDRV) 769 + pr_emerg(HW_ERR "MC%d_ADDR: 0x%016llx\n", m->bank, m->addr); 770 + 771 + if (!fam_ops) 772 + goto err_code; 773 + 744 774 switch (m->bank) { 745 775 case 0: 746 776 decode_mc0_mce(m); ··· 804 774 break; 805 775 } 806 776 807 - pr_emerg(HW_ERR "Error Status: %s\n", decode_error_status(m)); 808 - 809 - pr_emerg(HW_ERR "CPU:%d (%x:%x:%x) MC%d_STATUS[%s|%s|%s|%s|%s", 810 - m->extcpu, 811 - c->x86, c->x86_model, c->x86_mask, 812 - m->bank, 813 - ((m->status & MCI_STATUS_OVER) ? "Over" : "-"), 814 - ((m->status & MCI_STATUS_UC) ? "UE" : "CE"), 815 - ((m->status & MCI_STATUS_MISCV) ? "MiscV" : "-"), 816 - ((m->status & MCI_STATUS_PCC) ? "PCC" : "-"), 817 - ((m->status & MCI_STATUS_ADDRV) ? "AddrV" : "-")); 818 - 819 - if (c->x86 == 0x15 || c->x86 == 0x16) 820 - pr_cont("|%s|%s", 821 - ((m->status & MCI_STATUS_DEFERRED) ? "Deferred" : "-"), 822 - ((m->status & MCI_STATUS_POISON) ? "Poison" : "-")); 823 - 824 - /* do the two bits[14:13] together */ 825 - ecc = (m->status >> 45) & 0x3; 826 - if (ecc) 827 - pr_cont("|%sECC", ((ecc == 2) ? "C" : "U")); 828 - 829 - pr_cont("]: 0x%016llx\n", m->status); 830 - 831 - if (m->status & MCI_STATUS_ADDRV) 832 - pr_emerg(HW_ERR "MC%d_ADDR: 0x%016llx\n", m->bank, m->addr); 833 - 777 + err_code: 834 778 amd_decode_err_code(m->status & 0xffff); 835 779 836 780 return NOTIFY_STOP; ··· 820 816 struct cpuinfo_x86 *c = &boot_cpu_data; 821 817 822 818 if (c->x86_vendor != X86_VENDOR_AMD) 823 - return 0; 824 - 825 - if (c->x86 < 0xf || c->x86 > 0x16) 826 - return 0; 819 + return -ENODEV; 827 820 828 821 fam_ops = kzalloc(sizeof(struct amd_decoder_ops), GFP_KERNEL); 829 822 if (!fam_ops) ··· 875 874 default: 876 875 printk(KERN_WARNING "Huh? What family is it: 0x%x?!\n", c->x86); 877 876 kfree(fam_ops); 878 - return -EINVAL; 877 + fam_ops = NULL; 879 878 } 880 879 881 880 pr_info("MCE: In-kernel MCE decoding enabled.\n");
+3 -3
drivers/edac/mpc85xx_edac.c
··· 357 357 pdata->irq = irq_of_parse_and_map(op->dev.of_node, 0); 358 358 res = devm_request_irq(&op->dev, pdata->irq, 359 359 mpc85xx_pci_isr, 360 - IRQF_DISABLED | IRQF_SHARED, 360 + IRQF_SHARED, 361 361 "[EDAC] PCI err", pci); 362 362 if (res < 0) { 363 363 printk(KERN_ERR ··· 633 633 if (edac_op_state == EDAC_OPSTATE_INT) { 634 634 pdata->irq = irq_of_parse_and_map(op->dev.of_node, 0); 635 635 res = devm_request_irq(&op->dev, pdata->irq, 636 - mpc85xx_l2_isr, IRQF_DISABLED, 636 + mpc85xx_l2_isr, 0, 637 637 "[EDAC] L2 err", edac_dev); 638 638 if (res < 0) { 639 639 printk(KERN_ERR ··· 1133 1133 pdata->irq = irq_of_parse_and_map(op->dev.of_node, 0); 1134 1134 res = devm_request_irq(&op->dev, pdata->irq, 1135 1135 mpc85xx_mc_isr, 1136 - IRQF_DISABLED | IRQF_SHARED, 1136 + IRQF_SHARED, 1137 1137 "[EDAC] MC err", mci); 1138 1138 if (res < 0) { 1139 1139 printk(KERN_ERR "%s: Unable to request irq %d for "
+1 -1
drivers/edac/sb_edac.c
··· 1263 1263 struct pci_dev *pdev = NULL; 1264 1264 u8 bus = 0; 1265 1265 1266 - sbridge_printk(KERN_INFO, 1266 + sbridge_printk(KERN_DEBUG, 1267 1267 "Seeking for: dev %02x.%d PCI ID %04x:%04x\n", 1268 1268 dev_descr->dev, dev_descr->func, 1269 1269 PCI_VENDOR_ID_INTEL, dev_descr->dev_id);
+2
include/linux/pci_ids.h
··· 528 528 #define PCI_DEVICE_ID_AMD_15H_NB_F5 0x1605 529 529 #define PCI_DEVICE_ID_AMD_16H_NB_F3 0x1533 530 530 #define PCI_DEVICE_ID_AMD_16H_NB_F4 0x1534 531 + #define PCI_DEVICE_ID_AMD_16H_M30H_NB_F3 0x1583 532 + #define PCI_DEVICE_ID_AMD_16H_M30H_NB_F4 0x1584 531 533 #define PCI_DEVICE_ID_AMD_CNB17H_F3 0x1703 532 534 #define PCI_DEVICE_ID_AMD_LANCE 0x2000 533 535 #define PCI_DEVICE_ID_AMD_LANCE_HOME 0x2001