Consulta Foesco
by Grupo Foesco
Buenos días
Desde FOESCO estamos realizando la presente consulta a todas las empresas españolas.
Querriamos saber si precisáis realizar formación bonificable para vuestros empleados este año?
Podemos mandaros la información correspondiente a la actual convocatoria, contactar con vosotros por teléfono para informaros o bien podéis indicarnos en que mes del año queréis realizar la formación.
Todos los cursos impartidos son 100% Bonificables con cargo al Crédito de Formación 2022.
Quedamos a la espera de vuestra respuesta.
Un cordial saludo.
Departamento de Formación Bonificable
FOESCO Formación Estatal Continua.
Empresa inscrita en el Registro de empresas de Formación.
www.foesco.com
Tel: 910 323 794
(Horario de 9h a 15h y de 17h a 20h de Lunes a Viernes)
FOESCO ofrece formación a empresas y trabajadores en activo a través de cursos bonificados por la Fundación Estatal para la Formación en el Empleo (antiguo FORCEM) que gestiona las acciones formativas de FORMACIÓN CONTINUA para trabajadores y se rige por la ley 30/2015 de 9 de Septiembre.
Antes de imprimir este e-mail piense bien si es necesario hacerlo. La información transmitida en este mensaje está dirigida solamente a las personas o entidades que figuran en el encabezamiento y contiene información confidencial, por lo que, si usted lo recibiera por error, por favor destrúyalo sin copiarlo, usarlo ni distribuirlo, comunicándolo inmediatamente al emisor del mensaje. De conformidad con lo dispuesto en el Reglamento Europeo del 2016/679, del 27 de Abril de 2016, FOESCO le informa que los datos por usted suministrados serán tratados con las medidas de seguridad conformes a la normativa vigente que se requiere. Dichos datos serán empleados con fines de gestión. Para el ejercicio de sus derechos de transparencia, información, acceso, rectificación, supresión o derecho al olvido, limitación del tratamiento , portabilidad de datos y oposición de sus datos de carácter personal deberá dirigirse a la dirección del Responsable del tratamiento a C/ LAGUNA DEL MARQUESADO Nº10, 28021, MADRID, "PULSANDO AQUI" <mailto:bajas@foesco.com?Subject=BAJA%20CORREOS> y "ENVIAR".
7 months
Re: [RFC PATCH v6 09/12] livepatch/selftests: test multiple sections
by kernel test robot
Hi Joe,
[FYI, it's a private test report for your RFC patch.]
[auto build test WARNING on shuah-kselftest/next]
[also build test WARNING on linux/master masahiroy-kbuild/for-next linus/master v5.17-rc4]
[cannot apply to next-20220216]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch]
url: https://github.com/0day-ci/linux/commits/Joe-Lawrence/livepatch-klp-conve...
base: https://git.kernel.org/pub/scm/linux/kernel/git/shuah/linux-kselftest.git next
config: x86_64-allyesconfig (https://download.01.org/0day-ci/archive/20220217/202202170852.PMAObvOm-lk...)
compiler: gcc-9 (Debian 9.3.0-22) 9.3.0
reproduce (this is a W=1 build):
# https://github.com/0day-ci/linux/commit/0050faf33dc7bb450c8c62ac3dd69ee8d...
git remote add linux-review https://github.com/0day-ci/linux
git fetch --no-tags linux-review Joe-Lawrence/livepatch-klp-convert-tool/20220217-004100
git checkout 0050faf33dc7bb450c8c62ac3dd69ee8dc7d0f9b
# save the config file to linux build tree
mkdir build_dir
make W=1 O=build_dir ARCH=x86_64 SHELL=/bin/bash lib/livepatch/
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
All warnings (new ones prefixed by >>):
>> lib/livepatch/test_klp_convert_sections.c:20:6: warning: no previous prototype for 'print_saved_command_line' [-Wmissing-prototypes]
20 | void print_saved_command_line(void)
| ^~~~~~~~~~~~~~~~~~~~~~~~
>> lib/livepatch/test_klp_convert_sections.c:26:6: warning: no previous prototype for 'print_saved_command_line2' [-Wmissing-prototypes]
26 | void print_saved_command_line2(void)
| ^~~~~~~~~~~~~~~~~~~~~~~~~
>> lib/livepatch/test_klp_convert_sections.c:33:6: warning: no previous prototype for 'print_saved_command_line3' [-Wmissing-prototypes]
33 | void print_saved_command_line3(void)
| ^~~~~~~~~~~~~~~~~~~~~~~~~
>> lib/livepatch/test_klp_convert_sections.c:47:6: warning: no previous prototype for 'print_via_function_pointers' [-Wmissing-prototypes]
47 | void print_via_function_pointers(void)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~
vim +/print_saved_command_line +20 lib/livepatch/test_klp_convert_sections.c
13
14 /*
15 * Scatter references to the same symbol (saved_command_line) across a
16 * few different ELF sections. At the same time, include multiple
17 * references within the same function.
18 */
19 __section(".text.print_saved_command_line")
> 20 void print_saved_command_line(void)
21 {
22 pr_info("saved_command_line (1): %s\n", saved_command_line);
23 }
24
25 __section(".text.print_saved_command_line2")
> 26 void print_saved_command_line2(void)
27 {
28 pr_info("saved_command_line (1): %s\n", saved_command_line);
29 pr_info("saved_command_line (2): %s\n", saved_command_line);
30 }
31
32 __section(".text.print_saved_command_line3")
> 33 void print_saved_command_line3(void)
34 {
35 pr_info("saved_command_line (1): %s\n", saved_command_line);
36 pr_info("saved_command_line (2): %s\n", saved_command_line);
37 pr_info("saved_command_line (3): %s\n", saved_command_line);
38 }
39
40 /*
41 * Create relocations in .rela.data that need conversion, sharing
42 * symbols with ordinary .text relas.
43 */
44 const char *(*p_test_klp_get_driver_name)(void) = test_klp_get_driver_name;
45 const char *(*p_get_homonym_string)(void) = get_homonym_string;
46
> 47 void print_via_function_pointers(void)
48 {
49 pr_info("test_klp_get_driver_name(): %s\n", test_klp_get_driver_name());
50 pr_info("p_test_klp_get_driver_name(): %s\n", p_test_klp_get_driver_name());
51 pr_info("get_homonym_string(): %s\n", get_homonym_string());
52 pr_info("p_get_homonym_string(): %s\n", p_get_homonym_string());
53 }
54
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
7 months
[ammarfaizi2-block:dhowells/linux-fs/netfs-maple 31/42] fs/netfs/buffered_write.c:749:6: warning: variable 'spare_region' is used uninitialized whenever 'if' condition is true
by kernel test robot
tree: https://github.com/ammarfaizi2/linux-block dhowells/linux-fs/netfs-maple
head: 5cb7f190822d09757b30cd9539e57eef72552d1f
commit: eefdd180445e96088f4a69f0e733643e9a794b1f [31/42] netfs: Allow buffered shared-writeable mmap through netfs_page_mkwrite()
config: hexagon-randconfig-r005-20220216 (https://download.01.org/0day-ci/archive/20220217/202202170739.jOmFwlAm-lk...)
compiler: clang version 15.0.0 (https://github.com/llvm/llvm-project 0e628a783b935c70c80815db6c061ec84f884af5)
reproduce (this is a W=1 build):
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# https://github.com/ammarfaizi2/linux-block/commit/eefdd180445e96088f4a69f...
git remote add ammarfaizi2-block https://github.com/ammarfaizi2/linux-block
git fetch --no-tags ammarfaizi2-block dhowells/linux-fs/netfs-maple
git checkout eefdd180445e96088f4a69f0e733643e9a794b1f
# save the config file to linux build tree
mkdir build_dir
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 O=build_dir ARCH=hexagon SHELL=/bin/bash fs/netfs/
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
All warnings (new ones prefixed by >>):
fs/netfs/buffered_write.c:28:26: warning: comparison of distinct pointer types ('typeof ((1UL << 14) - offset) *' (aka 'unsigned long *') and 'typeof (size) *' (aka 'unsigned int *')) [-Wcompare-distinct-pointer-types]
unsigned int psize = min(PAGE_SIZE - offset, size);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/minmax.h:45:19: note: expanded from macro 'min'
#define min(x, y) __careful_cmp(x, y, <)
^~~~~~~~~~~~~~~~~~~~~~
include/linux/minmax.h:36:24: note: expanded from macro '__careful_cmp'
__builtin_choose_expr(__safe_cmp(x, y), \
^~~~~~~~~~~~~~~~
include/linux/minmax.h:26:4: note: expanded from macro '__safe_cmp'
(__typecheck(x, y) && __no_side_effects(x, y))
^~~~~~~~~~~~~~~~~
include/linux/minmax.h:20:28: note: expanded from macro '__typecheck'
(!!(sizeof((typeof(x) *)1 == (typeof(y) *)1)))
~~~~~~~~~~~~~~ ^ ~~~~~~~~~~~~~~
fs/netfs/buffered_write.c:95:18: warning: comparison of distinct pointer types ('typeof (target->from) *' (aka 'unsigned long long *') and 'typeof (folio_pos(folio) + offset) *' (aka 'long long *')) [-Wcompare-distinct-pointer-types]
target->from = min(target->from, folio_pos(folio) + offset);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/minmax.h:45:19: note: expanded from macro 'min'
#define min(x, y) __careful_cmp(x, y, <)
^~~~~~~~~~~~~~~~~~~~~~
include/linux/minmax.h:36:24: note: expanded from macro '__careful_cmp'
__builtin_choose_expr(__safe_cmp(x, y), \
^~~~~~~~~~~~~~~~
include/linux/minmax.h:26:4: note: expanded from macro '__safe_cmp'
(__typecheck(x, y) && __no_side_effects(x, y))
^~~~~~~~~~~~~~~~~
include/linux/minmax.h:20:28: note: expanded from macro '__typecheck'
(!!(sizeof((typeof(x) *)1 == (typeof(y) *)1)))
~~~~~~~~~~~~~~ ^ ~~~~~~~~~~~~~~
fs/netfs/buffered_write.c:96:18: warning: comparison of distinct pointer types ('typeof (target->to) *' (aka 'unsigned long long *') and 'typeof (folio_pos(folio) + offset + len) *' (aka 'long long *')) [-Wcompare-distinct-pointer-types]
target->to = max(target->to, folio_pos(folio) + offset + len);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/minmax.h:52:19: note: expanded from macro 'max'
#define max(x, y) __careful_cmp(x, y, >)
^~~~~~~~~~~~~~~~~~~~~~
include/linux/minmax.h:36:24: note: expanded from macro '__careful_cmp'
__builtin_choose_expr(__safe_cmp(x, y), \
^~~~~~~~~~~~~~~~
include/linux/minmax.h:26:4: note: expanded from macro '__safe_cmp'
(__typecheck(x, y) && __no_side_effects(x, y))
^~~~~~~~~~~~~~~~~
include/linux/minmax.h:20:28: note: expanded from macro '__typecheck'
(!!(sizeof((typeof(x) *)1 == (typeof(y) *)1)))
~~~~~~~~~~~~~~ ^ ~~~~~~~~~~~~~~
>> fs/netfs/buffered_write.c:749:6: warning: variable 'spare_region' is used uninitialized whenever 'if' condition is true [-Wsometimes-uninitialized]
if (mas_expected_entries(&mas, 2) < 0) {
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fs/netfs/buffered_write.c:785:30: note: uninitialized use occurs here
netfs_put_dirty_region(ctx, spare_region, netfs_region_trace_put_discard);
^~~~~~~~~~~~
fs/netfs/buffered_write.c:749:2: note: remove the 'if' if its condition is always false
if (mas_expected_entries(&mas, 2) < 0) {
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fs/netfs/buffered_write.c:746:6: warning: variable 'spare_region' is used uninitialized whenever 'if' condition is true [-Wsometimes-uninitialized]
if (folio_lock_killable(folio) < 0)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fs/netfs/buffered_write.c:785:30: note: uninitialized use occurs here
netfs_put_dirty_region(ctx, spare_region, netfs_region_trace_put_discard);
^~~~~~~~~~~~
fs/netfs/buffered_write.c:746:2: note: remove the 'if' if its condition is always false
if (folio_lock_killable(folio) < 0)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fs/netfs/buffered_write.c:743:6: warning: variable 'spare_region' is used uninitialized whenever 'if' condition is true [-Wsometimes-uninitialized]
if (folio_wait_writeback_killable(folio))
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fs/netfs/buffered_write.c:785:30: note: uninitialized use occurs here
netfs_put_dirty_region(ctx, spare_region, netfs_region_trace_put_discard);
^~~~~~~~~~~~
fs/netfs/buffered_write.c:743:2: note: remove the 'if' if its condition is always false
if (folio_wait_writeback_killable(folio))
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fs/netfs/buffered_write.c:726:41: note: initialize the variable 'spare_region' to silence this warning
struct netfs_dirty_region *spare_region;
^
= NULL
6 warnings generated.
vim +749 fs/netfs/buffered_write.c
719
720 /*
721 * Notification that a previously read-only page is about to become writable.
722 * Note that the caller indicates a single page of a multipage folio.
723 */
724 vm_fault_t netfs_page_mkwrite(struct vm_fault *vmf)
725 {
726 struct netfs_dirty_region *spare_region;
727 struct folio *folio = page_folio(vmf->page);
728 struct file *file = vmf->vma->vm_file;
729 struct inode *inode = file_inode(file);
730 struct netfs_i_context *ctx = netfs_i_context(inode);
731 vm_fault_t ret = VM_FAULT_RETRY;
732 int err;
733
734 MA_STATE(mas, &ctx->dirty_regions, vmf->page->index, PAGE_SIZE);
735
736 _enter("%lx", folio->index);
737
738 if (ctx->ops->validate_for_write(inode, file) < 0)
739 return VM_FAULT_SIGBUS;
740
741 sb_start_pagefault(inode->i_sb);
742
743 if (folio_wait_writeback_killable(folio))
744 goto out;
745
746 if (folio_lock_killable(folio) < 0)
747 goto out;
748
> 749 if (mas_expected_entries(&mas, 2) < 0) {
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
7 months
[ammarfaizi2-block:dhowells/linux-fs/netfs-maple 29/42] fs/netfs/buffered_write.c:28:26: warning: comparison of distinct pointer types ('typeof ((1UL << 14) - offset) *' (aka 'unsigned long *') and 'typeof (size) *' (aka 'unsigned int *'))
by kernel test robot
tree: https://github.com/ammarfaizi2/linux-block dhowells/linux-fs/netfs-maple
head: 5cb7f190822d09757b30cd9539e57eef72552d1f
commit: 261cd621bd0477d43de460dea6c7bf7fa81824be [29/42] netfs: Implement buffered writes through netfs_file_write_iter()
config: hexagon-randconfig-r005-20220216 (https://download.01.org/0day-ci/archive/20220217/202202170638.sSxMPQ6J-lk...)
compiler: clang version 15.0.0 (https://github.com/llvm/llvm-project 0e628a783b935c70c80815db6c061ec84f884af5)
reproduce (this is a W=1 build):
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# https://github.com/ammarfaizi2/linux-block/commit/261cd621bd0477d43de460d...
git remote add ammarfaizi2-block https://github.com/ammarfaizi2/linux-block
git fetch --no-tags ammarfaizi2-block dhowells/linux-fs/netfs-maple
git checkout 261cd621bd0477d43de460dea6c7bf7fa81824be
# save the config file to linux build tree
mkdir build_dir
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 O=build_dir ARCH=hexagon SHELL=/bin/bash fs/netfs/
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
All warnings (new ones prefixed by >>):
>> fs/netfs/buffered_write.c:28:26: warning: comparison of distinct pointer types ('typeof ((1UL << 14) - offset) *' (aka 'unsigned long *') and 'typeof (size) *' (aka 'unsigned int *')) [-Wcompare-distinct-pointer-types]
unsigned int psize = min(PAGE_SIZE - offset, size);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/minmax.h:45:19: note: expanded from macro 'min'
#define min(x, y) __careful_cmp(x, y, <)
^~~~~~~~~~~~~~~~~~~~~~
include/linux/minmax.h:36:24: note: expanded from macro '__careful_cmp'
__builtin_choose_expr(__safe_cmp(x, y), \
^~~~~~~~~~~~~~~~
include/linux/minmax.h:26:4: note: expanded from macro '__safe_cmp'
(__typecheck(x, y) && __no_side_effects(x, y))
^~~~~~~~~~~~~~~~~
include/linux/minmax.h:20:28: note: expanded from macro '__typecheck'
(!!(sizeof((typeof(x) *)1 == (typeof(y) *)1)))
~~~~~~~~~~~~~~ ^ ~~~~~~~~~~~~~~
>> fs/netfs/buffered_write.c:95:18: warning: comparison of distinct pointer types ('typeof (target->from) *' (aka 'unsigned long long *') and 'typeof (folio_pos(folio) + offset) *' (aka 'long long *')) [-Wcompare-distinct-pointer-types]
target->from = min(target->from, folio_pos(folio) + offset);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/minmax.h:45:19: note: expanded from macro 'min'
#define min(x, y) __careful_cmp(x, y, <)
^~~~~~~~~~~~~~~~~~~~~~
include/linux/minmax.h:36:24: note: expanded from macro '__careful_cmp'
__builtin_choose_expr(__safe_cmp(x, y), \
^~~~~~~~~~~~~~~~
include/linux/minmax.h:26:4: note: expanded from macro '__safe_cmp'
(__typecheck(x, y) && __no_side_effects(x, y))
^~~~~~~~~~~~~~~~~
include/linux/minmax.h:20:28: note: expanded from macro '__typecheck'
(!!(sizeof((typeof(x) *)1 == (typeof(y) *)1)))
~~~~~~~~~~~~~~ ^ ~~~~~~~~~~~~~~
>> fs/netfs/buffered_write.c:96:18: warning: comparison of distinct pointer types ('typeof (target->to) *' (aka 'unsigned long long *') and 'typeof (folio_pos(folio) + offset + len) *' (aka 'long long *')) [-Wcompare-distinct-pointer-types]
target->to = max(target->to, folio_pos(folio) + offset + len);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/minmax.h:52:19: note: expanded from macro 'max'
#define max(x, y) __careful_cmp(x, y, >)
^~~~~~~~~~~~~~~~~~~~~~
include/linux/minmax.h:36:24: note: expanded from macro '__careful_cmp'
__builtin_choose_expr(__safe_cmp(x, y), \
^~~~~~~~~~~~~~~~
include/linux/minmax.h:26:4: note: expanded from macro '__safe_cmp'
(__typecheck(x, y) && __no_side_effects(x, y))
^~~~~~~~~~~~~~~~~
include/linux/minmax.h:20:28: note: expanded from macro '__typecheck'
(!!(sizeof((typeof(x) *)1 == (typeof(y) *)1)))
~~~~~~~~~~~~~~ ^ ~~~~~~~~~~~~~~
3 warnings generated.
vim +28 fs/netfs/buffered_write.c
18
19 static size_t copy_folio_from_iter_atomic(struct folio *folio,
20 unsigned int offset, size_t size,
21 struct iov_iter *i)
22 {
23 size_t copied = 0, n;
24
25 do {
26 unsigned int index = offset / PAGE_SIZE;
27 unsigned int poffset = offset % PAGE_SIZE;
> 28 unsigned int psize = min(PAGE_SIZE - offset, size);
29
30 n = copy_page_from_iter_atomic(folio_file_page(folio, index),
31 poffset, psize, i);
32 copied += n;
33 if (n < psize)
34 break;
35 size -= n;
36 } while (size);
37 return copied;
38 }
39
40 /*
41 * Initialise a new dirty folio group. We have to round it out to any crypto
42 * alignment.
43 */
44 static void netfs_init_dirty_region(struct netfs_i_context *ctx,
45 struct netfs_dirty_region *region,
46 struct file *file,
47 loff_t start, size_t len)
48 {
49 region->from = start;
50 region->to = start + len;
51 region->debug_id = atomic_inc_return(&netfs_region_debug_ids);
52
53 if (file && ctx->ops->init_dirty_region)
54 ctx->ops->init_dirty_region(region, file);
55
56 trace_netfs_ref_region(region->debug_id, refcount_read(®ion->ref),
57 netfs_region_trace_new);
58 }
59
60 /*
61 * Return true if two dirty regions are compatible such that b can be merged
62 * onto the end of a.
63 */
64 bool netfs_are_regions_mergeable(struct netfs_i_context *ctx,
65 struct netfs_dirty_region *a,
66 struct netfs_dirty_region *b)
67 {
68 if (!netfs_mas_is_valid(a) || !netfs_mas_is_valid(b))
69 return a == b;
70 if (b->waiting_on_wb != a->waiting_on_wb)
71 return false;
72 if (b->from != a->to &&
73 !test_bit(NETFS_ICTX_NEW_CONTENT, &ctx->flags) &&
74 b->from < ctx->zero_point)
75 return false;
76 if (ctx->ops->are_regions_mergeable)
77 return ctx->ops->are_regions_mergeable(ctx, a, b);
78 return true;
79 }
80
81 /*
82 * Subsume the modifications into an existing target region. Returns true if
83 * we need to update the dirty_regions tree.
84 */
85 static bool netfs_subsume_into_existing(struct netfs_i_context *ctx,
86 struct folio *folio,
87 struct ma_state *mas,
88 struct netfs_dirty_region **_target,
89 struct netfs_dirty_region **_to_put,
90 pgoff_t *_first, pgoff_t *_last,
91 size_t offset, size_t len)
92 {
93 struct netfs_dirty_region *target = *_target, *prev;
94
> 95 target->from = min(target->from, folio_pos(folio) + offset);
> 96 target->to = max(target->to, folio_pos(folio) + offset + len);
97 trace_netfs_dirty(ctx, target, NULL, *_first, *_last,
98 netfs_dirty_trace_modified);
99
100 /* We might have bridged to the previous region also. */
101 prev = mas_prev(mas, *_first - 1);
102 if (!netfs_mas_is_valid(prev))
103 return false;
104
105 if (prev->to != target->from ||
106 prev->waiting_on_wb != target->waiting_on_wb)
107 return false;
108
109 *_first = mas->index;
110 prev->to = target->to;
111 *_to_put = target;
112 trace_netfs_dirty(ctx, prev, NULL, *_first, *_last,
113 netfs_dirty_trace_merged_prev);
114 return true;
115 }
116
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
7 months
Re: [PATCH] lkdtm/usercopy: Expand size of "out of frame" object
by kernel test robot
Hi Kees,
I love your patch! Yet something to improve:
[auto build test ERROR on char-misc/char-misc-testing]
[also build test ERROR on soc/for-next kees/for-next/pstore v5.17-rc4 next-20220216]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch]
url: https://github.com/0day-ci/linux/commits/Kees-Cook/lkdtm-usercopy-Expand-...
base: https://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc.git e6cb9c167eeb8f90ab924666c573e69e85e700a0
config: hexagon-randconfig-r045-20220216 (https://download.01.org/0day-ci/archive/20220217/202202170613.eIFMv4np-lk...)
compiler: clang version 15.0.0 (https://github.com/llvm/llvm-project 0e628a783b935c70c80815db6c061ec84f884af5)
reproduce (this is a W=1 build):
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# https://github.com/0day-ci/linux/commit/aa676e88f535bd79a3e22a1cc70c9b6cc...
git remote add linux-review https://github.com/0day-ci/linux
git fetch --no-tags linux-review Kees-Cook/lkdtm-usercopy-Expand-size-of-out-of-frame-object/20220217-041936
git checkout aa676e88f535bd79a3e22a1cc70c9b6cc51dbbfe
# save the config file to linux build tree
mkdir build_dir
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 O=build_dir ARCH=hexagon SHELL=/bin/bash drivers/misc/lkdtm/
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
All errors (new ones prefixed by >>):
>> drivers/misc/lkdtm/usercopy.c:74:39: error: use of undeclared identifier 'current_stack_pointer'
pr_info("stack : %px\n", (void *)current_stack_pointer);
^
1 error generated.
vim +/current_stack_pointer +74 drivers/misc/lkdtm/usercopy.c
53
54 static noinline void do_usercopy_stack(bool to_user, bool bad_frame)
55 {
56 unsigned long user_addr;
57 unsigned char good_stack[32];
58 unsigned char *bad_stack;
59 int i;
60
61 /* Exercise stack to avoid everything living in registers. */
62 for (i = 0; i < sizeof(good_stack); i++)
63 good_stack[i] = test_text[i % sizeof(test_text)];
64
65 /* This is a pointer to outside our current stack frame. */
66 if (bad_frame) {
67 bad_stack = do_usercopy_stack_callee((uintptr_t)&bad_stack);
68 } else {
69 /* Put start address just inside stack. */
70 bad_stack = task_stack_page(current) + THREAD_SIZE;
71 bad_stack -= sizeof(unsigned long);
72 }
73
> 74 pr_info("stack : %px\n", (void *)current_stack_pointer);
75 pr_info("good_stack: %px-%px\n", good_stack, good_stack + sizeof(good_stack));
76 pr_info("bad_stack : %px-%px\n", bad_stack, bad_stack + sizeof(good_stack));
77
78 user_addr = vm_mmap(NULL, 0, PAGE_SIZE,
79 PROT_READ | PROT_WRITE | PROT_EXEC,
80 MAP_ANONYMOUS | MAP_PRIVATE, 0);
81 if (user_addr >= TASK_SIZE) {
82 pr_warn("Failed to allocate user memory\n");
83 return;
84 }
85
86 if (to_user) {
87 pr_info("attempting good copy_to_user of local stack\n");
88 if (copy_to_user((void __user *)user_addr, good_stack,
89 unconst + sizeof(good_stack))) {
90 pr_warn("copy_to_user failed unexpectedly?!\n");
91 goto free_user;
92 }
93
94 pr_info("attempting bad copy_to_user of distant stack\n");
95 if (copy_to_user((void __user *)user_addr, bad_stack,
96 unconst + sizeof(good_stack))) {
97 pr_warn("copy_to_user failed, but lacked Oops\n");
98 goto free_user;
99 }
100 } else {
101 /*
102 * There isn't a safe way to not be protected by usercopy
103 * if we're going to write to another thread's stack.
104 */
105 if (!bad_frame)
106 goto free_user;
107
108 pr_info("attempting good copy_from_user of local stack\n");
109 if (copy_from_user(good_stack, (void __user *)user_addr,
110 unconst + sizeof(good_stack))) {
111 pr_warn("copy_from_user failed unexpectedly?!\n");
112 goto free_user;
113 }
114
115 pr_info("attempting bad copy_from_user of distant stack\n");
116 if (copy_from_user(bad_stack, (void __user *)user_addr,
117 unconst + sizeof(good_stack))) {
118 pr_warn("copy_from_user failed, but lacked Oops\n");
119 goto free_user;
120 }
121 }
122
123 free_user:
124 vm_munmap(user_addr, PAGE_SIZE);
125 }
126
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
7 months
【Amazon】アカウントの利用状況をご確認ください。
by Amazon
Amazon お客様
平素は、Amazonをご利用いただき、誠にありがとうございます。
誰かがあなたのAmazonアカウントにログインして商品を購入しようとしていることに注意してください。
クレジットカードの盗難を防ぐため、ログイン後すぐに情報を更新してください。
あなたが24時間以内に確認できない場合は申し訳ありません。あなたの財産の安全のために、このアカウントの使用を制限します。あらかじめご理解ください。
本件についてご迷惑をおかけしましたことをお詫び申し上げます。
何卒、よろしくお願い申し上げます。
お客様の Amazon アカウント
Amazonチームはあなたのアカウントの状態が異常であることを発見しました。アカウント所有権の証明をご自身で行う場合は、Amazon 管理コンソールにログインし、所定の手順でお手続きください。
状態:
異常は更新待ちです
アカウントを確認する
Amazonのまたのご利用をお待ちしております。
© 1996-2022, Amazon. Inc. or its affiliates
7 months
Re: [RFC PATCH v6 08/12] livepatch/selftests: add klp-convert
by kernel test robot
Hi Joe,
[FYI, it's a private test report for your RFC patch.]
[auto build test WARNING on shuah-kselftest/next]
[also build test WARNING on linux/master masahiroy-kbuild/for-next linus/master v5.17-rc4]
[cannot apply to next-20220216]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch]
url: https://github.com/0day-ci/linux/commits/Joe-Lawrence/livepatch-klp-conve...
base: https://git.kernel.org/pub/scm/linux/kernel/git/shuah/linux-kselftest.git next
config: x86_64-allyesconfig (https://download.01.org/0day-ci/archive/20220217/202202170629.9vC9IsP0-lk...)
compiler: gcc-9 (Debian 9.3.0-22) 9.3.0
reproduce (this is a W=1 build):
# https://github.com/0day-ci/linux/commit/ea5129d2a3f776835ce3721f966f72d39...
git remote add linux-review https://github.com/0day-ci/linux
git fetch --no-tags linux-review Joe-Lawrence/livepatch-klp-convert-tool/20220217-004100
git checkout ea5129d2a3f776835ce3721f966f72d39426188c
# save the config file to linux build tree
mkdir build_dir
make W=1 O=build_dir ARCH=x86_64 SHELL=/bin/bash lib/livepatch/
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
All warnings (new ones prefixed by >>):
>> lib/livepatch/test_klp_convert1.c:11:6: warning: no previous prototype for 'print_saved_command_line' [-Wmissing-prototypes]
11 | void print_saved_command_line(void)
| ^~~~~~~~~~~~~~~~~~~~~~~~
>> lib/livepatch/test_klp_convert1.c:16:6: warning: no previous prototype for 'print_driver_name' [-Wmissing-prototypes]
16 | void print_driver_name(void)
| ^~~~~~~~~~~~~~~~~
>> lib/livepatch/test_klp_convert1.c:22:6: warning: no previous prototype for 'print_homonym_string' [-Wmissing-prototypes]
22 | void print_homonym_string(void)
| ^~~~~~~~~~~~~~~~~~~~
--
>> lib/livepatch/test_klp_convert2.c:11:6: warning: no previous prototype for 'print_saved_command_line' [-Wmissing-prototypes]
11 | void print_saved_command_line(void)
| ^~~~~~~~~~~~~~~~~~~~~~~~
>> lib/livepatch/test_klp_convert2.c:16:6: warning: no previous prototype for 'print_driver_name' [-Wmissing-prototypes]
16 | void print_driver_name(void)
| ^~~~~~~~~~~~~~~~~
>> lib/livepatch/test_klp_convert2.c:22:6: warning: no previous prototype for 'print_homonym_string' [-Wmissing-prototypes]
22 | void print_homonym_string(void)
| ^~~~~~~~~~~~~~~~~~~~
vim +/print_saved_command_line +11 lib/livepatch/test_klp_convert1.c
10
> 11 void print_saved_command_line(void)
12 {
13 pr_info("saved_command_line, 0: %s\n", saved_command_line);
14 }
15
> 16 void print_driver_name(void)
17 {
18 pr_info("driver_name, 0: %s\n", driver_name);
19 pr_info("test_klp_get_driver_name(), 0: %s\n", test_klp_get_driver_name());
20 }
21
> 22 void print_homonym_string(void)
23 {
24 pr_info("homonym_string, 1: %s\n", homonym_string);
25 pr_info("get_homonym_string(), 1: %s\n", get_homonym_string());
26 }
27
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
7 months
Re: [PATCH] lkdtm/usercopy: Expand size of "out of frame" object
by kernel test robot
Hi Kees,
I love your patch! Yet something to improve:
[auto build test ERROR on char-misc/char-misc-testing]
[also build test ERROR on soc/for-next kees/for-next/pstore v5.17-rc4 next-20220216]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch]
url: https://github.com/0day-ci/linux/commits/Kees-Cook/lkdtm-usercopy-Expand-...
base: https://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc.git e6cb9c167eeb8f90ab924666c573e69e85e700a0
config: riscv-allmodconfig (https://download.01.org/0day-ci/archive/20220217/202202170604.hO1q7HZU-lk...)
compiler: riscv64-linux-gcc (GCC) 11.2.0
reproduce (this is a W=1 build):
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# https://github.com/0day-ci/linux/commit/aa676e88f535bd79a3e22a1cc70c9b6cc...
git remote add linux-review https://github.com/0day-ci/linux
git fetch --no-tags linux-review Kees-Cook/lkdtm-usercopy-Expand-size-of-out-of-frame-object/20220217-041936
git checkout aa676e88f535bd79a3e22a1cc70c9b6cc51dbbfe
# save the config file to linux build tree
mkdir build_dir
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-11.2.0 make.cross O=build_dir ARCH=riscv SHELL=/bin/bash drivers/misc/lkdtm/
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
All errors (new ones prefixed by >>):
In file included from include/linux/kernel.h:29,
from drivers/misc/lkdtm/lkdtm.h:7,
from drivers/misc/lkdtm/usercopy.c:6:
drivers/misc/lkdtm/usercopy.c: In function 'do_usercopy_stack':
>> drivers/misc/lkdtm/usercopy.c:74:46: error: 'current_stack_pointer' undeclared (first use in this function); did you mean 'kernel_stack_pointer'?
74 | pr_info("stack : %px\n", (void *)current_stack_pointer);
| ^~~~~~~~~~~~~~~~~~~~~
include/linux/printk.h:418:33: note: in definition of macro 'printk_index_wrap'
418 | _p_func(_fmt, ##__VA_ARGS__); \
| ^~~~~~~~~~~
include/linux/printk.h:519:9: note: in expansion of macro 'printk'
519 | printk(KERN_INFO pr_fmt(fmt), ##__VA_ARGS__)
| ^~~~~~
drivers/misc/lkdtm/usercopy.c:74:9: note: in expansion of macro 'pr_info'
74 | pr_info("stack : %px\n", (void *)current_stack_pointer);
| ^~~~~~~
drivers/misc/lkdtm/usercopy.c:74:46: note: each undeclared identifier is reported only once for each function it appears in
74 | pr_info("stack : %px\n", (void *)current_stack_pointer);
| ^~~~~~~~~~~~~~~~~~~~~
include/linux/printk.h:418:33: note: in definition of macro 'printk_index_wrap'
418 | _p_func(_fmt, ##__VA_ARGS__); \
| ^~~~~~~~~~~
include/linux/printk.h:519:9: note: in expansion of macro 'printk'
519 | printk(KERN_INFO pr_fmt(fmt), ##__VA_ARGS__)
| ^~~~~~
drivers/misc/lkdtm/usercopy.c:74:9: note: in expansion of macro 'pr_info'
74 | pr_info("stack : %px\n", (void *)current_stack_pointer);
| ^~~~~~~
vim +74 drivers/misc/lkdtm/usercopy.c
> 6 #include "lkdtm.h"
7 #include <linux/slab.h>
8 #include <linux/vmalloc.h>
9 #include <linux/sched/task_stack.h>
10 #include <linux/mman.h>
11 #include <linux/uaccess.h>
12 #include <asm/cacheflush.h>
13
14 /*
15 * Many of the tests here end up using const sizes, but those would
16 * normally be ignored by hardened usercopy, so force the compiler
17 * into choosing the non-const path to make sure we trigger the
18 * hardened usercopy checks by added "unconst" to all the const copies,
19 * and making sure "cache_size" isn't optimized into a const.
20 */
21 static volatile size_t unconst;
22 static volatile size_t cache_size = 1024;
23 static struct kmem_cache *whitelist_cache;
24
25 static const unsigned char test_text[] = "This is a test.\n";
26
27 /*
28 * Instead of adding -Wno-return-local-addr, just pass the stack address
29 * through a function to obfuscate it from the compiler.
30 */
31 static noinline unsigned char *trick_compiler(unsigned char *stack)
32 {
33 return stack + unconst;
34 }
35
36 static noinline unsigned char *do_usercopy_stack_callee(int value)
37 {
38 unsigned char buf[128];
39 int i;
40
41 /* Exercise stack to avoid everything living in registers. */
42 for (i = 0; i < sizeof(buf); i++) {
43 buf[i] = value & 0xff;
44 }
45
46 /*
47 * Put the target buffer in the middle of stack allocation
48 * so that we don't step on future stack users regardless
49 * of stack growth direction.
50 */
51 return trick_compiler(&buf[(128/2)-32]);
52 }
53
54 static noinline void do_usercopy_stack(bool to_user, bool bad_frame)
55 {
56 unsigned long user_addr;
57 unsigned char good_stack[32];
58 unsigned char *bad_stack;
59 int i;
60
61 /* Exercise stack to avoid everything living in registers. */
62 for (i = 0; i < sizeof(good_stack); i++)
63 good_stack[i] = test_text[i % sizeof(test_text)];
64
65 /* This is a pointer to outside our current stack frame. */
66 if (bad_frame) {
67 bad_stack = do_usercopy_stack_callee((uintptr_t)&bad_stack);
68 } else {
69 /* Put start address just inside stack. */
70 bad_stack = task_stack_page(current) + THREAD_SIZE;
71 bad_stack -= sizeof(unsigned long);
72 }
73
> 74 pr_info("stack : %px\n", (void *)current_stack_pointer);
75 pr_info("good_stack: %px-%px\n", good_stack, good_stack + sizeof(good_stack));
76 pr_info("bad_stack : %px-%px\n", bad_stack, bad_stack + sizeof(good_stack));
77
78 user_addr = vm_mmap(NULL, 0, PAGE_SIZE,
79 PROT_READ | PROT_WRITE | PROT_EXEC,
80 MAP_ANONYMOUS | MAP_PRIVATE, 0);
81 if (user_addr >= TASK_SIZE) {
82 pr_warn("Failed to allocate user memory\n");
83 return;
84 }
85
86 if (to_user) {
87 pr_info("attempting good copy_to_user of local stack\n");
88 if (copy_to_user((void __user *)user_addr, good_stack,
89 unconst + sizeof(good_stack))) {
90 pr_warn("copy_to_user failed unexpectedly?!\n");
91 goto free_user;
92 }
93
94 pr_info("attempting bad copy_to_user of distant stack\n");
95 if (copy_to_user((void __user *)user_addr, bad_stack,
96 unconst + sizeof(good_stack))) {
97 pr_warn("copy_to_user failed, but lacked Oops\n");
98 goto free_user;
99 }
100 } else {
101 /*
102 * There isn't a safe way to not be protected by usercopy
103 * if we're going to write to another thread's stack.
104 */
105 if (!bad_frame)
106 goto free_user;
107
108 pr_info("attempting good copy_from_user of local stack\n");
109 if (copy_from_user(good_stack, (void __user *)user_addr,
110 unconst + sizeof(good_stack))) {
111 pr_warn("copy_from_user failed unexpectedly?!\n");
112 goto free_user;
113 }
114
115 pr_info("attempting bad copy_from_user of distant stack\n");
116 if (copy_from_user(bad_stack, (void __user *)user_addr,
117 unconst + sizeof(good_stack))) {
118 pr_warn("copy_from_user failed, but lacked Oops\n");
119 goto free_user;
120 }
121 }
122
123 free_user:
124 vm_munmap(user_addr, PAGE_SIZE);
125 }
126
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
7 months