@@ -346,6 +346,7 @@ int klp_apply_section_relocs(struct module *pmod, Elf_Shdr *sechdrs,
346346 * /sys/kernel/livepatch/<patch>/enabled
347347 * /sys/kernel/livepatch/<patch>/transition
348348 * /sys/kernel/livepatch/<patch>/force
349+ * /sys/kernel/livepatch/<patch>/replace
349350 * /sys/kernel/livepatch/<patch>/<object>
350351 * /sys/kernel/livepatch/<patch>/<object>/patched
351352 * /sys/kernel/livepatch/<patch>/<object>/<function,sympos>
@@ -401,7 +402,7 @@ static ssize_t enabled_show(struct kobject *kobj,
401402 struct klp_patch * patch ;
402403
403404 patch = container_of (kobj , struct klp_patch , kobj );
404- return snprintf (buf , PAGE_SIZE - 1 , "%d\n" , patch -> enabled );
405+ return sysfs_emit (buf , "%d\n" , patch -> enabled );
405406}
406407
407408static ssize_t transition_show (struct kobject * kobj ,
@@ -410,8 +411,7 @@ static ssize_t transition_show(struct kobject *kobj,
410411 struct klp_patch * patch ;
411412
412413 patch = container_of (kobj , struct klp_patch , kobj );
413- return snprintf (buf , PAGE_SIZE - 1 , "%d\n" ,
414- patch == klp_transition_patch );
414+ return sysfs_emit (buf , "%d\n" , patch == klp_transition_patch );
415415}
416416
417417static ssize_t force_store (struct kobject * kobj , struct kobj_attribute * attr ,
@@ -443,13 +443,24 @@ static ssize_t force_store(struct kobject *kobj, struct kobj_attribute *attr,
443443 return count ;
444444}
445445
446+ static ssize_t replace_show (struct kobject * kobj ,
447+ struct kobj_attribute * attr , char * buf )
448+ {
449+ struct klp_patch * patch ;
450+
451+ patch = container_of (kobj , struct klp_patch , kobj );
452+ return sysfs_emit (buf , "%d\n" , patch -> replace );
453+ }
454+
446455static struct kobj_attribute enabled_kobj_attr = __ATTR_RW (enabled );
447456static struct kobj_attribute transition_kobj_attr = __ATTR_RO (transition );
448457static struct kobj_attribute force_kobj_attr = __ATTR_WO (force );
458+ static struct kobj_attribute replace_kobj_attr = __ATTR_RO (replace );
449459static struct attribute * klp_patch_attrs [] = {
450460 & enabled_kobj_attr .attr ,
451461 & transition_kobj_attr .attr ,
452462 & force_kobj_attr .attr ,
463+ & replace_kobj_attr .attr ,
453464 NULL
454465};
455466ATTRIBUTE_GROUPS (klp_patch );
0 commit comments