From c4a298735eb23d6a2b0b55b35a32accf0e79c790 Mon Sep 17 00:00:00 2001 From: Greg Kroah-Hartman Date: Tue, 27 Jun 2023 13:28:39 +0200 Subject: updates --- 0001-vsmp-driver.patch | 2 +- pmu_attr_visible.patch | 63 ++++++++++++++++++++++++++++++++++++++++++++++++++ series | 1 + 3 files changed, 65 insertions(+), 1 deletion(-) create mode 100644 pmu_attr_visible.patch diff --git a/0001-vsmp-driver.patch b/0001-vsmp-driver.patch index d105defeea751..9194070356ce9 100644 --- a/0001-vsmp-driver.patch +++ b/0001-vsmp-driver.patch @@ -28,7 +28,7 @@ first cut to cleanup +Description: Shows the full version of the vSMP hypervisor --- a/MAINTAINERS +++ b/MAINTAINERS -@@ -22629,6 +22629,12 @@ F: lib/test_printf.c +@@ -22634,6 +22634,12 @@ F: lib/test_printf.c F: lib/test_scanf.c F: lib/vsprintf.c diff --git a/pmu_attr_visible.patch b/pmu_attr_visible.patch new file mode 100644 index 0000000000000..f5af16a1b22c5 --- /dev/null +++ b/pmu_attr_visible.patch @@ -0,0 +1,63 @@ +--- + kernel/events/core.c | 40 ++++++++++++++++++++++++++++------------ + 1 file changed, 28 insertions(+), 12 deletions(-) + +--- a/kernel/events/core.c ++++ b/kernel/events/core.c +@@ -11351,9 +11351,32 @@ static DEVICE_ATTR_RW(perf_event_mux_int + static struct attribute *pmu_dev_attrs[] = { + &dev_attr_type.attr, + &dev_attr_perf_event_mux_interval_ms.attr, ++ &dev_attr_nr_addr_filters.attr, ++ NULL, ++}; ++ ++static umode_t pmu_dev_is_visible(struct kobject *kobj, struct attribute *a, int n) ++{ ++ struct device *dev = kobj_to_dev(kobj); ++ struct pmu *pmu = dev_get_drvdata(dev); ++ ++ if (!pmu->nr_addr_filters) ++ return 0; ++ ++ return a->mode; ++ ++ return 0; ++} ++ ++static struct attribute_group pmu_dev_attr_group = { ++ .is_visible = pmu_dev_is_visible, ++ .attrs = pmu_dev_attrs, ++}; ++ ++const static struct attribute_group *pmu_dev_groups[] = { ++ &pmu_dev_attr_group, + NULL, + }; +-ATTRIBUTE_GROUPS(pmu_dev); + + static int pmu_bus_running; + static struct bus_type pmu_bus = { +@@ -11389,18 +11412,11 @@ static int pmu_dev_alloc(struct pmu *pmu + if (ret) + goto free_dev; + +- /* For PMUs with address filters, throw in an extra attribute: */ +- if (pmu->nr_addr_filters) +- ret = device_create_file(pmu->dev, &dev_attr_nr_addr_filters); +- +- if (ret) +- goto del_dev; +- +- if (pmu->attr_update) ++ if (pmu->attr_update) { + ret = sysfs_update_groups(&pmu->dev->kobj, pmu->attr_update); +- +- if (ret) +- goto del_dev; ++ if (ret) ++ goto del_dev; ++ } + + out: + return ret; diff --git a/series b/series index 3ba830b63206a..81b604e97fa7e 100644 --- a/series +++ b/series @@ -1,4 +1,5 @@ # +pmu_attr_visible.patch documentation-embargoed-hardware-issues.rst-clean-out-empty-and-unused-entries.patch usb.patch 0001-vsmp-driver.patch -- cgit 1.2.3-korg