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

EDAC/amd64: Merge sysfs debugging attributes setup code

There's no need for them to be in a separate file so merge them into the
main driver compilation unit like the other EDAC drivers do.

Drop now-unneeded function export, make the function static and shorten
static function names.

No functional changes.

Signed-off-by: Borislav Petkov <bp@suse.de>
Reviewed-by: Yazen Ghannam <yazen.ghannam@amd.com>
Link: https://lkml.kernel.org/r/20201215110517.5215-1-bp@alien8.de

+59 -69
-1
drivers/edac/Makefile
··· 46 46 obj-$(CONFIG_EDAC_R82600) += r82600_edac.o 47 47 48 48 amd64_edac_mod-y := amd64_edac.o 49 - amd64_edac_mod-$(CONFIG_EDAC_DEBUG) += amd64_edac_dbg.o 50 49 amd64_edac_mod-$(CONFIG_EDAC_AMD64_ERROR_INJECTION) += amd64_edac_inj.o 51 50 52 51 obj-$(CONFIG_EDAC_AMD64) += amd64_edac_mod.o
+59 -6
drivers/edac/amd64_edac.c
··· 500 500 * complete 32-bit values despite the fact that the bitfields in the DHAR 501 501 * only represent bits 31-24 of the base and offset values. 502 502 */ 503 - int amd64_get_dram_hole_info(struct mem_ctl_info *mci, u64 *hole_base, 504 - u64 *hole_offset, u64 *hole_size) 503 + static int get_dram_hole_info(struct mem_ctl_info *mci, u64 *hole_base, 504 + u64 *hole_offset, u64 *hole_size) 505 505 { 506 506 struct amd64_pvt *pvt = mci->pvt_info; 507 507 ··· 554 554 555 555 return 0; 556 556 } 557 - EXPORT_SYMBOL_GPL(amd64_get_dram_hole_info); 557 + 558 + #ifdef CONFIG_EDAC_DEBUG 559 + #define EDAC_DCT_ATTR_SHOW(reg) \ 560 + static ssize_t reg##_show(struct device *dev, \ 561 + struct device_attribute *mattr, char *data) \ 562 + { \ 563 + struct mem_ctl_info *mci = to_mci(dev); \ 564 + struct amd64_pvt *pvt = mci->pvt_info; \ 565 + \ 566 + return sprintf(data, "0x%016llx\n", (u64)pvt->reg); \ 567 + } 568 + 569 + EDAC_DCT_ATTR_SHOW(dhar); 570 + EDAC_DCT_ATTR_SHOW(dbam0); 571 + EDAC_DCT_ATTR_SHOW(top_mem); 572 + EDAC_DCT_ATTR_SHOW(top_mem2); 573 + 574 + static ssize_t hole_show(struct device *dev, struct device_attribute *mattr, 575 + char *data) 576 + { 577 + struct mem_ctl_info *mci = to_mci(dev); 578 + 579 + u64 hole_base = 0; 580 + u64 hole_offset = 0; 581 + u64 hole_size = 0; 582 + 583 + get_dram_hole_info(mci, &hole_base, &hole_offset, &hole_size); 584 + 585 + return sprintf(data, "%llx %llx %llx\n", hole_base, hole_offset, 586 + hole_size); 587 + } 588 + 589 + /* 590 + * update NUM_DBG_ATTRS in case you add new members 591 + */ 592 + static DEVICE_ATTR(dhar, S_IRUGO, dhar_show, NULL); 593 + static DEVICE_ATTR(dbam, S_IRUGO, dbam0_show, NULL); 594 + static DEVICE_ATTR(topmem, S_IRUGO, top_mem_show, NULL); 595 + static DEVICE_ATTR(topmem2, S_IRUGO, top_mem2_show, NULL); 596 + static DEVICE_ATTR(dram_hole, S_IRUGO, hole_show, NULL); 597 + 598 + static struct attribute *dbg_attrs[] = { 599 + &dev_attr_dhar.attr, 600 + &dev_attr_dbam.attr, 601 + &dev_attr_topmem.attr, 602 + &dev_attr_topmem2.attr, 603 + &dev_attr_dram_hole.attr, 604 + NULL 605 + }; 606 + 607 + static const struct attribute_group dbg_group = { 608 + .attrs = dbg_attrs, 609 + }; 610 + #endif /* CONFIG_EDAC_DEBUG */ 611 + 558 612 559 613 /* 560 614 * Return the DramAddr that the SysAddr given by @sys_addr maps to. It is ··· 647 593 648 594 dram_base = get_dram_base(pvt, pvt->mc_node_id); 649 595 650 - ret = amd64_get_dram_hole_info(mci, &hole_base, &hole_offset, 651 - &hole_size); 596 + ret = get_dram_hole_info(mci, &hole_base, &hole_offset, &hole_size); 652 597 if (!ret) { 653 598 if ((sys_addr >= (1ULL << 32)) && 654 599 (sys_addr < ((1ULL << 32) + hole_size))) { ··· 3468 3415 3469 3416 static const struct attribute_group *amd64_edac_attr_groups[] = { 3470 3417 #ifdef CONFIG_EDAC_DEBUG 3471 - &amd64_edac_dbg_group, 3418 + &dbg_group, 3472 3419 #endif 3473 3420 #ifdef CONFIG_EDAC_AMD64_ERROR_INJECTION 3474 3421 &amd64_edac_inj_group,
-7
drivers/edac/amd64_edac.h
··· 462 462 } flags; 463 463 }; 464 464 465 - #ifdef CONFIG_EDAC_DEBUG 466 - extern const struct attribute_group amd64_edac_dbg_group; 467 - #endif 468 - 469 465 #ifdef CONFIG_EDAC_AMD64_ERROR_INJECTION 470 466 extern const struct attribute_group amd64_edac_inj_group; 471 467 #endif ··· 496 500 497 501 #define amd64_write_pci_cfg(pdev, offset, val) \ 498 502 __amd64_write_pci_cfg_dword(pdev, offset, val, __func__) 499 - 500 - int amd64_get_dram_hole_info(struct mem_ctl_info *mci, u64 *hole_base, 501 - u64 *hole_offset, u64 *hole_size); 502 503 503 504 #define to_mci(k) container_of(k, struct mem_ctl_info, dev) 504 505
-55
drivers/edac/amd64_edac_dbg.c
··· 1 - // SPDX-License-Identifier: GPL-2.0 2 - #include "amd64_edac.h" 3 - 4 - #define EDAC_DCT_ATTR_SHOW(reg) \ 5 - static ssize_t amd64_##reg##_show(struct device *dev, \ 6 - struct device_attribute *mattr, \ 7 - char *data) \ 8 - { \ 9 - struct mem_ctl_info *mci = to_mci(dev); \ 10 - struct amd64_pvt *pvt = mci->pvt_info; \ 11 - return sprintf(data, "0x%016llx\n", (u64)pvt->reg); \ 12 - } 13 - 14 - EDAC_DCT_ATTR_SHOW(dhar); 15 - EDAC_DCT_ATTR_SHOW(dbam0); 16 - EDAC_DCT_ATTR_SHOW(top_mem); 17 - EDAC_DCT_ATTR_SHOW(top_mem2); 18 - 19 - static ssize_t amd64_hole_show(struct device *dev, 20 - struct device_attribute *mattr, 21 - char *data) 22 - { 23 - struct mem_ctl_info *mci = to_mci(dev); 24 - 25 - u64 hole_base = 0; 26 - u64 hole_offset = 0; 27 - u64 hole_size = 0; 28 - 29 - amd64_get_dram_hole_info(mci, &hole_base, &hole_offset, &hole_size); 30 - 31 - return sprintf(data, "%llx %llx %llx\n", hole_base, hole_offset, 32 - hole_size); 33 - } 34 - 35 - /* 36 - * update NUM_DBG_ATTRS in case you add new members 37 - */ 38 - static DEVICE_ATTR(dhar, S_IRUGO, amd64_dhar_show, NULL); 39 - static DEVICE_ATTR(dbam, S_IRUGO, amd64_dbam0_show, NULL); 40 - static DEVICE_ATTR(topmem, S_IRUGO, amd64_top_mem_show, NULL); 41 - static DEVICE_ATTR(topmem2, S_IRUGO, amd64_top_mem2_show, NULL); 42 - static DEVICE_ATTR(dram_hole, S_IRUGO, amd64_hole_show, NULL); 43 - 44 - static struct attribute *amd64_edac_dbg_attrs[] = { 45 - &dev_attr_dhar.attr, 46 - &dev_attr_dbam.attr, 47 - &dev_attr_topmem.attr, 48 - &dev_attr_topmem2.attr, 49 - &dev_attr_dram_hole.attr, 50 - NULL 51 - }; 52 - 53 - const struct attribute_group amd64_edac_dbg_group = { 54 - .attrs = amd64_edac_dbg_attrs, 55 - };