Commit e235dd43 authored by Qiuxu Zhuo's avatar Qiuxu Zhuo Committed by Borislav Petkov

EDAC, skx: Prepend hex formatting with '0x'

Some debug/error strings in hex formatting do not have the '0x' prefix.

Prepend hex formatting with '0x' for them, but with one exception:
"Couldn't enable %04x:%04x", instead of putting '0x' in this line,
add the word 'device'. We commonly use 8086:1234 without the leading
'0x' (e.g. as '-d' argument to lspci(8) and setpci(8) commands).
Suggested-by: default avatarBorislav Petkov <bp@suse.de>
Signed-off-by: default avatarQiuxu Zhuo <qiuxu.zhuo@intel.com>
Signed-off-by: default avatarBorislav Petkov <bp@suse.de>
CC: Mauro Carvalho Chehab <mchehab@kernel.org>
CC: Tony Luck <tony.luck@intel.com>
CC: arozansk@redhat.com
CC: linux-edac <linux-edac@vger.kernel.org>
Link: http://lkml.kernel.org/r/1542353660-13458-1-git-send-email-qiuxu.zhuo@intel.com
parent a6a38615
...@@ -209,7 +209,7 @@ static int get_all_bus_mappings(void) ...@@ -209,7 +209,7 @@ static int get_all_bus_mappings(void)
d->bus[1] = GET_BITFIELD(reg, 8, 15); d->bus[1] = GET_BITFIELD(reg, 8, 15);
d->bus[2] = GET_BITFIELD(reg, 16, 23); d->bus[2] = GET_BITFIELD(reg, 16, 23);
d->bus[3] = GET_BITFIELD(reg, 24, 31); d->bus[3] = GET_BITFIELD(reg, 24, 31);
edac_dbg(2, "busses: %x, %x, %x, %x\n", edac_dbg(2, "busses: 0x%x, 0x%x, 0x%x, 0x%x\n",
d->bus[0], d->bus[1], d->bus[2], d->bus[3]); d->bus[0], d->bus[1], d->bus[2], d->bus[3]);
list_add_tail(&d->list, &skx_edac_list); list_add_tail(&d->list, &skx_edac_list);
skx_num_sockets++; skx_num_sockets++;
...@@ -245,8 +245,8 @@ static int get_all_munits(const struct munit *m) ...@@ -245,8 +245,8 @@ static int get_all_munits(const struct munit *m)
/* Be sure that the device is enabled */ /* Be sure that the device is enabled */
if (unlikely(pci_enable_device(pdev) < 0)) { if (unlikely(pci_enable_device(pdev) < 0)) {
skx_printk(KERN_ERR, skx_printk(KERN_ERR, "Couldn't enable device %04x:%04x\n",
"Couldn't enable %04x:%04x\n", PCI_VENDOR_ID_INTEL, m->did); PCI_VENDOR_ID_INTEL, m->did);
goto fail; goto fail;
} }
...@@ -323,7 +323,7 @@ static int get_dimm_attr(u32 reg, int lobit, int hibit, int add, int minval, ...@@ -323,7 +323,7 @@ static int get_dimm_attr(u32 reg, int lobit, int hibit, int add, int minval,
u32 val = GET_BITFIELD(reg, lobit, hibit); u32 val = GET_BITFIELD(reg, lobit, hibit);
if (val < minval || val > maxval) { if (val < minval || val > maxval) {
edac_dbg(2, "bad %s = %d (raw=%x)\n", name, val, reg); edac_dbg(2, "bad %s = %d (raw=0x%x)\n", name, val, reg);
return -EINVAL; return -EINVAL;
} }
return val + add; return val + add;
...@@ -368,7 +368,7 @@ static int skx_get_hi_lo(void) ...@@ -368,7 +368,7 @@ static int skx_get_hi_lo(void)
skx_tohm |= (u64)reg << 32; skx_tohm |= (u64)reg << 32;
pci_dev_put(pdev); pci_dev_put(pdev);
edac_dbg(2, "tolm=%llx tohm=%llx\n", skx_tolm, skx_tohm); edac_dbg(2, "tolm=0x%llx tohm=0x%llx\n", skx_tolm, skx_tohm);
return 0; return 0;
} }
...@@ -389,7 +389,7 @@ static int get_dimm_info(u32 mtr, u32 amap, struct dimm_info *dimm, ...@@ -389,7 +389,7 @@ static int get_dimm_info(u32 mtr, u32 amap, struct dimm_info *dimm,
size = ((1ull << (rows + cols + ranks)) * banks) >> (20 - 3); size = ((1ull << (rows + cols + ranks)) * banks) >> (20 - 3);
npages = MiB_TO_PAGES(size); npages = MiB_TO_PAGES(size);
edac_dbg(0, "mc#%d: channel %d, dimm %d, %lld MiB (%d pages) bank: %d, rank: %d, row: %#x, col: %#x\n", edac_dbg(0, "mc#%d: channel %d, dimm %d, %lld MiB (%d pages) bank: %d, rank: %d, row: 0x%#x, col: 0x%#x\n",
imc->mc, chan, dimmno, size, npages, imc->mc, chan, dimmno, size, npages,
banks, 1 << ranks, rows, cols); banks, 1 << ranks, rows, cols);
...@@ -430,18 +430,18 @@ static int get_nvdimm_info(struct dimm_info *dimm, struct skx_imc *imc, ...@@ -430,18 +430,18 @@ static int get_nvdimm_info(struct dimm_info *dimm, struct skx_imc *imc,
} }
if (smbios_handle < 0) { if (smbios_handle < 0) {
skx_printk(KERN_ERR, "Can't find handle for NVDIMM ADR=%x\n", dev_handle); skx_printk(KERN_ERR, "Can't find handle for NVDIMM ADR=0x%x\n", dev_handle);
goto unknown_size; goto unknown_size;
} }
if (flags & ACPI_NFIT_MEM_MAP_FAILED) { if (flags & ACPI_NFIT_MEM_MAP_FAILED) {
skx_printk(KERN_ERR, "NVDIMM ADR=%x is not mapped\n", dev_handle); skx_printk(KERN_ERR, "NVDIMM ADR=0x%x is not mapped\n", dev_handle);
goto unknown_size; goto unknown_size;
} }
size = dmi_memdev_size(smbios_handle); size = dmi_memdev_size(smbios_handle);
if (size == ~0ull) if (size == ~0ull)
skx_printk(KERN_ERR, "Can't find size for NVDIMM ADR=%x/SMBIOS=%x\n", skx_printk(KERN_ERR, "Can't find size for NVDIMM ADR=0x%x/SMBIOS=0x%x\n",
dev_handle, smbios_handle); dev_handle, smbios_handle);
unknown_size: unknown_size:
...@@ -616,7 +616,7 @@ static bool skx_sad_decode(struct decoded_addr *res) ...@@ -616,7 +616,7 @@ static bool skx_sad_decode(struct decoded_addr *res)
/* Simple sanity check for I/O space or out of range */ /* Simple sanity check for I/O space or out of range */
if (addr >= skx_tohm || (addr >= skx_tolm && addr < BIT_ULL(32))) { if (addr >= skx_tohm || (addr >= skx_tolm && addr < BIT_ULL(32))) {
edac_dbg(0, "Address %llx out of range\n", addr); edac_dbg(0, "Address 0x%llx out of range\n", addr);
return false; return false;
} }
...@@ -631,7 +631,7 @@ static bool skx_sad_decode(struct decoded_addr *res) ...@@ -631,7 +631,7 @@ static bool skx_sad_decode(struct decoded_addr *res)
} }
prev_limit = limit + 1; prev_limit = limit + 1;
} }
edac_dbg(0, "No SAD entry for %llx\n", addr); edac_dbg(0, "No SAD entry for 0x%llx\n", addr);
return false; return false;
sad_found: sad_found:
...@@ -709,7 +709,7 @@ static bool skx_sad_decode(struct decoded_addr *res) ...@@ -709,7 +709,7 @@ static bool skx_sad_decode(struct decoded_addr *res)
res->imc = GET_BITFIELD(d->mcroute, lchan * 3, lchan * 3 + 2); res->imc = GET_BITFIELD(d->mcroute, lchan * 3, lchan * 3 + 2);
res->channel = GET_BITFIELD(d->mcroute, lchan * 2 + 18, lchan * 2 + 19); res->channel = GET_BITFIELD(d->mcroute, lchan * 2 + 18, lchan * 2 + 19);
edac_dbg(2, "%llx: socket=%d imc=%d channel=%d\n", edac_dbg(2, "0x%llx: socket=%d imc=%d channel=%d\n",
res->addr, res->socket, res->imc, res->channel); res->addr, res->socket, res->imc, res->channel);
return true; return true;
} }
...@@ -756,7 +756,7 @@ static bool skx_tad_decode(struct decoded_addr *res) ...@@ -756,7 +756,7 @@ static bool skx_tad_decode(struct decoded_addr *res)
if (SKX_TAD_BASE(base) <= res->addr && res->addr <= SKX_TAD_LIMIT(wayness)) if (SKX_TAD_BASE(base) <= res->addr && res->addr <= SKX_TAD_LIMIT(wayness))
goto tad_found; goto tad_found;
} }
edac_dbg(0, "No TAD entry for %llx\n", res->addr); edac_dbg(0, "No TAD entry for 0x%llx\n", res->addr);
return false; return false;
tad_found: tad_found:
...@@ -784,7 +784,7 @@ static bool skx_tad_decode(struct decoded_addr *res) ...@@ -784,7 +784,7 @@ static bool skx_tad_decode(struct decoded_addr *res)
res->chan_addr = channel_addr; res->chan_addr = channel_addr;
edac_dbg(2, "%llx: chan_addr=%llx sktways=%d chanways=%d\n", edac_dbg(2, "0x%llx: chan_addr=0x%llx sktways=%d chanways=%d\n",
res->addr, res->chan_addr, res->sktways, res->chanways); res->addr, res->chan_addr, res->sktways, res->chanways);
return true; return true;
} }
...@@ -826,7 +826,7 @@ static bool skx_rir_decode(struct decoded_addr *res) ...@@ -826,7 +826,7 @@ static bool skx_rir_decode(struct decoded_addr *res)
} }
prev_limit = limit; prev_limit = limit;
} }
edac_dbg(0, "No RIR entry for %llx\n", res->addr); edac_dbg(0, "No RIR entry for 0x%llx\n", res->addr);
return false; return false;
rir_found: rir_found:
...@@ -845,7 +845,7 @@ static bool skx_rir_decode(struct decoded_addr *res) ...@@ -845,7 +845,7 @@ static bool skx_rir_decode(struct decoded_addr *res)
res->dimm = chan_rank / 4; res->dimm = chan_rank / 4;
res->rank = chan_rank % 4; res->rank = chan_rank % 4;
edac_dbg(2, "%llx: dimm=%d rank=%d chan_rank=%d rank_addr=%llx\n", edac_dbg(2, "0x%llx: dimm=%d rank=%d chan_rank=%d rank_addr=0x%llx\n",
res->addr, res->dimm, res->rank, res->addr, res->dimm, res->rank,
res->channel_rank, res->rank_address); res->channel_rank, res->rank_address);
return true; return true;
...@@ -908,7 +908,7 @@ static bool skx_mad_decode(struct decoded_addr *r) ...@@ -908,7 +908,7 @@ static bool skx_mad_decode(struct decoded_addr *r)
} }
r->row &= (1u << dimm->rowbits) - 1; r->row &= (1u << dimm->rowbits) - 1;
edac_dbg(2, "%llx: row=%x col=%x bank_addr=%d bank_group=%d\n", edac_dbg(2, "0x%llx: row=0x%x col=0x%x bank_addr=%d bank_group=%d\n",
r->addr, r->row, r->column, r->bank_address, r->addr, r->row, r->column, r->bank_address,
r->bank_group); r->bank_group);
return true; return true;
...@@ -1069,13 +1069,13 @@ static void skx_mce_output_error(struct mem_ctl_info *mci, ...@@ -1069,13 +1069,13 @@ static void skx_mce_output_error(struct mem_ctl_info *mci,
} }
} }
if (adxl_component_count) { if (adxl_component_count) {
snprintf(skx_msg, MSG_SIZE, "%s%s err_code:%04x:%04x %s", snprintf(skx_msg, MSG_SIZE, "%s%s err_code:0x%04x:0x%04x %s",
overflow ? " OVERFLOW" : "", overflow ? " OVERFLOW" : "",
(uncorrected_error && recoverable) ? " recoverable" : "", (uncorrected_error && recoverable) ? " recoverable" : "",
mscod, errcode, adxl_msg); mscod, errcode, adxl_msg);
} else { } else {
snprintf(skx_msg, MSG_SIZE, snprintf(skx_msg, MSG_SIZE,
"%s%s err_code:%04x:%04x socket:%d imc:%d rank:%d bg:%d ba:%d row:%x col:%x", "%s%s err_code:0x%04x:0x%04x socket:%d imc:%d rank:%d bg:%d ba:%d row:0x%x col:0x%x",
overflow ? " OVERFLOW" : "", overflow ? " OVERFLOW" : "",
(uncorrected_error && recoverable) ? " recoverable" : "", (uncorrected_error && recoverable) ? " recoverable" : "",
mscod, errcode, mscod, errcode,
...@@ -1151,15 +1151,15 @@ static int skx_mce_check_error(struct notifier_block *nb, unsigned long val, ...@@ -1151,15 +1151,15 @@ static int skx_mce_check_error(struct notifier_block *nb, unsigned long val,
skx_mc_printk(mci, KERN_DEBUG, "HANDLING MCE MEMORY ERROR\n"); skx_mc_printk(mci, KERN_DEBUG, "HANDLING MCE MEMORY ERROR\n");
skx_mc_printk(mci, KERN_DEBUG, "CPU %d: Machine Check %s: %Lx " skx_mc_printk(mci, KERN_DEBUG, "CPU %d: Machine Check %s: 0x%llx "
"Bank %d: %016Lx\n", mce->extcpu, type, "Bank %d: %016Lx\n", mce->extcpu, type,
mce->mcgstatus, mce->bank, mce->status); mce->mcgstatus, mce->bank, mce->status);
skx_mc_printk(mci, KERN_DEBUG, "TSC %llx ", mce->tsc); skx_mc_printk(mci, KERN_DEBUG, "TSC 0x%llx ", mce->tsc);
skx_mc_printk(mci, KERN_DEBUG, "ADDR %llx ", mce->addr); skx_mc_printk(mci, KERN_DEBUG, "ADDR 0x%llx ", mce->addr);
skx_mc_printk(mci, KERN_DEBUG, "MISC %llx ", mce->misc); skx_mc_printk(mci, KERN_DEBUG, "MISC 0x%llx ", mce->misc);
skx_mc_printk(mci, KERN_DEBUG, "PROCESSOR %u:%x TIME %llu SOCKET " skx_mc_printk(mci, KERN_DEBUG, "PROCESSOR %u:0x%x TIME %llu SOCKET "
"%u APIC %x\n", mce->cpuvendor, mce->cpuid, "%u APIC 0x%x\n", mce->cpuvendor, mce->cpuid,
mce->time, mce->socketid, mce->apicid); mce->time, mce->socketid, mce->apicid);
skx_mce_output_error(mci, mce, &res); skx_mce_output_error(mci, mce, &res);
...@@ -1291,7 +1291,7 @@ static int __init skx_init(void) ...@@ -1291,7 +1291,7 @@ static int __init skx_init(void)
if (rc < 0) if (rc < 0)
goto fail; goto fail;
if (rc != m->per_socket * skx_num_sockets) { if (rc != m->per_socket * skx_num_sockets) {
edac_dbg(2, "Expected %d, got %d of %x\n", edac_dbg(2, "Expected %d, got %d of 0x%x\n",
m->per_socket * skx_num_sockets, rc, m->did); m->per_socket * skx_num_sockets, rc, m->did);
rc = -ENODEV; rc = -ENODEV;
goto fail; goto fail;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment