* [v2,6/7] EDAC: add edac_check_mc_owner() to check MC owner
@ 2017-08-03 21:57 Toshi Kani
0 siblings, 0 replies; 7+ messages in thread
From: Toshi Kani @ 2017-08-03 21:57 UTC (permalink / raw)
To: rjw, bp
Cc: mchehab, tony.luck, lenb, linux-acpi, linux-edac, linux-kernel,
Toshi Kani
Only a single edac driver can be enabled for EDAC MC. When ghes_edac
is enabled, a regular edac driver for the CPU type / platform still
attempts to register itself and fails in edac_mc_add_mc().
Add edac_check_mc_owner() so that regular edac drivers can check
the owner of EDAC MC at the beginning of initialization.
Also change the owner check to string comparison from address check.
Signed-off-by: Toshi Kani <toshi.kani@hpe.com>
Cc: Borislav Petkov <bp@alien8.de>
Cc: Mauro Carvalho Chehab <mchehab@kernel.org>
Cc: Tony Luck <tony.luck@intel.com>
---
drivers/edac/edac_mc.c | 15 ++++++++++++++-
drivers/edac/edac_mc.h | 12 ++++++++++++
2 files changed, 26 insertions(+), 1 deletion(-)
--
To unsubscribe from this list: send the line "unsubscribe linux-edac" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/drivers/edac/edac_mc.c b/drivers/edac/edac_mc.c
index 4800721..52d8d5e 100644
--- a/drivers/edac/edac_mc.c
+++ b/drivers/edac/edac_mc.c
@@ -701,6 +701,19 @@ struct mem_ctl_info *edac_mc_find(int idx)
}
EXPORT_SYMBOL(edac_mc_find);
+/*
+ * Returns:
+ * 1 when EDAC MC is free or owned by the module name
+ * 0 when EDAC MC is owned by other module
+ */
+int edac_check_mc_owner(const char *mod_name)
+{
+ if (edac_mc_owner && strcmp(edac_mc_owner, mod_name))
+ return 0;
+
+ return 1;
+}
+EXPORT_SYMBOL(edac_check_mc_owner);
/* FIXME - should a warning be printed if no error detection? correction? */
int edac_mc_add_mc_with_groups(struct mem_ctl_info *mci,
@@ -742,7 +755,7 @@ int edac_mc_add_mc_with_groups(struct mem_ctl_info *mci,
#endif
mutex_lock(&mem_ctls_mutex);
- if (edac_mc_owner && edac_mc_owner != mci->mod_name) {
+ if (!edac_check_mc_owner(mci->mod_name)) {
ret = -EPERM;
goto fail0;
}
diff --git a/drivers/edac/edac_mc.h b/drivers/edac/edac_mc.h
index 5357800..0e95eba 100644
--- a/drivers/edac/edac_mc.h
+++ b/drivers/edac/edac_mc.h
@@ -128,6 +128,18 @@ struct mem_ctl_info *edac_mc_alloc(unsigned mc_num,
unsigned sz_pvt);
/**
+ *
+ * edac_check_mc_owner - Check the owner of EDAC MC
+ *
+ * @mod_name: pointer to the module name
+ *
+ * Returns:
+ * 1 when EDAC MC is free or owned by the module name
+ * 0 when EDAC MC is owned by other module
+ */
+extern int edac_check_mc_owner(const char *mod_name);
+
+/*
* edac_mc_add_mc_with_groups() - Insert the @mci structure into the mci
* global list and create sysfs entries associated with @mci structure.
*
^ permalink raw reply related [flat|nested] 7+ messages in thread
* [v2,6/7] EDAC: add edac_check_mc_owner() to check MC owner
@ 2017-08-04 8:30 Borislav Petkov
0 siblings, 0 replies; 7+ messages in thread
From: Borislav Petkov @ 2017-08-04 8:30 UTC (permalink / raw)
To: Toshi Kani
Cc: rjw, mchehab, tony.luck, lenb, linux-acpi, linux-edac,
linux-kernel
On Thu, Aug 03, 2017 at 03:57:52PM -0600, Toshi Kani wrote:
> Only a single edac driver can be enabled for EDAC MC. When ghes_edac
> is enabled, a regular edac driver for the CPU type / platform still
> attempts to register itself and fails in edac_mc_add_mc().
>
> Add edac_check_mc_owner() so that regular edac drivers can check
> the owner of EDAC MC at the beginning of initialization.
>
> Also change the owner check to string comparison from address check.
>
> Signed-off-by: Toshi Kani <toshi.kani@hpe.com>
> Cc: Borislav Petkov <bp@alien8.de>
> Cc: Mauro Carvalho Chehab <mchehab@kernel.org>
> Cc: Tony Luck <tony.luck@intel.com>
> ---
> drivers/edac/edac_mc.c | 15 ++++++++++++++-
> drivers/edac/edac_mc.h | 12 ++++++++++++
> 2 files changed, 26 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/edac/edac_mc.c b/drivers/edac/edac_mc.c
> index 4800721..52d8d5e 100644
> --- a/drivers/edac/edac_mc.c
> +++ b/drivers/edac/edac_mc.c
> @@ -701,6 +701,19 @@ struct mem_ctl_info *edac_mc_find(int idx)
> }
> EXPORT_SYMBOL(edac_mc_find);
>
> +/*
> + * Returns:
> + * 1 when EDAC MC is free or owned by the module name
1 for free OR owned?!? WTF?
> + * 0 when EDAC MC is owned by other module
> + */
> +int edac_check_mc_owner(const char *mod_name)
> +{
> + if (edac_mc_owner && strcmp(edac_mc_owner, mod_name))
strncmp() of course, with sensible maximal string length.
> + return 0;
> +
> + return 1;
> +}
> +EXPORT_SYMBOL(edac_check_mc_owner);
EXPORT_SYMBOL_GPL
>
> /* FIXME - should a warning be printed if no error detection? correction? */
> int edac_mc_add_mc_with_groups(struct mem_ctl_info *mci,
> @@ -742,7 +755,7 @@ int edac_mc_add_mc_with_groups(struct mem_ctl_info *mci,
> #endif
> mutex_lock(&mem_ctls_mutex);
>
> - if (edac_mc_owner && edac_mc_owner != mci->mod_name) {
> + if (!edac_check_mc_owner(mci->mod_name)) {
> ret = -EPERM;
> goto fail0;
> }
> diff --git a/drivers/edac/edac_mc.h b/drivers/edac/edac_mc.h
> index 5357800..0e95eba 100644
> --- a/drivers/edac/edac_mc.h
> +++ b/drivers/edac/edac_mc.h
> @@ -128,6 +128,18 @@ struct mem_ctl_info *edac_mc_alloc(unsigned mc_num,
> unsigned sz_pvt);
>
> /**
> + *
> + * edac_check_mc_owner - Check the owner of EDAC MC
> + *
> + * @mod_name: pointer to the module name
> + *
> + * Returns:
> + * 1 when EDAC MC is free or owned by the module name
> + * 0 when EDAC MC is owned by other module
> + */
Documenting that function only once is enough.
> +extern int edac_check_mc_owner(const char *mod_name);
> +
> +/*
> * edac_mc_add_mc_with_groups() - Insert the @mci structure into the mci
> * global list and create sysfs entries associated with @mci structure.
> *
^ permalink raw reply [flat|nested] 7+ messages in thread
* [v2,6/7] EDAC: add edac_check_mc_owner() to check MC owner
@ 2017-08-04 13:06 kbuild test robot
0 siblings, 0 replies; 7+ messages in thread
From: kbuild test robot @ 2017-08-04 13:06 UTC (permalink / raw)
To: Toshi Kani
Cc: kbuild-all, rjw, bp, mchehab, tony.luck, lenb, linux-acpi,
linux-edac, linux-kernel
Hi Toshi,
[auto build test WARNING on pm/linux-next]
[also build test WARNING on v4.13-rc3]
[cannot apply to edac/linux_next bp/for-next next-20170804]
[if your patch is applied to the wrong git tree, please drop us a note to help improve the system]
url: https://github.com/0day-ci/linux/commits/Toshi-Kani/enable-ghes_edac-on-selected-platforms/20170804-190846
base: https://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm.git linux-next
reproduce: make htmldocs
All warnings (new ones prefixed by >>):
WARNING: convert(1) not found, for SVG to PDF conversion install ImageMagick (https://www.imagemagick.org)
include/linux/init.h:1: warning: no structured comments found
include/linux/mod_devicetable.h:687: warning: Excess struct/union/enum/typedef member 'ver_major' description in 'fsl_mc_device_id'
include/linux/mod_devicetable.h:687: warning: Excess struct/union/enum/typedef member 'ver_minor' description in 'fsl_mc_device_id'
include/linux/kthread.h:26: warning: Excess function parameter '...' description in 'kthread_create'
kernel/sys.c:1: warning: no structured comments found
include/linux/device.h:968: warning: No description found for parameter 'dma_ops'
drivers/dma-buf/seqno-fence.c:1: warning: no structured comments found
>> drivers/edac/edac_mc.h:131: warning: Cannot understand *
on line 131 - I thought it was a doc line
include/linux/iio/iio.h:603: warning: No description found for parameter 'trig_readonly'
include/linux/iio/trigger.h:151: warning: No description found for parameter 'indio_dev'
include/linux/iio/trigger.h:151: warning: No description found for parameter 'trig'
include/linux/device.h:969: warning: No description found for parameter 'dma_ops'
drivers/ata/libata-eh.c:1449: warning: No description found for parameter 'link'
drivers/ata/libata-eh.c:1449: warning: Excess function parameter 'ap' description in 'ata_eh_done'
drivers/ata/libata-eh.c:1590: warning: No description found for parameter 'qc'
drivers/ata/libata-eh.c:1590: warning: Excess function parameter 'dev' description in 'ata_eh_request_sense'
drivers/mtd/nand/nand_base.c:2751: warning: Excess function parameter 'cached' description in 'nand_write_page'
drivers/mtd/nand/nand_base.c:2751: warning: Excess function parameter 'cached' description in 'nand_write_page'
arch/s390/include/asm/cmb.h:1: warning: no structured comments found
drivers/scsi/scsi_lib.c:1116: warning: No description found for parameter 'rq'
drivers/scsi/constants.c:1: warning: no structured comments found
include/linux/usb/gadget.h:230: warning: No description found for parameter 'claimed'
include/linux/usb/gadget.h:230: warning: No description found for parameter 'enabled'
include/linux/usb/gadget.h:412: warning: No description found for parameter 'quirk_altset_not_supp'
include/linux/usb/gadget.h:412: warning: No description found for parameter 'quirk_stall_not_supp'
include/linux/usb/gadget.h:412: warning: No description found for parameter 'quirk_zlp_not_supp'
fs/inode.c:1666: warning: No description found for parameter 'rcu'
include/linux/jbd2.h:443: warning: No description found for parameter 'i_transaction'
include/linux/jbd2.h:443: warning: No description found for parameter 'i_next_transaction'
include/linux/jbd2.h:443: warning: No description found for parameter 'i_list'
include/linux/jbd2.h:443: warning: No description found for parameter 'i_vfs_inode'
include/linux/jbd2.h:443: warning: No description found for parameter 'i_flags'
include/linux/jbd2.h:497: warning: No description found for parameter 'h_rsv_handle'
include/linux/jbd2.h:497: warning: No description found for parameter 'h_reserved'
include/linux/jbd2.h:497: warning: No description found for parameter 'h_type'
include/linux/jbd2.h:497: warning: No description found for parameter 'h_line_no'
include/linux/jbd2.h:497: warning: No description found for parameter 'h_start_jiffies'
include/linux/jbd2.h:497: warning: No description found for parameter 'h_requested_credits'
include/linux/jbd2.h:497: warning: No description found for parameter 'saved_alloc_context'
include/linux/jbd2.h:1050: warning: No description found for parameter 'j_chkpt_bhs'
include/linux/jbd2.h:1050: warning: No description found for parameter 'j_devname'
include/linux/jbd2.h:1050: warning: No description found for parameter 'j_average_commit_time'
include/linux/jbd2.h:1050: warning: No description found for parameter 'j_min_batch_time'
include/linux/jbd2.h:1050: warning: No description found for parameter 'j_max_batch_time'
include/linux/jbd2.h:1050: warning: No description found for parameter 'j_commit_callback'
include/linux/jbd2.h:1050: warning: No description found for parameter 'j_failed_commit'
include/linux/jbd2.h:1050: warning: No description found for parameter 'j_chksum_driver'
include/linux/jbd2.h:1050: warning: No description found for parameter 'j_csum_seed'
fs/jbd2/transaction.c:511: warning: No description found for parameter 'type'
fs/jbd2/transaction.c:511: warning: No description found for parameter 'line_no'
fs/jbd2/transaction.c:641: warning: No description found for parameter 'gfp_mask'
include/drm/drm_drv.h:537: warning: No description found for parameter 'set_busid'
include/drm/drm_drv.h:537: warning: No description found for parameter 'debugfs_init'
include/drm/drm_drv.h:537: warning: No description found for parameter 'gem_open_object'
include/drm/drm_drv.h:537: warning: No description found for parameter 'gem_close_object'
include/drm/drm_drv.h:537: warning: No description found for parameter 'prime_handle_to_fd'
include/drm/drm_drv.h:537: warning: No description found for parameter 'prime_fd_to_handle'
include/drm/drm_drv.h:537: warning: No description found for parameter 'gem_prime_export'
include/drm/drm_drv.h:537: warning: No description found for parameter 'gem_prime_import'
include/drm/drm_drv.h:537: warning: No description found for parameter 'gem_prime_pin'
include/drm/drm_drv.h:537: warning: No description found for parameter 'gem_prime_unpin'
include/drm/drm_drv.h:537: warning: No description found for parameter 'gem_prime_res_obj'
include/drm/drm_drv.h:537: warning: No description found for parameter 'gem_prime_get_sg_table'
include/drm/drm_drv.h:537: warning: No description found for parameter 'gem_prime_import_sg_table'
include/drm/drm_drv.h:537: warning: No description found for parameter 'gem_prime_vmap'
include/drm/drm_drv.h:537: warning: No description found for parameter 'gem_prime_vunmap'
include/drm/drm_drv.h:537: warning: No description found for parameter 'gem_prime_mmap'
include/drm/drm_drv.h:537: warning: No description found for parameter 'gem_vm_ops'
include/drm/drm_drv.h:537: warning: No description found for parameter 'major'
include/drm/drm_drv.h:537: warning: No description found for parameter 'minor'
include/drm/drm_drv.h:537: warning: No description found for parameter 'patchlevel'
include/drm/drm_drv.h:537: warning: No description found for parameter 'name'
include/drm/drm_drv.h:537: warning: No description found for parameter 'desc'
include/drm/drm_drv.h:537: warning: No description found for parameter 'date'
include/drm/drm_drv.h:537: warning: No description found for parameter 'driver_features'
include/drm/drm_drv.h:537: warning: No description found for parameter 'ioctls'
include/drm/drm_drv.h:537: warning: No description found for parameter 'num_ioctls'
include/drm/drm_drv.h:537: warning: No description found for parameter 'fops'
include/drm/drm_color_mgmt.h:1: warning: no structured comments found
drivers/gpu/drm/drm_syncobj.c:341: warning: Excess function parameter 'dev' description in 'drm_syncobj_open'
drivers/gpu/drm/drm_syncobj.c:366: warning: Excess function parameter 'dev' description in 'drm_syncobj_release'
include/drm/drm_syncobj.h:1: warning: no structured comments found
drivers/gpu/drm/drm_syncobj.c:342: warning: Excess function parameter 'dev' description in 'drm_syncobj_open'
drivers/gpu/drm/drm_syncobj.c:367: warning: Excess function parameter 'dev' description in 'drm_syncobj_release'
drivers/gpu/host1x/bus.c:50: warning: Excess function parameter 'driver' description in 'host1x_subdev_add'
Documentation/doc-guide/sphinx.rst:121: ERROR: Unknown target name: "sphinx c domain".
kernel/sched/fair.c:7584: WARNING: Inline emphasis start-string without end-string.
kernel/time/timer.c:1200: ERROR: Unexpected indentation.
kernel/time/timer.c:1202: ERROR: Unexpected indentation.
kernel/time/timer.c:1203: WARNING: Block quote ends without a blank line; unexpected unindent.
include/linux/wait.h:108: WARNING: Block quote ends without a blank line; unexpected unindent.
include/linux/wait.h:111: ERROR: Unexpected indentation.
include/linux/wait.h:113: WARNING: Block quote ends without a blank line; unexpected unindent.
kernel/time/hrtimer.c:991: WARNING: Block quote ends without a blank line; unexpected unindent.
kernel/signal.c:323: WARNING: Inline literal start-string without end-string.
kernel/rcu/tree.c:3187: ERROR: Unexpected indentation.
kernel/rcu/tree.c:3214: ERROR: Unexpected indentation.
kernel/rcu/tree.c:3215: WARNING: Bullet list ends without a blank line; unexpected unindent.
include/linux/iio/iio.h:219: ERROR: Unexpected indentation.
include/linux/iio/iio.h:220: WARNING: Block quote ends without a blank line; unexpected unindent.
include/linux/iio/iio.h:226: WARNING: Definition list ends without a blank line; unexpected unindent.
drivers/iio/industrialio-core.c:633: ERROR: Unknown target name: "iio_val".
drivers/iio/industrialio-core.c:640: ERROR: Unknown target name: "iio_val".
drivers/ata/libata-core.c:5906: ERROR: Unknown target name: "hw".
drivers/message/fusion/mptbase.c:5051: WARNING: Definition list ends without a blank line; unexpected unindent.
drivers/tty/serial/serial_core.c:1897: WARNING: Definition list ends without a blank line; unexpected unindent.
drivers/pci/pci.c:3470: ERROR: Unexpected indentation.
vim +131 drivers/edac/edac_mc.h
97
98 /**
99 * edac_mc_alloc() - Allocate and partially fill a struct &mem_ctl_info.
100 *
101 * @mc_num: Memory controller number
102 * @n_layers: Number of MC hierarchy layers
103 * @layers: Describes each layer as seen by the Memory Controller
104 * @sz_pvt: size of private storage needed
105 *
106 *
107 * Everything is kmalloc'ed as one big chunk - more efficient.
108 * Only can be used if all structures have the same lifetime - otherwise
109 * you have to allocate and initialize your own structures.
110 *
111 * Use edac_mc_free() to free mc structures allocated by this function.
112 *
113 * .. note::
114 *
115 * drivers handle multi-rank memories in different ways: in some
116 * drivers, one multi-rank memory stick is mapped as one entry, while, in
117 * others, a single multi-rank memory stick would be mapped into several
118 * entries. Currently, this function will allocate multiple struct dimm_info
119 * on such scenarios, as grouping the multiple ranks require drivers change.
120 *
121 * Returns:
122 * On success, return a pointer to struct mem_ctl_info pointer;
123 * %NULL otherwise
124 */
125 struct mem_ctl_info *edac_mc_alloc(unsigned mc_num,
126 unsigned n_layers,
127 struct edac_mc_layer *layers,
128 unsigned sz_pvt);
129
130 /**
> 131 *
132 * edac_check_mc_owner - Check the owner of EDAC MC
133 *
134 * @mod_name: pointer to the module name
135 *
136 * Returns:
137 * 1 when EDAC MC is free or owned by the module name
138 * 0 when EDAC MC is owned by other module
139 */
140 extern int edac_check_mc_owner(const char *mod_name);
141
---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all Intel Corporation
^ permalink raw reply [flat|nested] 7+ messages in thread
* [v2,6/7] EDAC: add edac_check_mc_owner() to check MC owner
@ 2017-08-04 15:21 Toshi Kani
0 siblings, 0 replies; 7+ messages in thread
From: Toshi Kani @ 2017-08-04 15:21 UTC (permalink / raw)
To: lkp@intel.com
Cc: linux-kernel@vger.kernel.org, mchehab@kernel.org,
rjw@rjwysocki.net, kbuild-all@01.org, bp@alien8.de,
tony.luck@intel.com, lenb@kernel.org, linux-acpi@vger.kernel.org,
linux-edac@vger.kernel.org
On Fri, 2017-08-04 at 21:06 +0800, kbuild test robot wrote:
> Hi Toshi,
>
> [auto build test WARNING on pm/linux-next]
> [also build test WARNING on v4.13-rc3]
> [cannot apply to edac/linux_next bp/for-next next-20170804]
> [if your patch is applied to the wrong git tree, please drop us a
> note to help improve the system]
>
> url: https://github.com/0day-ci/linux/commits/Toshi-Kani/enable-gh
> es_edac-on-selected-platforms/20170804-190846
> base: https://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-
> pm.git linux-next
> reproduce: make htmldocs
>
> All warnings (new ones prefixed by >>):
:
> unsigned sz_pvt);
> 129
> 130 /**
> > 131 *
Removed this extra commented line.
Thanks!
-Toshi
> 132 * edac_check_mc_owner - Check the owner of EDAC MC
> 133 *
> 134 * @mod_name: pointer to the module name
> 135 *
> 136 * Returns:
> 137 * 1 when EDAC MC is free or owned by the module
> name
> 138 * 0 when EDAC MC is owned by other module
> 139 */
> 140 extern int edac_check_mc_owner(const char *mod_name);
> 141
^ permalink raw reply [flat|nested] 7+ messages in thread
* [v2,6/7] EDAC: add edac_check_mc_owner() to check MC owner
@ 2017-08-04 21:35 Toshi Kani
0 siblings, 0 replies; 7+ messages in thread
From: Toshi Kani @ 2017-08-04 21:35 UTC (permalink / raw)
To: bp@alien8.de
Cc: linux-edac@vger.kernel.org, lenb@kernel.org, mchehab@kernel.org,
tony.luck@intel.com, linux-kernel@vger.kernel.org,
rjw@rjwysocki.net, linux-acpi@vger.kernel.org
T24gRnJpLCAyMDE3LTA4LTA0IGF0IDEwOjMwICswMjAwLCBCb3Jpc2xhdiBQZXRrb3Ygd3JvdGU6
DQo+IE9uIFRodSwgQXVnIDAzLCAyMDE3IGF0IDAzOjU3OjUyUE0gLTA2MDAsIFRvc2hpIEthbmkg
d3JvdGU6DQo+ID4gT25seSBhIHNpbmdsZSBlZGFjIGRyaXZlciBjYW4gYmUgZW5hYmxlZCBmb3Ig
RURBQyBNQy7CoMKgV2hlbg0KPiA+IGdoZXNfZWRhYyBpcyBlbmFibGVkLCBhIHJlZ3VsYXIgZWRh
YyBkcml2ZXIgZm9yIHRoZSBDUFUgdHlwZSAvDQo+ID4gcGxhdGZvcm0gc3RpbGwgYXR0ZW1wdHMg
dG8gcmVnaXN0ZXIgaXRzZWxmIGFuZCBmYWlscyBpbg0KPiA+IGVkYWNfbWNfYWRkX21jKCkuDQo+
ID4gDQo+ID4gQWRkIGVkYWNfY2hlY2tfbWNfb3duZXIoKSBzbyB0aGF0IHJlZ3VsYXIgZWRhYyBk
cml2ZXJzIGNhbiBjaGVjaw0KPiA+IHRoZSBvd25lciBvZiBFREFDIE1DIGF0IHRoZSBiZWdpbm5p
bmcgb2YgaW5pdGlhbGl6YXRpb24uDQo+ID4gDQo+ID4gQWxzbyBjaGFuZ2UgdGhlIG93bmVyIGNo
ZWNrIHRvIHN0cmluZyBjb21wYXJpc29uIGZyb20gYWRkcmVzcw0KPiA+IGNoZWNrLg0KPiA+IA0K
PiA+IFNpZ25lZC1vZmYtYnk6IFRvc2hpIEthbmkgPHRvc2hpLmthbmlAaHBlLmNvbT4NCj4gPiBD
YzogQm9yaXNsYXYgUGV0a292IDxicEBhbGllbjguZGU+DQo+ID4gQ2M6IE1hdXJvIENhcnZhbGhv
IENoZWhhYiA8bWNoZWhhYkBrZXJuZWwub3JnPg0KPiA+IENjOiBUb255IEx1Y2sgPHRvbnkubHVj
a0BpbnRlbC5jb20+DQo+ID4gLS0tDQo+ID4gwqBkcml2ZXJzL2VkYWMvZWRhY19tYy5jIHzCoMKg
wqAxNSArKysrKysrKysrKysrKy0NCj4gPiDCoGRyaXZlcnMvZWRhYy9lZGFjX21jLmggfMKgwqDC
oDEyICsrKysrKysrKysrKw0KPiA+IMKgMiBmaWxlcyBjaGFuZ2VkLCAyNiBpbnNlcnRpb25zKCsp
LCAxIGRlbGV0aW9uKC0pDQo+ID4gDQo+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZWRhYy9lZGFj
X21jLmMgYi9kcml2ZXJzL2VkYWMvZWRhY19tYy5jDQo+ID4gaW5kZXggNDgwMDcyMS4uNTJkOGQ1
ZSAxMDA2NDQNCj4gPiAtLS0gYS9kcml2ZXJzL2VkYWMvZWRhY19tYy5jDQo+ID4gKysrIGIvZHJp
dmVycy9lZGFjL2VkYWNfbWMuYw0KPiA+IEBAIC03MDEsNiArNzAxLDE5IEBAIHN0cnVjdCBtZW1f
Y3RsX2luZm8gKmVkYWNfbWNfZmluZChpbnQgaWR4KQ0KPiA+IMKgfQ0KPiA+IMKgRVhQT1JUX1NZ
TUJPTChlZGFjX21jX2ZpbmQpOw0KPiA+IMKgDQo+ID4gKy8qDQo+ID4gKyAqIFJldHVybnM6DQo+
ID4gKyAqCTEgd2hlbiBFREFDIE1DIGlzIGZyZWUgb3Igb3duZWQgYnkgdGhlIG1vZHVsZSBuYW1l
DQo+IA0KPiAxIGZvciBmcmVlIE9SIG93bmVkPyE/IFdURj8NCg0KMSBtZWFucyB0aGUgY2FsbGVy
J3MgaW5pdCBmdW5jdGlvbiBjYW4gY29udGludWUgaXRzIGluaXRpYWxpemF0aW9uIC0tDQpzdWNo
IGNvbmRpdGlvbnMgYXJlIGZyZWUgb3Igb3duZWQgYnkgaXRzZWxmLg0KDQo+ID4gKyAqCTAgd2hl
biBFREFDIE1DIGlzIG93bmVkIGJ5IG90aGVyIG1vZHVsZQ0KPiA+ICsgKi8NCj4gPiAraW50IGVk
YWNfY2hlY2tfbWNfb3duZXIoY29uc3QgY2hhciAqbW9kX25hbWUpDQo+ID4gK3sNCj4gPiArCWlm
IChlZGFjX21jX293bmVyICYmIHN0cmNtcChlZGFjX21jX293bmVyLCBtb2RfbmFtZSkpDQo+IA0K
PiBzdHJuY21wKCkgb2YgY291cnNlLCB3aXRoIHNlbnNpYmxlIG1heGltYWwgc3RyaW5nIGxlbmd0
aC4NCg0Kc3RyY21wKCkgYnJlYWtzIHdoZW4gZWl0aGVyIGVkYWNfbWNfb3duZXIgb3IgbW9kX25h
bWUgc3RyaW5nIGVuZHMuIA0Kc3RybmNtcCgpIGFzc3VtZXMgbW9kX25hbWUgc3RyaW5nIGlzIHZh
bGlkIGZvciBhIGdpdmVuIGxlbmd0aC4gIEhlbmNlLA0KdGhlIGNhbGxlciBuZWVkcyB0byBzdXBw
bHkgdGhlIGxlbmd0aCB0byB0aGlzIGZ1bmN0aW9uIGJ5IGFkZGluZyBhIG5ldw0KYXJnICdsZW5n
dGgnLCB3aGljaCBkb2VzIG5vdCBtYWtlIGl0IGFueSBzYWZlci4gIEkgdGhpbmsgdXNpbmcNCnN0
cm5jbXAoKSB3b3VsZCByZXF1aXJlIGFsbCBlZGFjIGRyaXZlcnMgdG8gZGVjbGFyZSBhIHByZS1k
ZWZpbmVkDQpsZW5ndGggb2YgbW9kdWxlIG5hbWUuLi4NCg0KPiA+ICsJCXJldHVybiAwOw0KPiA+
ICsNCj4gPiArCXJldHVybiAxOw0KPiA+ICt9DQo+ID4gK0VYUE9SVF9TWU1CT0woZWRhY19jaGVj
a19tY19vd25lcik7DQo+IA0KPiBFWFBPUlRfU1lNQk9MX0dQTA0KDQpXaWxsIGRvLg0KDQo+ID4g
wqANCj4gPiDCoC8qIEZJWE1FIC0gc2hvdWxkIGEgd2FybmluZyBiZSBwcmludGVkIGlmIG5vIGVy
cm9yIGRldGVjdGlvbj8NCj4gPiBjb3JyZWN0aW9uPyAqLw0KPiA+IMKgaW50IGVkYWNfbWNfYWRk
X21jX3dpdGhfZ3JvdXBzKHN0cnVjdCBtZW1fY3RsX2luZm8gKm1jaSwNCj4gPiBAQCAtNzQyLDcg
Kzc1NSw3IEBAIGludCBlZGFjX21jX2FkZF9tY193aXRoX2dyb3VwcyhzdHJ1Y3QNCj4gPiBtZW1f
Y3RsX2luZm8gKm1jaSwNCj4gPiDCoCNlbmRpZg0KPiA+IMKgCW11dGV4X2xvY2soJm1lbV9jdGxz
X211dGV4KTsNCj4gPiDCoA0KPiA+IC0JaWYgKGVkYWNfbWNfb3duZXIgJiYgZWRhY19tY19vd25l
ciAhPSBtY2ktPm1vZF9uYW1lKSB7DQo+ID4gKwlpZiAoIWVkYWNfY2hlY2tfbWNfb3duZXIobWNp
LT5tb2RfbmFtZSkpIHsNCj4gPiDCoAkJcmV0ID0gLUVQRVJNOw0KPiA+IMKgCQlnb3RvIGZhaWww
Ow0KPiA+IMKgCX0NCj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9lZGFjL2VkYWNfbWMuaCBiL2Ry
aXZlcnMvZWRhYy9lZGFjX21jLmgNCj4gPiBpbmRleCA1MzU3ODAwLi4wZTk1ZWJhIDEwMDY0NA0K
PiA+IC0tLSBhL2RyaXZlcnMvZWRhYy9lZGFjX21jLmgNCj4gPiArKysgYi9kcml2ZXJzL2VkYWMv
ZWRhY19tYy5oDQo+ID4gQEAgLTEyOCw2ICsxMjgsMTggQEAgc3RydWN0IG1lbV9jdGxfaW5mbyAq
ZWRhY19tY19hbGxvYyh1bnNpZ25lZA0KPiA+IG1jX251bSwNCj4gPiDCoAkJCQnCoMKgwqB1bnNp
Z25lZCBzel9wdnQpOw0KPiA+IMKgDQo+ID4gwqAvKioNCj4gPiArICoNCj4gPiArICogZWRhY19j
aGVja19tY19vd25lciAtIENoZWNrIHRoZSBvd25lciBvZiBFREFDIE1DDQo+ID4gKyAqDQo+ID4g
KyAqIEBtb2RfbmFtZTogcG9pbnRlciB0byB0aGUgbW9kdWxlIG5hbWUNCj4gPiArICoNCj4gPiAr
ICogUmV0dXJuczoNCj4gPiArICoJMSB3aGVuIEVEQUMgTUMgaXMgZnJlZSBvciBvd25lZCBieSB0
aGUgbW9kdWxlIG5hbWUNCj4gPiArICoJMCB3aGVuIEVEQUMgTUMgaXMgb3duZWQgYnkgb3RoZXIg
bW9kdWxlDQo+ID4gKyAqLw0KPiANCj4gRG9jdW1lbnRpbmcgdGhhdCBmdW5jdGlvbiBvbmx5IG9u
Y2UgaXMgZW5vdWdoLg0KDQpJIHBlcnNvbmFsbHkgcHJlZmVyIHRvIGRvY3VtZW50IGluIC5jLCBi
dXQgc2luY2Ugb3RoZXIgZnVuY3MgZG9jdW1lbnRlZA0KaW4gZGFjX21jLmgsIEkgd2lsbCBrZWVw
IHRoZSBzYW1lIHN0eWxlLiAgV2lsbCByZW1vdmUgdGhlIGRvY3VtZW50IGluDQplZGFjX21jLmMu
IA0KDQo+ID4gK2V4dGVybiBpbnQgZWRhY19jaGVja19tY19vd25lcihjb25zdCBjaGFyICptb2Rf
bmFtZSk7DQo+ID4gKw0KPiA+ICsvKg0KPiA+IMKgICogZWRhY19tY19hZGRfbWNfd2l0aF9ncm91
cHMoKSAtIEluc2VydCB0aGUgQG1jaSBzdHJ1Y3R1cmUgaW50bw0KPiA+IHRoZSBtY2kNCj4gPiDC
oCAqCWdsb2JhbCBsaXN0IGFuZCBjcmVhdGUgc3lzZnMgZW50cmllcyBhc3NvY2lhdGVkIHdpdGgN
Cj4gPiBAbWNpIHN0cnVjdHVyZS4NCj4gPiDCoCAqDQoNClRoYW5rcywNCi1Ub3NoaQ0K
---
To unsubscribe from this list: send the line "unsubscribe linux-edac" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply [flat|nested] 7+ messages in thread
* [v2,6/7] EDAC: add edac_check_mc_owner() to check MC owner
@ 2017-08-05 5:44 Borislav Petkov
0 siblings, 0 replies; 7+ messages in thread
From: Borislav Petkov @ 2017-08-05 5:44 UTC (permalink / raw)
To: Kani, Toshimitsu
Cc: linux-edac@vger.kernel.org, lenb@kernel.org, mchehab@kernel.org,
tony.luck@intel.com, linux-kernel@vger.kernel.org,
rjw@rjwysocki.net, linux-acpi@vger.kernel.org
On Fri, Aug 04, 2017 at 09:35:05PM +0000, Kani, Toshimitsu wrote:
> 1 means the caller's init function can continue its initialization --
> such conditions are free or owned by itself.
Make that:
edac_get_owner(void)
to return the owner string or NULL if there's no owner.
The caller can then do the string checking and do strncmp() to limit the
string length being checked.
^ permalink raw reply [flat|nested] 7+ messages in thread
* [v2,6/7] EDAC: add edac_check_mc_owner() to check MC owner
@ 2017-08-07 14:55 Toshi Kani
0 siblings, 0 replies; 7+ messages in thread
From: Toshi Kani @ 2017-08-07 14:55 UTC (permalink / raw)
To: bp@alien8.de
Cc: linux-acpi@vger.kernel.org, lenb@kernel.org, mchehab@kernel.org,
tony.luck@intel.com, linux-kernel@vger.kernel.org,
linux-edac@vger.kernel.org, rjw@rjwysocki.net
T24gU2F0LCAyMDE3LTA4LTA1IGF0IDA3OjQ0ICswMjAwLCBCb3Jpc2xhdiBQZXRrb3Ygd3JvdGU6
DQo+IE9uIEZyaSwgQXVnIDA0LCAyMDE3IGF0IDA5OjM1OjA1UE0gKzAwMDAsIEthbmksIFRvc2hp
bWl0c3Ugd3JvdGU6DQo+ID4gMSBtZWFucyB0aGUgY2FsbGVyJ3MgaW5pdCBmdW5jdGlvbiBjYW4g
Y29udGludWUgaXRzIGluaXRpYWxpemF0aW9uDQo+ID4gLS0NCj4gPiBzdWNoIGNvbmRpdGlvbnMg
YXJlIGZyZWUgb3Igb3duZWQgYnkgaXRzZWxmLg0KPiANCj4gTWFrZSB0aGF0Og0KPiANCj4gCWVk
YWNfZ2V0X293bmVyKHZvaWQpDQo+IA0KPiB0byByZXR1cm4gdGhlIG93bmVyIHN0cmluZyBvciBO
VUxMIGlmIHRoZXJlJ3Mgbm8gb3duZXIuDQo+IA0KPiBUaGUgY2FsbGVyIGNhbiB0aGVuIGRvIHRo
ZSBzdHJpbmcgY2hlY2tpbmcgYW5kIGRvIHN0cm5jbXAoKSB0byBsaW1pdA0KPiB0aGUgc3RyaW5n
IGxlbmd0aCBiZWluZyBjaGVja2VkLg0KDQpHb29kIGlkZWEhICBXaWxsIGRvLg0KDQpUaGFua3Ms
DQotVG9zaGkNCg0K
---
To unsubscribe from this list: send the line "unsubscribe linux-edac" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2017-08-07 14:55 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-08-07 14:55 [v2,6/7] EDAC: add edac_check_mc_owner() to check MC owner Toshi Kani
-- strict thread matches above, loose matches on Subject: below --
2017-08-05 5:44 Borislav Petkov
2017-08-04 21:35 Toshi Kani
2017-08-04 15:21 Toshi Kani
2017-08-04 13:06 kbuild test robot
2017-08-04 8:30 Borislav Petkov
2017-08-03 21:57 Toshi Kani
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).