From: Christian Marangi <ansuelsmth@gmail.com>
To: Pavel Machek <pavel@ucw.cz>,
	Lee Jones <lee@kernel.org>,
	linux-leds@vger.kernel.org,
	linux-kernel@vger.kernel.org
Cc: Christian Marangi <ansuelsmth@gmail.com>
Subject: [PATCH 1/3] leds: leds-lp5569: Convert to sysfs_emit API
Date: Thu, 27 Jun 2024 00:15:11 +0200
Message-ID: <20240626221520.2846-1-ansuelsmth@gmail.com>
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1260293
Newsgroups: org.kernel.vger.linux-kernel,org.kernel.vger.linux-leds
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

Convert sprintf to the much safer sysfs_emit API to handle output for
sysfs.

Also better handle situation where on the same chip there may be LED
open and shorted at the same time.

Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
---
 drivers/leds/leds-lp5569.c | 14 +++++++-------
 1 file changed, 7 insertions(+), 7 deletions(-)

diff --git a/drivers/leds/leds-lp5569.c b/drivers/leds/leds-lp5569.c
index 7ccd8dd6026a..e5e7e61c8916 100644
--- a/drivers/leds/leds-lp5569.c
+++ b/drivers/leds/leds-lp5569.c
@@ -268,8 +268,8 @@ static ssize_t lp5569_led_open_test(struct lp55xx_led *led, char *buf)
 	led_tmp = led;
 	for (i = 0; i < pdata->num_channels; i++) {
 		if (leds_fault[led_tmp->chan_nr])
-			pos += sprintf(buf + pos, "LED %d OPEN FAIL\n",
-				       led_tmp->chan_nr);
+			pos += sysfs_emit_at(buf, pos, "LED %d OPEN FAIL\n",
+					     led_tmp->chan_nr);
 
 		led_tmp++;
 	}
@@ -366,8 +366,8 @@ static ssize_t lp5569_led_short_test(struct lp55xx_led *led, char *buf)
 	led_tmp = led;
 	for (i = 0; i < pdata->num_channels; i++) {
 		if (leds_fault[led_tmp->chan_nr])
-			pos += sprintf(buf + pos, "LED %d SHORTED FAIL\n",
-				       led_tmp->chan_nr);
+			pos += sysfs_emit_at(buf, pos, "LED %d SHORTED FAIL\n",
+					     led_tmp->chan_nr);
 
 		led_tmp++;
 	}
@@ -404,7 +404,7 @@ static ssize_t lp5569_selftest(struct device *dev,
 		goto fail;
 
 	/* Test LED Shorted */
-	pos = lp5569_led_short_test(led, buf);
+	pos += lp5569_led_short_test(led, buf);
 	if (pos < 0)
 		goto fail;
 
@@ -420,10 +420,10 @@ static ssize_t lp5569_selftest(struct device *dev,
 	}
 
 	if (pos == 0)
-		pos = sprintf(buf, "OK\n");
+		pos = sysfs_emit(buf, "OK\n");
 	goto release_lock;
 fail:
-	pos = sprintf(buf, "FAIL\n");
+	pos = sysfs_emit(buf, "FAIL\n");
 
 release_lock:
 	mutex_unlock(&chip->lock);
-- 
2.45.1

.

From: Carlos Bilbao <carlos.bilbao.osdev@gmail.com>
To: corbet@lwn.net
Cc: bilbao@vt.edu,
	jembid@ucm.es,
	linux-kernel@vger.kernel.org,
	linux-doc@vger.kernel.org,
	Carlos Bilbao <carlos.bilbao.osdev@gmail.com>
Subject: [PATCH] docs/sp_SP: Add translation of process/maintainer-kvm-x86.rst
Date: Wed, 26 Jun 2024 17:19:41 -0500
Message-ID: <20240626221942.2780668-1-carlos.bilbao.osdev@gmail.com>
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1260296
Newsgroups: org.kernel.vger.linux-kernel,org.kernel.vger.linux-doc
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

Translate Documentation/process/maintainer-kvm-x86.rst into Spanish.

Co-developed-by: Juan Embid <jembid@ucm.es>
Signed-off-by: Juan Embid <jembid@ucm.es>
Signed-off-by: Carlos Bilbao <carlos.bilbao.osdev@gmail.com>
---
 .../translations/sp_SP/process/index.rst      |   1 +
 .../sp_SP/process/maintainer-kvm-x86.rst      | 466 ++++++++++++++++++
 2 files changed, 467 insertions(+)
 create mode 100644 Documentation/translations/sp_SP/process/maintainer-kvm-x86.rst

diff --git a/Documentation/translations/sp_SP/process/index.rst b/Documentation/translations/sp_SP/process/index.rst
index 4892159310ff..adb2cc845928 100644
--- a/Documentation/translations/sp_SP/process/index.rst
+++ b/Documentation/translations/sp_SP/process/index.rst
@@ -29,3 +29,4 @@
    submit-checklist
    howto
    development-process
+   maintainer-kvm-x86
diff --git a/Documentation/translations/sp_SP/process/maintainer-kvm-x86.rst b/Documentation/translations/sp_SP/process/maintainer-kvm-x86.rst
new file mode 100644
index 000000000000..127238f44ea9
--- /dev/null
+++ b/Documentation/translations/sp_SP/process/maintainer-kvm-x86.rst
@@ -0,0 +1,466 @@
+.. include:: ../disclaimer-sp.rst
+
+:Original: :ref:`Documentation/process/maintainer-kvm-x86.rst`
+:Translator: Juan Embid <jembid@ucm.es>
+
+KVM x86
+=======
+
+Prólogo
+--------
+KVM se esfuerza por ser una comunidad acogedora; las contribuciones de los
+recién llegados son valoradas e incentivadas. Por favor, no se desanime ni
+se sienta intimidado por la extensión de este documento y las numerosas
+normas/directrices que contiene. Todos cometemos errores y todos hemos sido
+principiantes en algún momento. Mientras haga un esfuerzo honesto por
+seguir las directrices de KVM x86, sea receptivo a los comentarios, y
+aprenda de los errores que cometa, será recibido con los brazos abiertos,
+no con antorchas y horcas.
+
+TL;DR
+-----
+Las pruebas son obligatorias. Sea coherente con los estilos y patrones
+establecidos.
+
+Árboles
+-------
+KVM x86 se encuentra actualmente en un período de transición de ser parte
+del árbol principal de KVM, a ser "sólo otra rama de KVM". Como tal, KVM
+x86 está dividido entre el árbol principal de KVM,
+``git.kernel.org/pub/scm/virt/kvm/kvm.git``, y un árbol específico de KVM
+x86, ``github.com/kvm-x86/linux.git``.
+
+Por lo general, las correcciones para el ciclo en curso se aplican
+directamente al árbol principal de KVM, mientras que todo el desarrollo
+para el siguiente ciclo se dirige a través del árbol de KVM x86. En el
+improbable caso de que una corrección para el ciclo actual se dirija a
+través del árbol KVM x86, se aplicará a la rama ``fixes`` antes de llegar
+al árbol KVM principal.
+
+Tenga en cuenta que se espera que este periodo de transición dure bastante
+tiempo, es decir, que será el statu quo en un futuro previsible.
+
+Ramas
+~~~~~
+El árbol de KVM x86 está organizado en múltiples ramas por temas. El
+propósito de utilizar ramas temáticas más específicas es facilitar el
+control de un área de desarrollo, y para limitar los daños colaterales de
+errores humanos y/o commits con errores, por ejemplo, borrar el commit HEAD
+de una rama temática no tiene impacto en los hashes SHA1 de otros commit
+en en camino, y tener que rechazar una solicitud de pull debido a errores
+retrasa sólo esa rama temática.
+
+Todas las ramas temáticas, excepto ``next`` y ``fixes``, se agrupan en
+``next`` a través de un Cthulhu merge en función de las necesidades, es
+decir, cuando se actualiza una rama temática. Como resultado, los push
+forzados a ``next`` son comunes.
+
+Ciclo de Vida
+~~~~~~~~~~~~~
+Las correcciones dirigidas a la versión actual, también conocida como
+mainline, suelen aplicarse directamente al árbol principal de KVM, es
+decir, no pasan por el árbol x86 de KVM.
+
+Los cambios dirigidos a la siguiente versión se dirigen a través del árbol
+KVM x86. Se envían pull requests (de KVM x86 a KVM main) para cada rama
+temática de KVM x86, normalmente la semana antes de que Linus abra la
+ventana de fusión, por ejemplo, la semana siguiente a rc7 para las
+versiones "normales". Si todo va bien, las ramas temáticas son subidas en
+el pull request principal de KVM enviado durante la ventana de fusión de
+Linus.
+
+El árbol de KVM x86 no tiene su propia ventana de fusión oficial, pero hay
+un cierre suave alrededor de rc5 para nuevas características, y un cierre
+suave alrededor de rc6 para correcciones (para la próxima versión; fíjese
+más arriba para las correcciones dirigidas a la versión actual).
+
+Cronología
+~~~~~~~~~~
+Normalmente, los envíos se revisan y aplican en orden FIFO, con cierto
+margen de maniobra en función del tamaño de la serie, los parches que están
+"calientes en caché", etc. Correcciones, especialmente para la versión
+actual y/o árboles estables, consiguen saltar la cola. Los parches que se
+lleven a través de un árbol que no sea KVM (la mayoría de las veces a
+través del árbol de consejos) y/o que tengan otros acks/revisiones también
+saltan la cola hasta cierto punto.
+
+Tenga en cuenta que la mayor parte de la revisión se realiza entre rc1 y
+rc6, más o menos. El periodo entre la rc6 y la siguiente rc1 se utiliza
+para ponerse al día en otras tareas, es decir, la falta de envíos durante
+este periodo no es inusual.
+
+Los pings para obtener una actualización del estado son bienvenidos, pero
+tenga en cuenta el calendario del ciclo de publicación actual y tenga
+expectativas realistas. Si está haciendo ping para la aceptación, es decir,
+no sólo para obtener comentarios o una actualización, por favor haga todo
+lo posible, dentro de lo razonable, para asegurarse de que sus parches
+están listos para ser fusionados. Los pings sobre series que rompen la
+compilación o fallan en las pruebas provocan el descontento de los
+mantenedores.
+
+Desarrollo
+-----------
+
+Árbol base/Rama
+~~~~~~~~~~~~~~~
+Las correcciones dirigidas a la versión actual, también conocida como
+mainline, deben basarse en
+``git://git.kernel.org/pub/scm/virt/kvm/kvm.git master``. Tenga en cuenta
+que las correcciones no garantizan automáticamente la inclusión en la
+versión actual. No hay una regla única, pero normalmente sólo las
+correcciones de errores urgentes, críticos y/o introducidos en la versión
+actual deberían incluirse en la versión actual.
+
+Todo lo demás debería basarse en ``kvm-x86/next``, es decir, no hay
+necesidad de seleccionar una rama temática específica como base. Si hay
+conflictos y/o dependencias entre ramas, es trabajo del mantenedor
+resolverlos.
+
+La única excepción al uso de ``kvm-x86/next`` como base es si un
+parche/serie es una serie multi-arquitectura, es decir, tiene
+modificaciones no triviales en el código común de KVM y/o tiene cambios más
+que superficiales en el código de otras arquitecturas. Los parches/series
+multi-arquitectura deberían basarse en un punto común y estable en la
+historia de KVM, por ejemplo, la versión candidata en la que se basa
+``kvm-x86 next``. Si no está seguro de si un parche/serie es realmente
+multiarquitectura, sea precavido y trátelo como multiarquitectura, es
+decir, utilice una base común.
+
+Estilo del codigo
+~~~~~~~~~~~~~~~~~~~~~~
+Cuando se trata de estilo, nomenclatura, patrones, etc., la coherencia es
+la prioridad número uno en KVM x86. Si todo lo demás falla, haga coincidir
+lo que ya existe.
+
+Con algunas advertencias que se enumeran a continuación, siga las
+recomendaciones de los responsables del árbol de consejos
+:ref:`maintainer-tip-coding-style`, ya que los parches/series a menudo
+tocan tanto archivos x86 KVM como no KVM, es decir, llaman la atención de
+los mantenedores de KVM *y* del árbol de consejos.
+
+El uso del abeto inverso, también conocido como árbol de Navidad inverso o
+árbol XMAS inverso, para las declaraciones de variables no es estrictamente
+necesario, aunque es preferible.
+
+Excepto para unos pocos apuntes especiales, no utilice comentarios
+kernel-doc para las funciones. La gran mayoría de las funciones "públicas"
+de KVM no son realmente públicas, ya que están destinadas únicamente al
+consumo interno de KVM (hay planes para privatizar las cabeceras y
+exportaciones de KVM para reforzar esto).
+
+Comentarios
+~~~~~~~~~~~
+Escriba los comentarios en modo imperativo y evite los pronombres. Utilice
+los comentarios para ofrecer una visión general de alto nivel del código
+y/o para explicar por qué el código hace lo que hace. No reitere lo que el
+código hace literalmente; deje que el código hable por sí mismo. Si el
+propio código es inescrutable, los comentarios no servirán de nada.
+
+Referencias SDM y APM
+~~~~~~~~~~~~~~~~~~~~~~
+Gran parte de la base de código de KVM está directamente vinculada al
+comportamiento de la arquitectura definido en El Manual de Desarrollo de
+Software (SDM) de Intel y el Manual del Programador de Arquitectura (APM)
+de AMD. El uso de "SDM de Intel" y "APM de AMD", o incluso sólo "SDM" o
+"APM", sin contexto adicional es correcto.
+
+No haga referencia a secciones específicas, tablas, figuras, etc. por su
+número, especialmente en los comentarios. En su lugar, si es necesario
+(véase más abajo), copie y pegue el fragmento correspondiente y haga
+referencia a las secciones/tablas/figuras por su nombre. Los diseños del
+SDM y el APM cambian constantemente, por lo que los números/etiquetas no
+son estables.
+
+En general, no haga referencia explícita ni copie-pegue del SDM o APM en
+los comentarios. Con pocas excepciones, KVM *debe* respetar el
+comportamiento de la arquitectura, por lo que está implícito que el
+comportamiento de KVM está emulando el comportamiento de SDM y/o APM. Tenga
+en cuenta que hacer referencia al SDM/APM en los registros de cambios para
+justificar el cambio y proporcionar contexto es perfectamente correcto y
+recomendable.
+
+Shortlog
+~~~~~~~~
+El formato de prefijo más recomendable es ``KVM: <topic>:``, donde
+``<topic>`` es uno de los siguientes::
+
+- x86
+- x86/mmu
+- x86/pmu
+- x86/xen
+- autocomprobaciones
+- SVM
+- nSVM
+- VMX
+- nVMX
+
+**¡NO use x86/kvm!** ``x86/kvm`` se usa exclusivamente para cambios de
+Linux virtualizado por KVM, es decir, para arch/x86/kernel/kvm.c. No use
+nombres de archivos o archivos completos como prefijo de asunto/shortlog.
+
+Tenga en cuenta que esto no coincide con las ramas temáticas (las ramas
+temáticas se preocupan mucho más por los conflictos de código).
+
+Todos los nombres distinguen entre mayúsculas y minúsculas. ``KVM: x86:``
+es correcto, ``kvm: vmx:`` no lo es.
+
+Escriba en mayúsculas la primera palabra de la descripción condensada del
+parche, pero omita la puntuación final. Por ejemplo::
+
+	KVM: x86: Corregir una desviación de puntero nulo en function_xyz()
+
+no::
+
+	kvm: x86: corregir una desviación de puntero nulo en function_xyz.
+
+Si un parche afecta a varios temas, recorra el árbol conceptual hasta
+encontrar el primer padre común (que suele ser simplemente ``x86``). En
+caso de duda, ``git log path/to/file`` debería proporcionar una pista
+razonable.
+
+De vez en cuando surgen nuevos temas, pero le rogamos que inicie un debate
+en la lista si desea proponer la introducción de un nuevo tema, es decir,
+no se ande con rodeos.
+
+Consulte :ref:`the_canonical_patch_format` para obtener más información,
+con una enmienda: no trate el límite de 70-75 caracteres como un límite
+absoluto y duro. En su lugar, utilice 75 caracteres como límite firme, pero
+no duro, y 80 caracteres como límite duro. Es decir, deje que el registro
+corto sobrepase en algunos caracteres el límite estándar si tiene una buena
+razón para hacerlo.
+
+Registro de cambios
+~~~~~~~~~~~~~~~~~~~
+Y lo que es más importante, escriba los registros de cambios en modo
+imperativo y evite los pronombres.
+
+Consulte :ref:`describe_changes` para obtener más información, con una
+recomendación: comience con un breve resumen de los cambios reales y
+continúe con el contexto y los antecedentes. Nota. Este orden entra en
+conflicto directo con el enfoque preferido del árbol de sugerencias. Por
+favor, siga el estilo preferido del árbol de sugerencias cuando envíe
+parches. que se dirigen principalmente a código arch/x86 que _NO_ es código
+KVM.
+
+KVM x86 prefiere indicar lo que hace un parche antes de entrar en detalles
+por varias razones. En primer lugar, el código que realmente se está
+cambiando es posiblemente la información más importante, por lo que esa
+información debe ser fácil de encontrar. Changelogs que entierran el "qué
+está cambiando realmente" en una sola línea después de 3+ párrafos de fondo
+hacen muy difícil encontrar esa información.
+
+Para la revisión inicial, se podría argumentar que "lo que está roto" es
+más importante, pero para hojear los registros y la arqueología git, los
+detalles escabrosos importan cada vez menos. Por ejemplo, al hacer una
+serie de "git blame", los detalles de cada cambio a lo largo del camino son
+inútiles, los detalles sólo importan para el culpable. Proporcionar el "qué
+ha cambiado" facilita determinar rápidamente si una confirmación puede ser
+de interés o no.
+
+Otra ventaja de decir primero "qué cambia" es que casi siempre es posible
+decir "qué cambia" en una sola frase. A la inversa, todo menos los errores
+más simples requieren varias frases o párrafos para describir el problema.
+Si tanto "qué está cambiando" como "cuál es el fallo" son muy breves, el
+orden no importa. Pero si uno es más corto (casi siempre el "qué está
+cambiando"), entonces cubrir el más corto primero es ventajoso porque es
+menos inconveniente para los lectores/revisores que tienen una preferencia
+estricta de orden. Por ejemplo, tener que saltarse una frase para llegar al
+contexto es menos doloroso que tener que saltarse tres párrafos para llegar
+a "lo que cambia".
+
+Arreglos
+~~~~~~~~
+Si un cambio corrige un error de KVM/kernel, añada una etiqueta Fixes:
+incluso si el cambio no necesita ser retroportado a kernels estables, e
+incluso si el cambio corrige un error en una versión anterior.
+
+Por el contrario, si es necesario hacer una corrección, etiquete
+explícitamente el parche con "Cc: stable@vger.kernel" (aunque no es
+necesario que el correo electrónico incluya Cc: stable); KVM x86 opta por
+excluirse del backporting Correcciones: por defecto. Algunos parches
+seleccionados automáticamente se retroportan, pero requieren la aprobación
+explícita de los mantenedores (busque MANUALSEL).
+
+Referencias a Funciones
+~~~~~~~~~~~~~~~~~~~~~~~
+Cuando se mencione una función en un comentario, registro de cambios o
+registro abreviado (o en cualquier otro lugar), utilice el formato
+``nombre_de_la_función()``. Los paréntesis proporcionan contexto y
+desambiguan la referencia.
+
+Pruebas
+~~~~~~~
+Como mínimo, *todos* los parches de una serie deben construirse limpiamente
+para KVM_INTEL=m KVM_AMD=m, y KVM_WERROR=y. Construir todas las
+combinaciones posibles de Kconfigs no es factible, pero cuantas más mejor.
+KVM_SMM, KVM_XEN, PROVE_LOCKING, y X86_64 son particularmente interesantes.
+
+También es obligatorio ejecutar las autopruebas y las pruebas unitarias de
+KVM (y, como es obvio, las pruebas deben pasar). La única excepción es para
+los cambios que tienen una probabilidad insignificante de afectar al
+comportamiento en tiempo de ejecución, por ejemplo, parches que sólo
+modificar los comentarios. Siempre que sea posible y pertinente, se
+recomienda encarecidamente realizar pruebas tanto en Intel como en AMD. Se
+recomienda arrancar una máquina virtual real, pero no es obligatorio.
+
+Para cambios que afecten al código de paginación en la sombra de KVM, es
+obligatorio ejecutar con TDP (EPT/NPT) deshabilitado. Para cambios que
+afecten al código MMU común de KVM, se recomienda encarecidamente ejecutar
+con TDP deshabilitado. Para todos los demás cambios, si el código que se
+está modificando depende de y/o interactúa con un parámetro del módulo, es
+obligatorio realizar pruebas con la configuración correspondiente.
+
+Tenga en cuenta que las autopruebas de KVM y las pruebas de unidad de KVM
+tienen fallos conocidos. Si sospecha que un fallo no se debe a sus cambios,
+verifique que el *exactamente el mismo* fallo se produce con y sin sus
+cambios.
+
+Los cambios que afecten a la documentación de texto reestructurado, es
+decir, a los archivos .rst, deben generar htmldocs de forma limpia, es
+decir, sin advertencias ni errores.
+
+Si no puede probar completamente un cambio, por ejemplo, por falta de
+hardware, indique claramente qué nivel de pruebas ha podido realizar, por
+ejemplo, en la carta de presentación.
+
+Novedades
+~~~~~~~~~
+Con una excepción, las nuevas características *deben* venir con cobertura
+de pruebas. Las pruebas específicas de KVM no son estrictamente necesarias,
+por ejemplo, si la cobertura se proporciona mediante la ejecución de una
+prueba de VM huésped suficientemente habilitada, o ejecutando una
+autoprueba de kernel relacionada en una VM, pero en todos los casos se
+prefieren las pruebas KVM dedicadas. Los casos de prueba negativos en
+particular son obligatorios para la habilitación de nuevas características
+de hardware, ya que los flujos de errores y excepciones rara vez se
+ejercitan simplemente ejecutando una VM.
+
+La única excepción a esta regla es si KVM está simplemente anunciando
+soporte para un a través de KVM_GET_SUPPORTED_CPUID, es decir, para
+instrucciones/funciones que KVM no puede impedir que utilice una VM y
+para las que no existe una verdadera habilitación.
+
+Tenga en cuenta que "nuevas características" no significa sólo "nuevas
+características de hardware". Las nuevas funcionalidades que no puedan ser
+validadas usando las pruebas existentes de KVM y/o las pruebas unitarias de
+KVM deben venir con pruebas.
+
+Es más que bienvenido el envío de nuevos desarrollos de características sin
+pruebas para obtener un feedback temprano, pero tales envíos deben ser
+etiquetados como RFC, y la carta de presentación debe indicar claramente
+qué tipo de feedback se solicita/espera. No abuse del proceso de RFC; las
+RFC no suelen recibir una revisión en profundidad.
+
+Corrección de Errores
+~~~~~~~~~~~~~~~~~~~~~
+Salvo en el caso de fallos "obvios" detectados por inspección, las
+correcciones deben ir acompañadas de un reproductor del fallo corregido. En
+muchos casos, el reproductor está implícito, por ejemplo, para errores de
+compilación y fallos de prueba, pero debe quedar claro para lectores qué es
+lo que no funciona y cómo verificar la solución. Se concede cierto margen a
+los errores detectados mediante cargas de trabajo/pruebas no públicas, pero
+se recomienda encarecidamente que se faciliten pruebas de regresión para
+dichos errores.
+
+En general, las pruebas de regresión son preferibles para cualquier fallo
+que no sea trivial de encontrar. Por ejemplo, incluso si el error fue
+encontrado originalmente por un fuzzer como syzkaller, una prueba de
+regresión dirigida puede estar justificada si el error requiere golpear una
+condición de carrera de tipo uno en un millón.
+
+Recuerde que los fallos de KVM rara vez son urgentes *y* no triviales de
+reproducir. Pregúntate si un fallo es realmente el fin del mundo antes de
+publicar una corrección sin un reproductor.
+
+Publicación
+-----------
+
+Enlaces
+~~~~~~~
+No haga referencia explícita a informes de errores, versiones anteriores de
+un parche/serie, etc. mediante cabeceras ``In-Reply-To:``. Usar
+``In-Reply-To:`` se convierte en un lío para grandes series y/o cuando el
+número de versiones es alto, y ``In-Reply-To:`` es inútil para cualquiera
+que no tenga el mensaje original, por ejemplo, si alguien no recibió un Cc
+en el informe de error o si la lista de destinatarios cambia entre
+versiones.
+
+Para enlazar con un informe de error, una versión anterior o cualquier cosa
+de interés, utiliza enlaces lore. Para hacer referencia a versiones
+anteriores, en general no incluya un Enlace: en el registro de cambios, ya
+que no hay necesidad de registrar la historia en git, es decir, ponga el
+enlace en la carta de presentación o en la sección que git ignora.
+Proporcione un Enlace: formal para los informes de errores y/o discusiones
+que condujeron al parche. El contexto de por qué se hizo un cambio es muy
+valioso para futuros lectores.
+
+Basado en Git
+~~~~~~~~~~~~~
+Si utilizas la versión 2.9.0 o posterior de git (Googlers, ¡os incluimos a
+todos!), utilice ``git format-patch`` con el indicador ``--base`` para
+incluir automáticamente la información del árbol base en los parches
+generados.
+
+Tenga en cuenta que ``--base=auto`` funciona como se espera si y sólo si el
+upstream de una rama se establece en la rama temática base, por ejemplo,
+hará lo incorrecto si su upstream se establece en su repositorio personal
+con fines de copia de seguridad. Una solución "automática" alternativa es
+derivar los nombres de tus ramas de desarrollo basándose en su KVM x86, e
+introdúzcalo en ``--base``. Por ejemplo, ``x86/pmu/mi_nombre_de_rama``, y
+luego escribir un pequeño wrapper para extraer ``pmu`` del nombre de la
+rama actual para obtener ``--base=x/pmu``, donde ``x`` es el nombre que su
+repositorio utiliza para rastrear el remoto KVM x86.
+
+Tests de Co-Publicación
+~~~~~~~~~~~~~~~~~~~~~~~
+Las autopruebas de KVM asociadas a cambios de KVM, por ejemplo, pruebas de
+regresión para correcciones de errores, deben publicarse junto con los
+cambios de KVM como una única serie. Se aplicarán las reglas estándar del
+núcleo para la bisección, es decir, los cambios de KVM que provoquen fallos
+en las pruebas se ordenarán después de las actualizaciones de las
+autopruebas, y viceversa. Las pruebas que fallan debido a errores de KVM
+deben ordenarse después de las correcciones de KVM.
+
+KVM-unit-tests debería *siempre* publicarse por separado. Las herramientas,
+por ejemplo b4 am, no saben que KVM-unit-tests es un repositorio separado y
+se confunden cuando los parches de una serie se aplican en diferentes
+árboles. Para vincular los parches de KVM-unit-tests a Parches KVM, primero
+publique los cambios KVM y luego proporcione un enlace lore Link: al
+parche/serie KVM en el parche(s) KVM-unit-tests.
+
+Notificaciones
+~~~~~~~~~~~~~~
+Cuando se acepte oficialmente un parche/serie, se enviará un correo
+electrónico de notificación en respuesta a la publicación original (carta
+de presentación para series de varios parches). La notificación incluirá el
+árbol y la rama temática, junto con los SHA1 de los commits de los parches
+aplicados.
+
+Si se aplica un subconjunto de parches, se indicará claramente en la
+notificación. A menos que se indique lo contrario, se sobreentiende que
+todos los parches del Las series que no han sido aceptadas necesitan más
+trabajo y deben presentarse en una nueva versión.
+
+Si por alguna razón se retira un parche después de haber sido aceptado
+oficialmente, se enviará una respuesta al correo electrónico de
+notificación explicando por qué se ha retirado el parche, así como los
+pasos siguientes.
+
+Estabilidad SHA1
+~~~~~~~~~~~~~~~~
+Los SHA1 no son 100% estables hasta que llegan al árbol de Linus. Un SHA1
+es *normalmente* estable una vez que se ha enviado una notificación, pero
+ocurren cosas. En la mayoría de los casos, se proporcionará una
+actualización del correo electrónico de notificación si se aplica un SHA1
+del parche. Sin embargo, en algunos escenarios, por ejemplo, si todas las
+ramas de KVM x86 necesitan ser rebasadas, no se darán notificaciones
+individuales.
+
+Vulnerabilidades
+~~~~~~~~~~~~~~~~
+Los fallos que pueden ser explotados por la VM (el "guest") para atacar al
+host (kernel o espacio de usuario), o que pueden ser explotados por una VM
+anidada a *su* host (L2 atacando a L1), son de particular interés para KVM.
+Por favor, siga el protocolo para :ref:`securitybugs` si sospecha que un
+fallo puede provocar una filtración de datos, etc.
+
-- 
2.43.0

.

From: "Rob Herring (Arm)" <robh@kernel.org>
Subject: [PATCH v2 00/12] arm64: Add support for Armv9.4 PMU fixed
 instruction counter
Date: Wed, 26 Jun 2024 16:32:24 -0600
Message-Id: <20240626-arm-pmu-3-9-icntr-v2-0-c9784b4f4065@kernel.org>
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit
To: Russell King <linux@armlinux.org.uk>, 
 Peter Zijlstra <peterz@infradead.org>, Ingo Molnar <mingo@redhat.com>, 
 Arnaldo Carvalho de Melo <acme@kernel.org>, 
 Namhyung Kim <namhyung@kernel.org>, Mark Rutland <mark.rutland@arm.com>, 
 Alexander Shishkin <alexander.shishkin@linux.intel.com>, 
 Jiri Olsa <jolsa@kernel.org>, Ian Rogers <irogers@google.com>, 
 Adrian Hunter <adrian.hunter@intel.com>, Will Deacon <will@kernel.org>, 
 Marc Zyngier <maz@kernel.org>, Oliver Upton <oliver.upton@linux.dev>, 
 James Morse <james.morse@arm.com>, 
 Suzuki K Poulose <suzuki.poulose@arm.com>, 
 Zenghui Yu <yuzenghui@huawei.com>, 
 Catalin Marinas <catalin.marinas@arm.com>, 
 James Clark <james.clark@arm.com>
Cc: linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, 
 linux-perf-users@vger.kernel.org, kvmarm@lists.linux.dev
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1260300
Newsgroups: org.kernel.vger.linux-kernel,dev.linux.lists.kvmarm,org.infradead.lists.linux-arm-kernel,org.kernel.vger.linux-perf-users
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

This series adds support for the optional fixed instruction counter 
added in Armv9.4 PMU. Most of the series is a refactoring to remove the 
index to counter number conversion which dates back to the Armv7 PMU 
driver. Removing it is necessary in order to support more than 32 
counters without a bunch of conditional code further complicating the 
conversion.

Patches 1-2 are a fix and cleanup for the threshold support. Patch 1 is 
a dependency of patch 12.

Patches 3-4 move the 32-bit Arm PMU drivers into drivers/perf/ and drop 
non-DT probe support. These can be taken first if there's no comments on 
them.

Patch 5 is new to v2 and implements the common pattern of the linux/ 
header including the asm/ header of the same name.

Patch 6 changes struct arm_pmu.num_events to a bitmap of events, and 
updates all the users. This removes the index to counter conversion 
on the PMUv3 and Armv7 drivers.

Patch 7 updates various register accessors to use 64-bit values matching 
the register size.

Patches 8-9 update KVM PMU register accesses to use shared accessors 
from asm/arm_pmuv3.h.

Patches 10-11 rework KVM and perf PMU defines for counter indexes and 
number of counters.

Patch 12 finally adds support for the fixed instruction counter.

I tested this on FVP with VHE host and a guest. I tested the Armv7 PMU 
changes with QEMU.

Signed-off-by: Rob Herring (Arm) <robh@kernel.org>
---
Changes in v2:
- Include threshold fix patches and account for threshold support in 
  counter assignment.
- Add patch including asm/arm_pmuv3.h from linux/perf/arm_pmuv3.h
- Fix compile error for Apple PMU
- Minor review comments detailed in individual patches
- Link to v1: https://lore.kernel.org/r/20240607-arm-pmu-3-9-icntr-v1-0-c7bd2dceff3b@kernel.org

---
Rob Herring (Arm) (12):
      perf: arm_pmuv3: Avoid assigning fixed cycle counter with threshold
      perf: arm_pmuv3: Drop unnecessary IS_ENABLED(CONFIG_ARM64) check
      perf/arm: Move 32-bit PMU drivers to drivers/perf/
      perf: arm_v6/7_pmu: Drop non-DT probe support
      perf: arm_pmuv3: Include asm/arm_pmuv3.h from linux/perf/arm_pmuv3.h
      perf: arm_pmu: Remove event index to counter remapping
      perf: arm_pmuv3: Prepare for more than 32 counters
      KVM: arm64: pmu: Use arm_pmuv3.h register accessors
      KVM: arm64: pmu: Use generated define for PMSELR_EL0.SEL access
      arm64: perf/kvm: Use a common PMU cycle counter define
      KVM: arm64: Refine PMU defines for number of counters
      perf: arm_pmuv3: Add support for Armv9.4 PMU instruction counter

 arch/arm/include/asm/arm_pmuv3.h                   |  20 +++
 arch/arm/kernel/Makefile                           |   2 -
 arch/arm64/include/asm/arm_pmuv3.h                 |  55 +++++++-
 arch/arm64/include/asm/kvm_host.h                  |   8 +-
 arch/arm64/include/asm/sysreg.h                    |   1 -
 arch/arm64/kvm/pmu-emul.c                          |  15 +-
 arch/arm64/kvm/pmu.c                               |  87 +++---------
 arch/arm64/kvm/sys_regs.c                          |  11 +-
 arch/arm64/tools/sysreg                            |  30 ++++
 drivers/perf/Kconfig                               |  12 ++
 drivers/perf/Makefile                              |   3 +
 drivers/perf/apple_m1_cpu_pmu.c                    |   4 +-
 drivers/perf/arm_pmu.c                             |  11 +-
 drivers/perf/arm_pmuv3.c                           | 154 +++++++++++----------
 .../perf_event_v6.c => drivers/perf/arm_v6_pmu.c   |  26 +---
 .../perf_event_v7.c => drivers/perf/arm_v7_pmu.c   |  90 ++++--------
 .../perf/arm_xscale_pmu.c                          |  15 +-
 include/kvm/arm_pmu.h                              |   8 +-
 include/linux/perf/arm_pmu.h                       |  10 +-
 include/linux/perf/arm_pmuv3.h                     |  11 +-
 20 files changed, 301 insertions(+), 272 deletions(-)
---
base-commit: 1613e604df0cd359cf2a7fbd9be7a0bcfacfabd0
change-id: 20240607-arm-pmu-3-9-icntr-04375ddd0082

Best regards,
-- 
Rob Herring (Arm) <robh@kernel.org>

.

From: Jonas Karlman <jonas@kwiboo.se>
To: Heiko Stuebner <heiko@sntech.de>, Rob Herring <robh@kernel.org>,
 Krzysztof Kozlowski <krzk+dt@kernel.org>, Conor Dooley
 <conor+dt@kernel.org>
Cc: devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org,
 linux-rockchip@lists.infradead.org, linux-kernel@vger.kernel.org, Jonas
 Karlman <jonas@kwiboo.se>
Subject: [PATCH v2 0/2] arm64: dts: rockchip: Add Xunlong Orange Pi 3B
Date: Wed, 26 Jun 2024 23:03:10 +0000
Message-ID: <20240626230319.1425316-1-jonas@kwiboo.se>
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Report-Abuse-To: abuse@forwardemail.net
X-Complaints-To: abuse@forwardemail.net
X-ForwardEmail-Version: 0.4.40
X-ForwardEmail-Sender: rfc822; jonas@kwiboo.se, smtp.forwardemail.net,
 167.172.40.54
X-ForwardEmail-ID: 667c9e3dc59a3ae6af4b1610
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1260327
Newsgroups: org.kernel.vger.linux-kernel,org.infradead.lists.linux-arm-kernel,org.infradead.lists.linux-rockchip,org.kernel.vger.linux-devicetree
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

This series adds initial support for the Xunlong Orange Pi 3B board.

The Xunlong Orange Pi 3B is a single-board computer based on the
Rockchip RK3566 SoC.

Schematic for Orange Pi 3B can be downloaded from:
http://www.orangepi.org/html/hardWare/computerAndMicrocontrollers/service-and-support/Orange-Pi-3B.html

Changes in v2:
- Add DT for v2.1 hw revision, rename initial DT to v1.1:
  - Ethernet phy io voltage: 3v3 (v1.1) / 1v8 (v2.1)
  - Etherent reset gpios: GPIO3_C2 (v1.1) / GPIO4_C4 (v2.1)
  - WiFi/BT: CDW-20U5622 (v1.1) / AP6256 (v2.1)
- Rename led node and move led pinctrl props
- Use regulator-.* nodename for fixed regulators
- Drop rockchip,mic-in-differential prop
- Add cap-mmc-highspeed to sdhci node
- Add no-mmc and no-sd to sdmmc1 node

Jonas Karlman (2):
  dt-bindings: arm: rockchip: Add Xunlong Orange Pi 3B
  arm64: dts: rockchip: Add Xunlong Orange Pi 3B

 .../devicetree/bindings/arm/rockchip.yaml     |   8 +
 arch/arm64/boot/dts/rockchip/Makefile         |   2 +
 .../dts/rockchip/rk3566-orangepi-3b-v1.1.dts  |  29 +
 .../dts/rockchip/rk3566-orangepi-3b-v2.1.dts  |  70 ++
 .../boot/dts/rockchip/rk3566-orangepi-3b.dtsi | 678 ++++++++++++++++++
 5 files changed, 787 insertions(+)
 create mode 100644 arch/arm64/boot/dts/rockchip/rk3566-orangepi-3b-v1.1.dts
 create mode 100644 arch/arm64/boot/dts/rockchip/rk3566-orangepi-3b-v2.1.dts
 create mode 100644 arch/arm64/boot/dts/rockchip/rk3566-orangepi-3b.dtsi

-- 
2.45.2

.

Date: Wed, 26 Jun 2024 23:04:05 +0000
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
Mime-Version: 1.0
Message-ID: <20240626230411.3471543-1-ipylypiv@google.com>
Subject: [PATCH v3 0/6] ATA PASS-THROUGH sense data fixes
From: Igor Pylypiv <ipylypiv@google.com>
To: Damien Le Moal <dlemoal@kernel.org>, Niklas Cassel <cassel@kernel.org>
Cc: Tejun Heo <tj@kernel.org>, Hannes Reinecke <hare@suse.de>, linux-ide@vger.kernel.org, 
	linux-kernel@vger.kernel.org, Igor Pylypiv <ipylypiv@google.com>
Content-Type: text/plain; charset="UTF-8"
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1260329
Newsgroups: org.kernel.vger.linux-kernel,org.kernel.vger.linux-ide
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

This patch series is fixing a few ATA PASS-THROUGH issues:
1. Not reporting "ATA Status Return sense data descriptor" / "Fixed format
   sense data" when ATA_QCFLAG_SENSE_VALID is set.
2. Generating "fake" sk/asc/ascq based on ATA status/error registers when
   ATA_QCFLAG_SENSE_VALID is set and CK_COND=1.
3. Fixed format sense data was using incorrect field offsets for ATA
   PASS-THROUGH commands.
4. Using qc->result_tf in ATA sense data generation functions without
   checking if qc->result_tf contains a valid data.

Changes since v1:
Thanks Damien and Niklas for the reviews!

- Squashed two v1 patches 2/4 and 3/4 into one patch with a different
  implementation.
- Added 'Cc: stable@vger.kernel.org' tags to patches that are fixing bugs.
- Reordered patches with the 'Cc: stable@vger.kernel.org' tag to be applied
  first in order to simplify backports to stable releases.
- Restored the buffer memset in atapi_eh_request_sense().
- Updated declaration order in v1 patch 4/4.
- Added a patch to cleanup unused ATA device id in ata_to_sense_error().
- Updated fill_result_tf() to set ATA_QCFLAG_RTF_FILLED after populating
  the result taskfile. Removed now redundant flag sets/checks from ahci.
- Updated ATA sense data generation functions to return early if result_tf
  is not filled. Added WARN_ON_ONCE checks to generate a warning when
  ATA_QCFLAG_RTF_FILLED is not set and libata needs to generate sense data.

Changes since v2:
- Moved v2 2/6 patch (fixed ATA PT offsets) to be the first one in v3.
- Removed unused variable 'sb' from ata_gen_passthru_sense().
- Removed WARN_ON_ONCE checks and added ata_dev_dbg() logs instead.
- Removed the Fixes tag from v2 4/6 patch because the patch is doing
  a cleanup and is not fixing any bugs.

Igor Pylypiv (6):
  ata: libata-scsi: Fix offsets for the fixed format sense data
  ata: libata-scsi: Do not overwrite valid sense data when CK_COND=1
  ata: libata-scsi: Remove redundant sense_buffer memsets
  ata: libata-scsi: Do not pass ATA device id to ata_to_sense_error()
  ata: libata: Set ATA_QCFLAG_RTF_FILLED in fill_result_tf()
  ata: libata-scsi: Check ATA_QCFLAG_RTF_FILLED before using result_tf

 drivers/ata/libahci.c     |  10 --
 drivers/ata/libata-core.c |   8 ++
 drivers/ata/libata-scsi.c | 188 ++++++++++++++++++++++----------------
 3 files changed, 115 insertions(+), 91 deletions(-)

-- 
2.45.2.803.g4e1b14247a-goog

.

From: Sidhartha Kumar <sidhartha.kumar@oracle.com>
To: akpm@linux-foundation.org, quic_jjohnson@quicinc.com
Cc: linux-kernel@vger.kernel.org, linux-trace-kernel@vger.kernel.org,
        kernel-janitors@vger.kernel.org, liam.howlett@oracle.com,
        willy@infradead.org, Sidhartha Kumar <sidhartha.kumar@oracle.com>
Subject: [PATCH] tools/testing/radix-tree/idr-test: add missing MODULE_DESCRIPTION define
Date: Wed, 26 Jun 2024 16:21:00 -0700
Message-ID: <20240626232100.306130-1-sidhartha.kumar@oracle.com>
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1260344
Newsgroups: org.kernel.vger.linux-kernel,org.kernel.vger.kernel-janitors,org.kernel.vger.linux-trace-kernel
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

Userspace builds of the radix-tree testing suite fails because of patch
KUnit: add missing MODULE_DESCRIPTION() macros for lib/test_*.ko. Add the
proper defines to  tools/testing/radix-tree/idr-test.c so
MODULE_DESCRIPTION has a definition. This allows the build to succeed.

Fixes: 303474913271("KUnit: add missing MODULE_DESCRIPTION() macros for lib/test_*.ko")
Signed-off-by: Sidhartha Kumar <sidhartha.kumar@oracle.com>
---

This patch is based on next-20240626

 tools/testing/radix-tree/idr-test.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/tools/testing/radix-tree/idr-test.c b/tools/testing/radix-tree/idr-test.c
index ca24f6839d50..84b8c3c92c79 100644
--- a/tools/testing/radix-tree/idr-test.c
+++ b/tools/testing/radix-tree/idr-test.c
@@ -424,6 +424,7 @@ void idr_checks(void)
 #define module_init(x)
 #define module_exit(x)
 #define MODULE_AUTHOR(x)
+#define MODULE_DESCRIPTION(X)
 #define MODULE_LICENSE(x)
 #define dump_stack()    assert(0)
 void ida_dump(struct ida *);
-- 
2.45.2

.

From: "Tian, Kevin" <kevin.tian@intel.com>
To: Jason Gunthorpe <jgg@nvidia.com>, "Zhao, Yan Y" <yan.y.zhao@intel.com>
CC: "kvm@vger.kernel.org" <kvm@vger.kernel.org>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	"alex.williamson@redhat.com" <alex.williamson@redhat.com>,
	"peterx@redhat.com" <peterx@redhat.com>, "ajones@ventanamicro.com"
	<ajones@ventanamicro.com>
Subject: RE: [PATCH] vfio: Reuse file f_inode as vfio device inode
Date: Thu, 27 Jun 2024 00:17:02 +0000
Message-ID: <BN9PR11MB5276407FF3276B2D9C2D85798CD72@BN9PR11MB5276.namprd11.prod.outlook.com>
References: <20240617095332.30543-1-yan.y.zhao@intel.com>
 <20240626133528.GE2494510@nvidia.com> 
Accept-Language: en-US
Content-Language: en-US
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1260364
Newsgroups: org.kernel.vger.linux-kernel,org.kernel.vger.kvm
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

> From: Tian, Kevin
> Sent: Thursday, June 27, 2024 7:56 AM
>=20
> > From: Jason Gunthorpe <jgg@nvidia.com>
> > Sent: Wednesday, June 26, 2024 9:35 PM
> >
> > On Mon, Jun 17, 2024 at 05:53:32PM +0800, Yan Zhao wrote:
> > > Reuse file f_inode as vfio device inode and associate pseudo path fil=
e
> > > directly to inode allocated in vfio fs.
> > >
> > > Currently, vfio device is opened via 2 ways:
> > > 1) via cdev open
> > >    vfio device is opened with a cdev device with file f_inode and add=
ress
> > >    space associated with a cdev inode;
> > > 2) via VFIO_GROUP_GET_DEVICE_FD ioctl
> > >    vfio device is opened via a pseudo path file with file f_inode and
> > >    address space associated with an inode in anon_inode_fs.
> > >
> > > In commit b7c5e64fecfa ("vfio: Create vfio_fs_type with inode per
> device"),
> > > an inode in vfio fs is allocated for each vfio device. However, this =
inode
> > > in vfio fs is only used to assign its address space to that of a file
> > > associated with another cdev inode or an inode in anon_inode_fs.
> > >
> > > This patch
> > > - reuses cdev device inode as the vfio device inode when it's opened =
via
> > >   cdev way;
> > > - allocates an inode in vfio fs, associate it to the pseudo path file=
,
> > >   and save it as the vfio device inode when the vfio device is opened=
 via
> > >   VFIO_GROUP_GET_DEVICE_FD ioctl.
> > >
> > > File address space will then point automatically to the address space=
 of
> > > the vfio device inode. Tools like unmap_mapping_range() can then zap =
all
> > > vmas associated with the vfio device.
> > >
> > > Signed-off-by: Yan Zhao <yan.y.zhao@intel.com>
> > > ---
> > >  drivers/vfio/device_cdev.c |  9 ++++---
> > >  drivers/vfio/group.c       | 21 ++--------------
> > >  drivers/vfio/vfio.h        |  2 ++
> > >  drivers/vfio/vfio_main.c   | 49 +++++++++++++++++++++++++++---------=
--
> > >  4 files changed, 43 insertions(+), 38 deletions(-)
> > >
> > > diff --git a/drivers/vfio/device_cdev.c b/drivers/vfio/device_cdev.c
> > > index bb1817bd4ff3..a4eec8e88f5c 100644
> > > --- a/drivers/vfio/device_cdev.c
> > > +++ b/drivers/vfio/device_cdev.c
> > > @@ -40,12 +40,11 @@ int vfio_device_fops_cdev_open(struct inode
> > *inode, struct file *filep)
> > >  	filep->private_data =3D df;
> > >
> > >  	/*
> > > -	 * Use the pseudo fs inode on the device to link all mmaps
> > > -	 * to the same address space, allowing us to unmap all vmas
> > > -	 * associated to this device using unmap_mapping_range().
> > > +	 * mmaps are linked to the address space of the inode of device cde=
v.
> > > +	 * Save the inode of device cdev in device->inode to allow
> > > +	 * unmap_mapping_range() to unmap all vmas.
> > >  	 */
> > > -	filep->f_mapping =3D device->inode->i_mapping;
> > > -
> > > +	device->inode =3D inode;
> >
> > This doesn't seem right.. There is only one device but multiple file
> > can be opened on that device.
> >
> > We expect every open file to have a unique inode otherwise the
> > unmap_mapping_range() will not function properly.
> >

Can you elaborate the reason of this expectation? If multiple open's
come from a same process then having them share a single address
space per device still makes sense. Are you considering a scenario
where a vfio device is opened by multiple processes? is it allowed?

btw Yan's patch appears to impose different behaviors between cdev
and group paths. For cdev all open files share the address space of
the cdev inode, same effect as sharing that of the vfio-fs inode today.
But for group open every open file will get a new inode which kind of
matches your expectation but the patch simply overrides
vfio_device->inode instead of tracking a list. That sound incomplete.

>=20
> Does it mean that the existing code is already broken? there is only
> one vfio-fs inode per device (allocated at vfio_init_device()).
>=20
> And if we expect unique inode per open file then there will be a list
> of inodes tracked under vfio_pci_core_device for unmap_mapping_range()
> but it's also not the case today:
>=20
> static void vfio_pci_zap_bars(struct vfio_pci_core_device *vdev)
> {
> 	struct vfio_device *core_vdev =3D &vdev->vdev;
> 	loff_t start =3D
> VFIO_PCI_INDEX_TO_OFFSET(VFIO_PCI_BAR0_REGION_INDEX);
> 	loff_t end =3D
> VFIO_PCI_INDEX_TO_OFFSET(VFIO_PCI_ROM_REGION_INDEX);
> 	loff_t len =3D end - start;
>=20
> 	unmap_mapping_range(core_vdev->inode->i_mapping, start, len,
> true);
> }
.

Date: Wed, 26 Jun 2024 17:30:17 -0700
From: Andrew Morton <akpm@linux-foundation.org>
To: Linus Torvalds <torvalds@linux-foundation.org>
Cc: linux-mm@kvack.org, mm-commits@vger.kernel.org,
 linux-kernel@vger.kernel.org
Subject: [GIT PULL] hotfixes for 6.10-rc6
Message-Id: <20240626173017.d4d69c597466bdd42da64da3@linux-foundation.org>
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
Mime-Version: 1.0
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: 7bit
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1260369 org.kvack.linux-mm:201561
Newsgroups: org.kernel.vger.linux-kernel,org.kernel.vger.mm-commits,org.kvack.linux-mm
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail


Linus, please merge this batch of hotfixes, thanks.


The following changes since commit f2661062f16b2de5d7b6a5c42a9a5c96326b8454:

  Linux 6.10-rc5 (2024-06-23 17:08:54 -0400)

are available in the Git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm tags/mm-hotfixes-stable-2024-06-26-17-28

for you to fetch changes up to ab1ffc86cb5bec1c92387b9811d9036512f8f4eb:

  mm/memory: don't require head page for do_set_pmd() (2024-06-24 20:52:11 -0700)

----------------------------------------------------------------
13 hotfixes, 7 are cc:stable.

All are MM related apart from a MAINTAINERS update.  There is no
identifiable theme here - just singleton patches in various places.

----------------------------------------------------------------
Andrew Bresticker (1):
      mm/memory: don't require head page for do_set_pmd()

Andrey Konovalov (1):
      kasan: fix bad call to unpoison_slab_object

Christoph Hellwig (1):
      nfs: drop the incorrect assertion in nfs_swap_rw()

Jan Kara (1):
      ocfs2: fix DIO failure due to insufficient transaction credits

Jarkko Sakkinen (1):
      MAINTAINERS: TPM DEVICE DRIVER: update the W-tag

Jeff Xu (1):
      /proc/pid/smaps: add mseal info for vma

Stephen Brennan (1):
      mm: convert page type macros to enum

Suren Baghdasaryan (2):
      mm/slab: fix 'variable obj_exts set but not used' warning
      mm: handle profiling for fake memory allocations during compaction

Zhaoyang Huang (1):
      mm: fix incorrect vbq reference in purge_fragmented_block

Zi Yan (1):
      mm/migrate: make migrate_pages_batch() stats consistent

aigourensheng (1):
      selftests/mm:fix test_prctl_fork_exec return failure

yangge (1):
      mm/page_alloc: Separate THP PCP into movable and non-movable categories

 Documentation/filesystems/proc.rst                |  1 +
 MAINTAINERS                                       |  2 +-
 fs/nfs/direct.c                                   |  2 --
 fs/ocfs2/aops.c                                   |  5 +++
 fs/ocfs2/journal.c                                | 17 ++++++++++
 fs/ocfs2/journal.h                                |  2 ++
 fs/ocfs2/ocfs2_trace.h                            |  2 ++
 fs/proc/task_mmu.c                                |  3 ++
 include/linux/mm.h                                |  5 +++
 include/linux/mmzone.h                            |  9 +++---
 include/linux/page-flags.h                        | 21 +++++++------
 mm/compaction.c                                   | 11 +++++--
 mm/internal.h                                     |  5 ---
 mm/kasan/common.c                                 |  2 +-
 mm/memory.c                                       |  3 +-
 mm/migrate.c                                      |  5 +++
 mm/page_alloc.c                                   |  9 ++++--
 mm/slub.c                                         |  7 +++--
 mm/vmalloc.c                                      | 21 +++++++++----
 tools/testing/selftests/mm/ksm_functional_tests.c | 38 +++++++++++++----------
 20 files changed, 117 insertions(+), 53 deletions(-)

.

From: Alexey Klimov <alexey.klimov@linaro.org>
To: linus.walleij@linaro.org,
	srinivas.kandagatla@linaro.org,
	linux-arm-msm@vger.kernel.org
Cc: andersson@kernel.org,
	krzysztof.kozlowski@linaro.org,
	linux-gpio@vger.kernel.org,
	dmitry.baryshkov@linaro.org,
	konradybcio@kernel.org,
	linux-kernel@vger.kernel.org,
	alexey.klimov@linaro.org
Subject: [PATCH] pinctrl: qcom: lpass-lpi: increase MAX_NR_GPIO to 32
Date: Thu, 27 Jun 2024 01:36:54 +0100
Message-ID: <20240627003654.242870-1-alexey.klimov@linaro.org>
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1260370
Newsgroups: org.kernel.vger.linux-kernel,org.kernel.vger.linux-arm-msm,org.kernel.vger.linux-gpio
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

Account for more than only 23 GPIOs in LPASS Low Power Island pinctrl
generic driver. The previous value 23 was chosen to satisfy existing
SoC-specific drivers. However SM4250 LPI pinctrl uses more than 23 GPIOs
and its probe routine fails on:

        if (WARN_ON(data->npins > MAX_NR_GPIO))
                return -EINVAL;

with the following message:

[   10.709014] ------------[ cut here ]------------
[   10.719085] WARNING: CPU: 1 PID: 56 at
drivers/pinctrl/qcom/pinctrl-lpass-lpi.c:446
lpi_pinctrl_probe+0x308/0x388 [pinctrl_lpass_lpi]
[   10.719108] Modules linked in: [...]
[   10.719238] CPU: 1 PID: 56 Comm: kworker/u33:0 Not tainted
6.10.0-rc2-00012-ge45ddb1f8d34-dirty #7
[   10.719245] Hardware name: Qualcomm Technologies, Inc. QRB4210 RB2 (DT)
[   10.719250] Workqueue: events_unbound deferred_probe_work_func
[   10.719265] pstate: 20000005 (nzCv daif -PAN -UAO -TCO -DIT -SSBS BTYPE=--)
[   10.719271] pc : lpi_pinctrl_probe+0x308/0x388 [pinctrl_lpass_lpi]
[   10.719278] lr : lpi_pinctrl_probe+0x44/0x388 [pinctrl_lpass_lpi]
        ...
[   10.719357] Call trace:
[   10.719361]  lpi_pinctrl_probe+0x308/0x388 [pinctrl_lpass_lpi]
[   10.719369]  platform_probe+0x68/0xc4
[   10.719378]  really_probe+0xbc/0x29c
[   10.719384]  __driver_probe_device+0x78/0x12c
[   10.719390]  driver_probe_device+0xd8/0x15c
[   10.719395]  __device_attach_driver+0xb8/0x134
[   10.719401]  bus_for_each_drv+0x88/0xe8
[   10.719407]  __device_attach+0xa0/0x190
[   10.719412]  device_initial_probe+0x14/0x20
[   10.719418]  bus_probe_device+0xac/0xb0
[   10.719423]  deferred_probe_work_func+0x88/0xc0
[   10.719429]  process_one_work+0x150/0x294
[   10.719439]  worker_thread+0x2f8/0x408
[   10.719445]  kthread+0x110/0x114
[   10.719452]  ret_from_fork+0x10/0x20
[   10.719459] ---[ end trace 0000000000000000 ]---
[   10.719589] qcom-sm4250-lpass-lpi-pinctrl a7c0000.pinctrl: probe
with driver qcom-sm4250-lpass-lpi-pinctrl failed with error -22

Fixes: c2e5a25e8d88 ("pinctrl: qcom: Introduce SM4250 LPI pinctrl driver")
Signed-off-by: Alexey Klimov <alexey.klimov@linaro.org>
---
 drivers/pinctrl/qcom/pinctrl-lpass-lpi.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/pinctrl/qcom/pinctrl-lpass-lpi.c b/drivers/pinctrl/qcom/pinctrl-lpass-lpi.c
index 0d98008e33ee..7366aba5a199 100644
--- a/drivers/pinctrl/qcom/pinctrl-lpass-lpi.c
+++ b/drivers/pinctrl/qcom/pinctrl-lpass-lpi.c
@@ -20,7 +20,7 @@
 
 #include "pinctrl-lpass-lpi.h"
 
-#define MAX_NR_GPIO		23
+#define MAX_NR_GPIO		32
 #define GPIO_FUNC		0
 #define MAX_LPI_NUM_CLKS	2
 
-- 
2.45.2

.

From: Gavin Shan <gshan@redhat.com>
To: linux-mm@kvack.org
Cc: linux-fsdevel@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	david@redhat.com,
	willy@infradead.org,
	akpm@linux-foundation.org,
	ryan.roberts@arm.com,
	hughd@google.com,
	william.kucharski@oracle.com,
	djwong@kernel.org,
	torvalds@linux-foundation.org,
	ddutile@redhat.com,
	zhenyzha@redhat.com,
	shan.gavin@gmail.com
Subject: [PATCH v2 0/4] mm/filemap: Limit page cache size to that supported by xarray
Date: Thu, 27 Jun 2024 10:39:48 +1000
Message-ID: <20240627003953.1262512-1-gshan@redhat.com>
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1260371 org.kvack.linux-mm:201562
Newsgroups: org.kernel.vger.linux-kernel,org.kernel.vger.linux-fsdevel,org.kvack.linux-mm
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

Currently, xarray can't support arbitrary page cache size. More details
can be found from the WARN_ON() statement in xas_split_alloc(). In our
test whose code is attached below, we hit the WARN_ON() on ARM64 system
where the base page size is 64KB and huge page size is 512MB. The issue
was reported long time ago and some discussions on it can be found here
[1].

[1] https://www.spinics.net/lists/linux-xfs/msg75404.html

In order to fix the issue, we need to adjust MAX_PAGECACHE_ORDER to one
supported by xarray and avoid PMD-sized page cache if needed. The code
changes are suggested by David Hildenbrand.

PATCH[1] adjusts MAX_PAGECACHE_ORDER to that supported by xarray
PATCH[2-3] avoids PMD-sized page cache in the synchronous readahead path
PATCH[4] avoids PMD-sized page cache for shmem files if needed

Test program
============
# cat test.c
#define _GNU_SOURCE
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <string.h>
#include <fcntl.h>
#include <errno.h>
#include <sys/syscall.h>
#include <sys/mman.h>

#define TEST_XFS_FILENAME	"/tmp/data"
#define TEST_SHMEM_FILENAME	"/dev/shm/data"
#define TEST_MEM_SIZE		0x20000000

int main(int argc, char **argv)
{
	const char *filename;
	int fd = 0;
	void *buf = (void *)-1, *p;
	int pgsize = getpagesize();
	int ret;

	if (pgsize != 0x10000) {
		fprintf(stderr, "64KB base page size is required\n");
		return -EPERM;
	}

	system("echo force > /sys/kernel/mm/transparent_hugepage/shmem_enabled");
	system("rm -fr /tmp/data");
	system("rm -fr /dev/shm/data");
	system("echo 1 > /proc/sys/vm/drop_caches");

	/* Open xfs or shmem file */
	filename = TEST_XFS_FILENAME;
	if (argc > 1 && !strcmp(argv[1], "shmem"))
		filename = TEST_SHMEM_FILENAME;

	fd = open(filename, O_CREAT | O_RDWR | O_TRUNC);
	if (fd < 0) {
		fprintf(stderr, "Unable to open <%s>\n", filename);
		return -EIO;
	}

	/* Extend file size */
	ret = ftruncate(fd, TEST_MEM_SIZE);
	if (ret) {
		fprintf(stderr, "Error %d to ftruncate()\n", ret);
		goto cleanup;
	}

	/* Create VMA */
	buf = mmap(NULL, TEST_MEM_SIZE,
		   PROT_READ | PROT_WRITE, MAP_SHARED, fd, 0);
	if (buf == (void *)-1) {
		fprintf(stderr, "Unable to mmap <%s>\n", filename);
		goto cleanup;
	}

	fprintf(stdout, "mapped buffer at 0x%p\n", buf);
	ret = madvise(buf, TEST_MEM_SIZE, MADV_HUGEPAGE);
        if (ret) {
		fprintf(stderr, "Unable to madvise(MADV_HUGEPAGE)\n");
		goto cleanup;
	}

	/* Populate VMA */
	ret = madvise(buf, TEST_MEM_SIZE, MADV_POPULATE_WRITE);
	if (ret) {
		fprintf(stderr, "Error %d to madvise(MADV_POPULATE_WRITE)\n", ret);
		goto cleanup;
	}

	/* Punch the file to enforce xarray split */
	ret = fallocate(fd, FALLOC_FL_KEEP_SIZE | FALLOC_FL_PUNCH_HOLE,
        		TEST_MEM_SIZE - pgsize, pgsize);
	if (ret)
		fprintf(stderr, "Error %d to fallocate()\n", ret);

cleanup:
	if (buf != (void *)-1)
		munmap(buf, TEST_MEM_SIZE);
	if (fd > 0)
		close(fd);

	return 0;
}

# gcc test.c -o test
# cat /proc/1/smaps | grep KernelPageSize | head -n 1
KernelPageSize:       64 kB
# ./test shmem
   :
------------[ cut here ]------------
WARNING: CPU: 17 PID: 5253 at lib/xarray.c:1025 xas_split_alloc+0xf8/0x128
Modules linked in: nft_fib_inet nft_fib_ipv4 nft_fib_ipv6 nft_fib  \
nft_reject_inet nf_reject_ipv4 nf_reject_ipv6 nft_reject nft_ct    \
nft_chain_nat nf_nat nf_conntrack nf_defrag_ipv6 nf_defrag_ipv4    \
ip_set nf_tables rfkill nfnetlink vfat fat virtio_balloon          \
drm fuse xfs libcrc32c crct10dif_ce ghash_ce sha2_ce sha256_arm64  \
virtio_net sha1_ce net_failover failover virtio_console virtio_blk \
dimlib virtio_mmio
CPU: 17 PID: 5253 Comm: test Kdump: loaded Tainted: G W 6.10.0-rc5-gavin+ #12
Hardware name: QEMU KVM Virtual Machine, BIOS edk2-20240524-1.el9 05/24/2024
pstate: 83400005 (Nzcv daif +PAN -UAO +TCO +DIT -SSBS BTYPE=--)
pc : xas_split_alloc+0xf8/0x128
lr : split_huge_page_to_list_to_order+0x1c4/0x720
sp : ffff80008a92f5b0
x29: ffff80008a92f5b0 x28: ffff80008a92f610 x27: ffff80008a92f728
x26: 0000000000000cc0 x25: 000000000000000d x24: ffff0000cf00c858
x23: ffff80008a92f610 x22: ffffffdfc0600000 x21: 0000000000000000
x20: 0000000000000000 x19: ffffffdfc0600000 x18: 0000000000000000
x17: 0000000000000000 x16: 0000018000000000 x15: 3374004000000000
x14: 0000e00000000000 x13: 0000000000002000 x12: 0000000000000020
x11: 3374000000000000 x10: 3374e1c0ffff6000 x9 : ffffb463a84c681c
x8 : 0000000000000003 x7 : 0000000000000000 x6 : ffff00011c976ce0
x5 : ffffb463aa47e378 x4 : 0000000000000000 x3 : 0000000000000cc0
x2 : 000000000000000d x1 : 000000000000000c x0 : 0000000000000000
Call trace:
 xas_split_alloc+0xf8/0x128
 split_huge_page_to_list_to_order+0x1c4/0x720
 truncate_inode_partial_folio+0xdc/0x160
 shmem_undo_range+0x2bc/0x6a8
 shmem_fallocate+0x134/0x430
 vfs_fallocate+0x124/0x2e8
 ksys_fallocate+0x4c/0xa0
 __arm64_sys_fallocate+0x24/0x38
 invoke_syscall.constprop.0+0x7c/0xd8
 do_el0_svc+0xb4/0xd0
 el0_svc+0x44/0x1d8
 el0t_64_sync_handler+0x134/0x150
 el0t_64_sync+0x17c/0x180

Changelog
=========
v2:
  * Address David's comments and pick up ack tags from him
  * Swapped PATCH[v1 2/4] and PATCH[v1 3/4] and corrected fix tags
    based on comments from Andrew, David and Matthew

Gavin Shan (4):
  mm/filemap: Make MAX_PAGECACHE_ORDER acceptable to xarray
  mm/readahead: Limit page cache size in page_cache_ra_order()
  mm/filemap: Skip to create PMD-sized page cache if needed
  mm/shmem: Disable PMD-sized page cache if needed

 include/linux/pagemap.h | 11 +++++++++--
 mm/filemap.c            |  2 +-
 mm/readahead.c          |  8 ++++----
 mm/shmem.c              | 15 +++++++++++++--
 4 files changed, 27 insertions(+), 9 deletions(-)

-- 
2.45.1

.

From: Marek Vasut <marex@denx.de>
To: linux-arm-kernel@lists.infradead.org
Cc: Marek Vasut <marex@denx.de>,
	Conor Dooley <conor+dt@kernel.org>,
	Fabio Estevam <festevam@gmail.com>,
	Krzysztof Kozlowski <krzk+dt@kernel.org>,
	Pengutronix Kernel Team <kernel@pengutronix.de>,
	Rob Herring <robh@kernel.org>,
	Sascha Hauer <s.hauer@pengutronix.de>,
	Shawn Guo <shawnguo@kernel.org>,
	devicetree@vger.kernel.org,
	imx@lists.linux.dev,
	kernel@dh-electronics.com,
	linux-kernel@vger.kernel.org
Subject: [PATCH] arm64: dts: imx8mp: Update Fast ethernet PHY MDIO addresses to match DH i.MX8MP DHCOM rev.200
Date: Thu, 27 Jun 2024 02:58:33 +0200
Message-ID: <20240627005913.326662-1-marex@denx.de>
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1260377
Newsgroups: org.kernel.vger.linux-kernel,dev.linux.lists.imx,org.infradead.lists.linux-arm-kernel,org.kernel.vger.linux-devicetree
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

The production DH i.MX8MP DHCOM SoM rev.200 uses updated PHY MDIO addresses
for the Fast ethernet PHYs. Update the base SoM DT to cater for this change.

Signed-off-by: Marek Vasut <marex@denx.de>
---
Cc: Conor Dooley <conor+dt@kernel.org>
Cc: Fabio Estevam <festevam@gmail.com>
Cc: Krzysztof Kozlowski <krzk+dt@kernel.org>
Cc: Pengutronix Kernel Team <kernel@pengutronix.de>
Cc: Rob Herring <robh@kernel.org>
Cc: Sascha Hauer <s.hauer@pengutronix.de>
Cc: Shawn Guo <shawnguo@kernel.org>
Cc: devicetree@vger.kernel.org
Cc: imx@lists.linux.dev
Cc: kernel@dh-electronics.com
Cc: linux-arm-kernel@lists.infradead.org
Cc: linux-kernel@vger.kernel.org
---
 arch/arm64/boot/dts/freescale/imx8mp-dhcom-som.dtsi | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/arch/arm64/boot/dts/freescale/imx8mp-dhcom-som.dtsi b/arch/arm64/boot/dts/freescale/imx8mp-dhcom-som.dtsi
index 848df53c48685..4f7721a44daaa 100644
--- a/arch/arm64/boot/dts/freescale/imx8mp-dhcom-som.dtsi
+++ b/arch/arm64/boot/dts/freescale/imx8mp-dhcom-som.dtsi
@@ -110,14 +110,14 @@ mdio {
 		#size-cells = <0>;
 
 		/* Up to one of these two PHYs may be populated. */
-		ethphy0f: ethernet-phy@0 { /* SMSC LAN8740Ai */
+		ethphy0f: ethernet-phy@1 { /* SMSC LAN8740Ai */
 			compatible = "ethernet-phy-id0007.c110",
 				     "ethernet-phy-ieee802.3-c22";
 			interrupt-parent = <&gpio3>;
 			interrupts = <19 IRQ_TYPE_LEVEL_LOW>;
 			pinctrl-0 = <&pinctrl_ethphy0>;
 			pinctrl-names = "default";
-			reg = <0>;
+			reg = <1>;
 			reset-assert-us = <1000>;
 			reset-deassert-us = <1000>;
 			reset-gpios = <&ioexp 4 GPIO_ACTIVE_LOW>;
@@ -156,14 +156,14 @@ mdio {
 		#size-cells = <0>;
 
 		/* Up to one PHY may be populated. */
-		ethphy1f: ethernet-phy@1 { /* SMSC LAN8740Ai */
+		ethphy1f: ethernet-phy@2 { /* SMSC LAN8740Ai */
 			compatible = "ethernet-phy-id0007.c110",
 				     "ethernet-phy-ieee802.3-c22";
 			interrupt-parent = <&gpio4>;
 			interrupts = <3 IRQ_TYPE_LEVEL_LOW>;
 			pinctrl-0 = <&pinctrl_ethphy1>;
 			pinctrl-names = "default";
-			reg = <1>;
+			reg = <2>;
 			reset-assert-us = <1000>;
 			reset-deassert-us = <1000>;
 			reset-gpios = <&gpio4 2 GPIO_ACTIVE_LOW>;
-- 
2.43.0

.

From: Kai Huang <kai.huang@intel.com>
To: kvm@vger.kernel.org
Cc: seanjc@google.com,
	pbonzini@redhat.com,
	linux-kernel@vger.kernel.org
Subject: [PATCH] KVM: VMX: Switch __vmx_exit() and kvm_x86_vendor_exit() in vmx_exit()
Date: Thu, 27 Jun 2024 13:05:24 +1200
Message-ID: <20240627010524.3732488-1-kai.huang@intel.com>
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1260381
Newsgroups: org.kernel.vger.linux-kernel,org.kernel.vger.kvm
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

In the vmx_init() error handling path, the __vmx_exit() is done before
kvm_x86_vendor_exit().  They should follow the same order in vmx_exit().

But currently __vmx_exit() is done after kvm_x86_vendor_exit() in
vmx_exit().  Switch the order of them to fix.

Fixes: e32b120071ea ("KVM: VMX: Do _all_ initialization before exposing /dev/kvm to userspace")
Signed-off-by: Kai Huang <kai.huang@intel.com>
---
 arch/x86/kvm/vmx/vmx.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/arch/x86/kvm/vmx/vmx.c b/arch/x86/kvm/vmx/vmx.c
index b3c83c06f826..8e7371c9648a 100644
--- a/arch/x86/kvm/vmx/vmx.c
+++ b/arch/x86/kvm/vmx/vmx.c
@@ -8629,9 +8629,9 @@ static void __vmx_exit(void)
 static void vmx_exit(void)
 {
 	kvm_exit();
+	__vmx_exit();
 	kvm_x86_vendor_exit();
 
-	__vmx_exit();
 }
 module_exit(vmx_exit);
 

base-commit: c2f38f75fc89ebd6c0be5856509329390102d8ba
-- 
2.43.2

.

From: Ma Ke <make24@iscas.ac.cn>
To: shuah@kernel.org,
	usama.anjum@collabora.com,
	swarupkotikalapudi@gmail.com,
	make24@iscas.ac.cn,
	amer.shanawany@gmail.com,
	kees@kernel.org,
	akpm@linux-foundation.org,
	luto@kernel.org
Cc: linux-kselftest@vger.kernel.org,
	linux-kernel@vger.kernel.org
Subject: [PATCH v2] selftests/capabilities: Fix possible file leak in copy_fromat_to
Date: Thu, 27 Jun 2024 09:57:32 +0800
Message-Id: <20240627015732.2974078-1-make24@iscas.ac.cn>
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1260392
Newsgroups: org.kernel.vger.linux-kernel,org.kernel.vger.linux-kselftest
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

The open() function returns -1 on error. openat() and open() initialize
'from' and 'to', and only 'from' validated with 'if' statement. If the
initialization of variable 'to' fails, we should better check the value
of 'to' and close 'from' to avoid possible file leak. Improve the checking
of 'from' additionally.

Fixes: 32ae976ed3b5 ("selftests/capabilities: Add tests for capability evolution")
Signed-off-by: Ma Ke <make24@iscas.ac.cn>
---
Changes in v2:
- modified the patch according to suggestions;
- found by customized static analysis tool.
---
 tools/testing/selftests/capabilities/test_execve.c | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/tools/testing/selftests/capabilities/test_execve.c b/tools/testing/selftests/capabilities/test_execve.c
index 47bad7ddc5bc..6406ab6aa1f5 100644
--- a/tools/testing/selftests/capabilities/test_execve.c
+++ b/tools/testing/selftests/capabilities/test_execve.c
@@ -145,10 +145,14 @@ static void chdir_to_tmpfs(void)
 static void copy_fromat_to(int fromfd, const char *fromname, const char *toname)
 {
 	int from = openat(fromfd, fromname, O_RDONLY);
-	if (from == -1)
+	if (from < 0)
 		ksft_exit_fail_msg("open copy source - %s\n", strerror(errno));
 
 	int to = open(toname, O_CREAT | O_WRONLY | O_EXCL, 0700);
+	if (to < 0) {
+		close(from);
+		ksft_exit_fail_msg("open copy destination - %s\n", strerror(errno));
+	}
 
 	while (true) {
 		char buf[4096];
-- 
2.25.1

.

From: Changhuang Liang <changhuang.liang@starfivetech.com>
To: Vinod Koul <vkoul@kernel.org>,
	Kishon Vijay Abraham I <kishon@kernel.org>
Cc: Keith Zhao <keith.zhao@starfivetech.com>,
	Shengyang Chen <shengyang.chen@starfivetech.com>,
	Changhuang Liang <changhuang.liang@starfivetech.com>,
	linux-phy@lists.infradead.org,
	linux-kernel@vger.kernel.org
Subject: [PATCH] phy: starfive: Correct the dphy configure process
Date: Wed, 26 Jun 2024 19:00:59 -0700
Message-Id: <20240627020059.163535-1-changhuang.liang@starfivetech.com>
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1260393
Newsgroups: org.kernel.vger.linux-kernel,org.infradead.lists.linux-phy
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

We actually want to calculate the alignment values first, then
use the alignment value to look up the data from reg_configs[].

Fixes: d3ab79553308 ("phy: starfive: Add mipi dphy tx support")

Reviewed-by: Shengyang Chen <shengyang.chen@starfivetech.com>
Signed-off-by: Changhuang Liang <changhuang.liang@starfivetech.com>
---
 drivers/phy/starfive/phy-jh7110-dphy-tx.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/drivers/phy/starfive/phy-jh7110-dphy-tx.c b/drivers/phy/starfive/phy-jh7110-dphy-tx.c
index 61b0da6096e5..c64d1c91b130 100644
--- a/drivers/phy/starfive/phy-jh7110-dphy-tx.c
+++ b/drivers/phy/starfive/phy-jh7110-dphy-tx.c
@@ -235,12 +235,14 @@ static int stf_dphy_configure(struct phy *phy, union phy_configure_opts *opts)
 	const struct stf_dphy_config *p = reg_configs;
 	unsigned long alignment  = STF_DPHY_BITRATE_ALIGN;
 	u32 bitrate = opts->mipi_dphy.hs_clk_rate;
-	u32 i = stf_dphy_get_config_index(bitrate);
 	u32 tmp;
+	u32 i;
 
 	if (bitrate % alignment)
 		bitrate += alignment - (bitrate % alignment);
 
+	i = stf_dphy_get_config_index(bitrate);
+
 	tmp = readl(dphy->topsys + STF_DPHY_APBIFSAIF_SYSCFG(100));
 	tmp &= ~STF_DPHY_REFCLK_IN_SEL;
 	tmp |= FIELD_PREP(STF_DPHY_REFCLK_IN_SEL, STF_DPHY_REFCLK_12M);
-- 
2.25.1

.

From: Ma Ke <make24@iscas.ac.cn>
To: kherbst@redhat.com,
	lyude@redhat.com,
	dakr@redhat.com,
	airlied@gmail.com,
	daniel@ffwll.ch,
	airlied@redhat.com,
	bskeggs@redhat.com
Cc: dri-devel@lists.freedesktop.org,
	nouveau@lists.freedesktop.org,
	linux-kernel@vger.kernel.org,
	Ma Ke <make24@iscas.ac.cn>
Subject: [PATCH v2] drm/nouveau: fix null pointer dereference in nouveau_connector_get_modes
Date: Thu, 27 Jun 2024 10:27:32 +0800
Message-Id: <20240627022732.2978601-1-make24@iscas.ac.cn>
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1260401
Newsgroups: org.kernel.vger.linux-kernel,org.freedesktop.lists.dri-devel
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

In nouveau_connector_get_modes(), the return value of drm_mode_duplicate()
is assigned to mode, which will lead to a possible NULL pointer
dereference on failure of drm_mode_duplicate(). Add a check to avoid npd.

Fixes: 6ee738610f41 ("drm/nouveau: Add DRM driver for NVIDIA GPUs")
Signed-off-by: Ma Ke <make24@iscas.ac.cn>
---
Changes in v2:
- modified the patch according to suggestions.
---
 drivers/gpu/drm/nouveau/nouveau_connector.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/drivers/gpu/drm/nouveau/nouveau_connector.c b/drivers/gpu/drm/nouveau/nouveau_connector.c
index 856b3ef5edb8..0c71d761d378 100644
--- a/drivers/gpu/drm/nouveau/nouveau_connector.c
+++ b/drivers/gpu/drm/nouveau/nouveau_connector.c
@@ -1001,6 +1001,9 @@ nouveau_connector_get_modes(struct drm_connector *connector)
 		struct drm_display_mode *mode;
 
 		mode = drm_mode_duplicate(dev, nv_connector->native_mode);
+		if (!mode)
+			return 0;
+
 		drm_mode_probed_add(connector, mode);
 		ret = 1;
 	}
-- 
2.25.1

.

From: Lu Baolu <baolu.lu@linux.intel.com>
To: Joerg Roedel <joro@8bytes.org>,
	Will Deacon <will@kernel.org>,
	Robin Murphy <robin.murphy@arm.com>,
	Jason Gunthorpe <jgg@ziepe.ca>,
	Kevin Tian <kevin.tian@intel.com>
Cc: iommu@lists.linux.dev,
	linux-kernel@vger.kernel.org,
	Lu Baolu <baolu.lu@linux.intel.com>
Subject: [PATCH v2 0/2] iommu/vt-d: Refactor PRI enable/disable steps
Date: Thu, 27 Jun 2024 10:31:19 +0800
Message-Id: <20240627023121.50166-1-baolu.lu@linux.intel.com>
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1260404
Newsgroups: org.kernel.vger.linux-kernel,dev.linux.lists.iommu
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

The page fault handling framework within the iommu core has defined the
PRI enable and disable flows in the comments for the
iopf_queue_remove_device() interface. This series aims to refactor the
PRI enable/disable steps in the Intel iommu driver to align with these
definitions.

Change log:

v2:
 - The cache invalidation for a context entry change should not affect
   the devices not related to the entry. Fix this by always using
   device-selective cache invalidation.
v1:
 - https://lore.kernel.org/linux-iommu/20240606034019.42795-1-baolu.lu@linux.intel.com/

Lu Baolu (2):
  iommu/vt-d: Add helper to flush caches for context change
  iommu/vt-d: Refactor PCI PRI enabling/disabling callbacks

 drivers/iommu/intel/iommu.h |  13 +++++
 drivers/iommu/intel/iommu.c |  89 ++++++++++++++++++-------------
 drivers/iommu/intel/pasid.c | 103 ++++++++++++++++++++++++++++--------
 3 files changed, 148 insertions(+), 57 deletions(-)

-- 
2.34.1

.

Date: Thu, 27 Jun 2024 10:41:35 +0800
From: kernel test robot <oliver.sang@intel.com>
To: Linus Torvalds <torvalds@linux-foundation.org>
CC: <oe-lkp@lists.linux.dev>, <lkp@intel.com>, Linux Memory Management List
	<linux-mm@kvack.org>, Christian Brauner <brauner@kernel.org>, Mateusz Guzik
	<mjguzik@gmail.com>, <linux-kernel@vger.kernel.org>, <ying.huang@intel.com>,
	<feng.tang@intel.com>, <fengwei.yin@intel.com>, <oliver.sang@intel.com>
Subject: [linux-next:master] [lockref]  d042dae6ad:  unixbench.throughput
 -33.7% regression
Message-ID: <202406270912.633e6c61-oliver.sang@intel.com>
Content-Type: text/plain; charset="iso-8859-1"
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1260408 org.kvack.linux-mm:201571
Newsgroups: org.kernel.vger.linux-kernel,dev.linux.lists.oe-lkp,org.kvack.linux-mm
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail



Hello,

kernel test robot noticed a -33.7% regression of unixbench.throughput on:


commit: d042dae6ad74df8a00ee8a3c6b77b53bc9e32f64 ("lockref: speculatively spin waiting for the lock to be released")
https://git.kernel.org/cgit/linux/kernel/git/next/linux-next.git master

testcase: unixbench
test machine: 64 threads 2 sockets Intel(R) Xeon(R) Gold 6346 CPU @ 3.10GHz (Ice Lake) with 256G memory
parameters:

	runtime: 300s
	nr_task: 100%
	test: shell1
	cpufreq_governor: performance


In addition to that, the commit also has significant impact on the following tests:

+------------------+-------------------------------------------------------------------------------------------+
| testcase: change | stress-ng: stress-ng.getdent.ops_per_sec -56.5% regression                                |
| test machine     | 64 threads 2 sockets Intel(R) Xeon(R) Gold 6346 CPU @ 3.10GHz (Ice Lake) with 256G memory |
| test parameters  | cpufreq_governor=performance                                                              |
|                  | disk=1HDD                                                                                 |
|                  | fs=ext4                                                                                   |
|                  | nr_threads=100%                                                                           |
|                  | test=getdent                                                                              |
|                  | testtime=60s                                                                              |
+------------------+-------------------------------------------------------------------------------------------+
| testcase: change | stress-ng: stress-ng.getdent.ops_per_sec -54.6% regression                                |
| test machine     | 64 threads 2 sockets Intel(R) Xeon(R) Gold 6346 CPU @ 3.10GHz (Ice Lake) with 256G memory |
| test parameters  | cpufreq_governor=performance                                                              |
|                  | disk=1HDD                                                                                 |
|                  | fs=xfs                                                                                    |
|                  | nr_threads=100%                                                                           |
|                  | test=getdent                                                                              |
|                  | testtime=60s                                                                              |
+------------------+-------------------------------------------------------------------------------------------+
| testcase: change | stress-ng: stress-ng.handle.ops_per_sec -60.2% regression                                 |
| test machine     | 64 threads 2 sockets Intel(R) Xeon(R) Gold 6346 CPU @ 3.10GHz (Ice Lake) with 256G memory |
| test parameters  | cpufreq_governor=performance                                                              |
|                  | disk=1HDD                                                                                 |
|                  | fs=btrfs                                                                                  |
|                  | nr_threads=100%                                                                           |
|                  | test=handle                                                                               |
|                  | testtime=60s                                                                              |
+------------------+-------------------------------------------------------------------------------------------+


If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <oliver.sang@intel.com>
| Closes: https://lore.kernel.org/oe-lkp/202406270912.633e6c61-oliver.sang@intel.com


Details are as below:
-------------------------------------------------------------------------------------------------->


The kernel config and materials to reproduce are available at:
https://download.01.org/0day-ci/archive/20240627/202406270912.633e6c61-oliver.sang@intel.com

=========================================================================================
compiler/cpufreq_governor/kconfig/nr_task/rootfs/runtime/tbox_group/test/testcase:
  gcc-13/performance/x86_64-rhel-8.3/100%/debian-12-x86_64-20240206.cgz/300s/lkp-icl-2sp9/shell1/unixbench

commit: 
  267574dee6 ("bcachefs: remove now spurious i_state initialization")
  d042dae6ad ("lockref: speculatively spin waiting for the lock to be released")

267574dee6ae0da6 d042dae6ad74df8a00ee8a3c6b7 
---------------- --------------------------- 
         %stddev     %change         %stddev
             \          |                \  
     66668  21%     -42.2%      38533  38%  numa-meminfo.node1.Mapped
     18895           -16.6%      15755        uptime.idle
 1.694e+10           -19.3%  1.368e+10        cpuidle..time
  1.73e+08           -34.6%  1.131e+08        cpuidle..usage
   2519063           -10.4%    2257044        meminfo.Active
   2518692           -10.4%    2256964        meminfo.Active(anon)
     98218   3%     -14.3%      84210        meminfo.Mapped
   2632805           -10.8%    2348382        meminfo.Shmem
 4.637e+08           -33.5%  3.083e+08        numa-numastat.node0.local_node
 4.638e+08           -33.5%  3.083e+08        numa-numastat.node0.numa_hit
 4.623e+08           -33.4%  3.078e+08        numa-numastat.node1.local_node
 4.624e+08           -33.4%  3.078e+08        numa-numastat.node1.numa_hit
     42.33           -19.7%      33.98        vmstat.cpu.id
     38.88   2%     +19.5%      46.46   2%  vmstat.procs.r
    598112           -31.3%     410958        vmstat.system.cs
    339581           -24.9%     255122        vmstat.system.in
 4.637e+08           -33.5%  3.083e+08        numa-vmstat.node0.numa_hit
 4.637e+08           -33.5%  3.083e+08        numa-vmstat.node0.numa_local
     16902  22%     -41.4%       9904  38%  numa-vmstat.node1.nr_mapped
 4.623e+08           -33.4%  3.078e+08        numa-vmstat.node1.numa_hit
 4.623e+08           -33.4%  3.078e+08        numa-vmstat.node1.numa_local
      3589   2%     -21.5%       2817        perf-c2c.DRAM.local
     23348           -13.7%      20144        perf-c2c.DRAM.remote
     21000           -12.5%      18378        perf-c2c.HITM.local
     15566           -15.1%      13213        perf-c2c.HITM.remote
     36567           -13.6%      31591        perf-c2c.HITM.total
     42.20            -8.4       33.82        mpstat.cpu.all.idle%
      0.00  40%      -0.0        0.00  46%  mpstat.cpu.all.iowait%
      0.94            -0.2        0.72        mpstat.cpu.all.irq%
      0.58            -0.1        0.44        mpstat.cpu.all.soft%
     48.63           +11.3       59.91        mpstat.cpu.all.sys%
      7.66            -2.5        5.11        mpstat.cpu.all.usr%
     63.66           +12.8%      71.79        mpstat.max_utilization_pct
     32070           -33.7%      21253        unixbench.score
    135979           -33.7%      90114        unixbench.throughput
   8158942           -25.3%    6093181        unixbench.time.involuntary_context_switches
    290307   3%     -45.0%     159813   3%  unixbench.time.major_page_faults
 1.151e+09           -33.6%  7.644e+08        unixbench.time.minor_page_faults
      3513           +16.5%       4092        unixbench.time.percent_of_cpu_this_job_got
     17556           +34.0%      23525        unixbench.time.system_time
      4600           -50.2%       2290        unixbench.time.user_time
  1.87e+08           -26.4%  1.377e+08        unixbench.time.voluntary_context_switches
  85735355           -33.7%   56816908        unixbench.workload
    629615           -10.4%     564266        proc-vmstat.nr_active_anon
   1444170            -5.0%    1372570        proc-vmstat.nr_file_pages
    208895            -2.6%     203360        proc-vmstat.nr_inactive_anon
     24755   3%     -14.4%      21183        proc-vmstat.nr_mapped
    658148           -10.8%     587129        proc-vmstat.nr_shmem
     26716            -1.3%      26369        proc-vmstat.nr_slab_reclaimable
     47823            -2.1%      46838        proc-vmstat.nr_slab_unreclaimable
    629615           -10.4%     564266        proc-vmstat.nr_zone_active_anon
    208896            -2.7%     203360        proc-vmstat.nr_zone_inactive_anon
 9.261e+08           -33.5%  6.161e+08        proc-vmstat.numa_hit
  9.26e+08           -33.5%  6.161e+08        proc-vmstat.numa_local
    637452            -8.6%     582748        proc-vmstat.pgactivate
 1.644e+09           -33.5%  1.093e+09        proc-vmstat.pgalloc_normal
 1.154e+09           -33.5%  7.669e+08        proc-vmstat.pgfault
 1.643e+09           -33.5%  1.092e+09        proc-vmstat.pgfree
  56834055           -33.4%   37832459        proc-vmstat.pgreuse
   1352648           -33.5%     898973        proc-vmstat.thp_fault_alloc
  18937408           -33.5%   12585970        proc-vmstat.unevictable_pgs_culled
      3.37            -3.3%       3.26        perf-stat.i.MPKI
 1.367e+10           -26.4%  1.006e+10        perf-stat.i.branch-instructions
      1.65            -0.1        1.54        perf-stat.i.branch-miss-rate%
 2.225e+08           -31.8%  1.517e+08        perf-stat.i.branch-misses
     22.57            +0.6       23.19        perf-stat.i.cache-miss-rate%
 2.309e+08           -30.4%  1.607e+08        perf-stat.i.cache-misses
  1.01e+09           -32.4%  6.832e+08        perf-stat.i.cache-references
    600019           -31.3%     412413        perf-stat.i.context-switches
      2.03           +54.9%       3.14        perf-stat.i.cpi
 1.388e+11           +12.2%  1.558e+11        perf-stat.i.cpu-cycles
    149359           -41.6%      87198        perf-stat.i.cpu-migrations
    607.93           +58.6%     964.42        perf-stat.i.cycles-between-cache-misses
 6.741e+10           -28.0%  4.856e+10        perf-stat.i.instructions
      0.50           -33.4%       0.33        perf-stat.i.ipc
    459.84   3%     -45.0%     252.95   3%  perf-stat.i.major-faults
     67.57           -33.6%      44.90        perf-stat.i.metric.K/sec
   1788636           -33.6%    1187710        perf-stat.i.minor-faults
   1789096           -33.6%    1187963        perf-stat.i.page-faults
      3.42           -19.4%       2.76  44%  perf-stat.overall.MPKI
      1.63            -0.4        1.26  44%  perf-stat.overall.branch-miss-rate%
      0.49           -46.3%       0.26  44%  perf-stat.overall.ipc
 1.365e+10           -38.5%  8.401e+09  44%  perf-stat.ps.branch-instructions
 2.221e+08           -42.9%  1.268e+08  44%  perf-stat.ps.branch-misses
 2.305e+08           -41.7%  1.343e+08  44%  perf-stat.ps.cache-misses
 1.009e+09           -43.3%  5.714e+08  44%  perf-stat.ps.cache-references
    598981           -42.5%     344546  44%  perf-stat.ps.context-switches
    149116           -51.1%      72968  44%  perf-stat.ps.cpu-migrations
 6.731e+10           -39.8%  4.055e+10  44%  perf-stat.ps.instructions
    459.54   3%     -54.1%     211.13  44%  perf-stat.ps.major-faults
   1785795           -44.4%     992658  44%  perf-stat.ps.minor-faults
   1786254           -44.4%     992869  44%  perf-stat.ps.page-faults
 4.252e+13           -39.7%  2.562e+13  44%  perf-stat.total.instructions
  12248217           +18.2%   14471390        sched_debug.cfs_rq:/.avg_vruntime.avg
  13350177   2%     +15.0%   15350925        sched_debug.cfs_rq:/.avg_vruntime.max
  11977215           +18.2%   14153258        sched_debug.cfs_rq:/.avg_vruntime.min
      0.60   4%     +23.0%       0.74   3%  sched_debug.cfs_rq:/.h_nr_running.avg
   1255909  22%     -41.9%     730155  49%  sched_debug.cfs_rq:/.left_deadline.stddev
   1255900  22%     -41.9%     730149  49%  sched_debug.cfs_rq:/.left_vruntime.stddev
     25775  14%     -31.9%      17541  24%  sched_debug.cfs_rq:/.load.avg
    111073  20%     -48.6%      57125  57%  sched_debug.cfs_rq:/.load.stddev
     72.86   4%     -23.0%      56.07  11%  sched_debug.cfs_rq:/.load_avg.avg
     13.98   4%     -17.7%      11.52   5%  sched_debug.cfs_rq:/.load_avg.min
    167.77   7%     -20.9%     132.67  19%  sched_debug.cfs_rq:/.load_avg.stddev
  12248217           +18.2%   14471390        sched_debug.cfs_rq:/.min_vruntime.avg
  13350177   2%     +15.0%   15350925        sched_debug.cfs_rq:/.min_vruntime.max
  11977215           +18.2%   14153258        sched_debug.cfs_rq:/.min_vruntime.min
      0.56   4%     +13.3%       0.63   2%  sched_debug.cfs_rq:/.nr_running.avg
     33.64   9%     -31.9%      22.91  25%  sched_debug.cfs_rq:/.removed.load_avg.avg
    152.13   9%     -22.1%     118.47  23%  sched_debug.cfs_rq:/.removed.load_avg.stddev
   1255900  22%     -41.9%     730149  49%  sched_debug.cfs_rq:/.right_vruntime.stddev
     95.73   4%     +38.2%     132.32   3%  sched_debug.cfs_rq:/.util_est.avg
    514.30   4%     +21.0%     622.26   9%  sched_debug.cfs_rq:/.util_est.max
    126.26   3%     +14.4%     144.47   5%  sched_debug.cfs_rq:/.util_est.stddev
    157210   2%     +19.3%     187543        sched_debug.cpu.avg_idle.avg
     38689  11%     +45.3%      56231   4%  sched_debug.cpu.avg_idle.min
   1131966   3%     +13.6%    1285770        sched_debug.cpu.curr->pid.avg
      0.61   4%     +23.0%       0.75   3%  sched_debug.cpu.nr_running.avg
   2807835           -31.2%    1931685        sched_debug.cpu.nr_switches.avg
   2868532           -31.3%    1970626        sched_debug.cpu.nr_switches.max
   2711163           -31.1%    1866782        sched_debug.cpu.nr_switches.min
     31518  11%     -36.8%      19934  21%  sched_debug.cpu.nr_switches.stddev
      0.88  14%     -29.6%       0.62  14%  sched_debug.cpu.nr_uninterruptible.avg
     50293  22%     -71.2%      14501  18%  sched_debug.cpu.nr_uninterruptible.max
    -43562           -52.2%     -20815        sched_debug.cpu.nr_uninterruptible.min
     19392  13%     -63.2%       7134   9%  sched_debug.cpu.nr_uninterruptible.stddev
      7.02   4%      -4.1        2.92   7%  perf-profile.calltrace.cycles-pp.ksys_mmap_pgoff.do_syscall_64.entry_SYSCALL_64_after_hwframe
      7.00   4%      -4.1        2.91   7%  perf-profile.calltrace.cycles-pp.vm_mmap_pgoff.ksys_mmap_pgoff.do_syscall_64.entry_SYSCALL_64_after_hwframe
      6.96   4%      -4.1        2.88   7%  perf-profile.calltrace.cycles-pp.do_mmap.vm_mmap_pgoff.ksys_mmap_pgoff.do_syscall_64.entry_SYSCALL_64_after_hwframe
      6.89   4%      -4.0        2.84   7%  perf-profile.calltrace.cycles-pp.mmap_region.do_mmap.vm_mmap_pgoff.ksys_mmap_pgoff.do_syscall_64
      7.34            -3.7        3.64   6%  perf-profile.calltrace.cycles-pp.bprm_execve.do_execveat_common.__x64_sys_execve.do_syscall_64.entry_SYSCALL_64_after_hwframe
      6.86            -3.5        3.31        perf-profile.calltrace.cycles-pp.exec_binprm.bprm_execve.do_execveat_common.__x64_sys_execve.do_syscall_64
      6.84            -3.5        3.30        perf-profile.calltrace.cycles-pp.search_binary_handler.exec_binprm.bprm_execve.do_execveat_common.__x64_sys_execve
      7.94            -3.5        4.44        perf-profile.calltrace.cycles-pp.execve
      7.93            -3.5        4.44        perf-profile.calltrace.cycles-pp.do_syscall_64.entry_SYSCALL_64_after_hwframe.execve
      7.93            -3.5        4.44        perf-profile.calltrace.cycles-pp.entry_SYSCALL_64_after_hwframe.execve
      7.92            -3.5        4.44        perf-profile.calltrace.cycles-pp.__x64_sys_execve.do_syscall_64.entry_SYSCALL_64_after_hwframe.execve
      7.92            -3.5        4.43        perf-profile.calltrace.cycles-pp.do_execveat_common.__x64_sys_execve.do_syscall_64.entry_SYSCALL_64_after_hwframe.execve
      6.72            -3.5        3.26        perf-profile.calltrace.cycles-pp.load_elf_binary.search_binary_handler.exec_binprm.bprm_execve.do_execveat_common
      4.60   8%      -2.8        1.84   7%  perf-profile.calltrace.cycles-pp.do_vmi_align_munmap.do_vmi_munmap.mmap_region.do_mmap.vm_mmap_pgoff
      6.78            -2.7        4.03        perf-profile.calltrace.cycles-pp.asm_exc_page_fault
      4.56   4%      -2.7        1.86   7%  perf-profile.calltrace.cycles-pp.do_vmi_munmap.mmap_region.do_mmap.vm_mmap_pgoff.ksys_mmap_pgoff
      5.32            -2.7        2.63   2%  perf-profile.calltrace.cycles-pp.__mmput.exit_mm.do_exit.do_group_exit.__x64_sys_exit_group
      5.32            -2.7        2.64   2%  perf-profile.calltrace.cycles-pp.exit_mm.do_exit.do_group_exit.__x64_sys_exit_group.do_syscall_64
      5.30            -2.7        2.62   2%  perf-profile.calltrace.cycles-pp.exit_mmap.__mmput.exit_mm.do_exit.do_group_exit
      6.54            -2.6        3.92        perf-profile.calltrace.cycles-pp.__x64_sys_exit_group.do_syscall_64.entry_SYSCALL_64_after_hwframe
      6.54            -2.6        3.92        perf-profile.calltrace.cycles-pp.do_exit.do_group_exit.__x64_sys_exit_group.do_syscall_64.entry_SYSCALL_64_after_hwframe
      6.54            -2.6        3.92        perf-profile.calltrace.cycles-pp.do_group_exit.__x64_sys_exit_group.do_syscall_64.entry_SYSCALL_64_after_hwframe
      6.24            -2.5        3.71        perf-profile.calltrace.cycles-pp.exc_page_fault.asm_exc_page_fault
      6.21            -2.5        3.70        perf-profile.calltrace.cycles-pp.do_user_addr_fault.exc_page_fault.asm_exc_page_fault
      5.68            -2.3        3.38        perf-profile.calltrace.cycles-pp.handle_mm_fault.do_user_addr_fault.exc_page_fault.asm_exc_page_fault
      5.47            -2.2        3.26        perf-profile.calltrace.cycles-pp.__handle_mm_fault.handle_mm_fault.do_user_addr_fault.exc_page_fault.asm_exc_page_fault
      4.84            -2.0        2.80   2%  perf-profile.calltrace.cycles-pp.common_startup_64
      4.77            -2.0        2.76   2%  perf-profile.calltrace.cycles-pp.start_secondary.common_startup_64
      4.76            -2.0        2.75   2%  perf-profile.calltrace.cycles-pp.do_idle.cpu_startup_entry.start_secondary.common_startup_64
      4.76            -2.0        2.75   2%  perf-profile.calltrace.cycles-pp.cpu_startup_entry.start_secondary.common_startup_64
      2.92   4%      -1.7        1.20   7%  perf-profile.calltrace.cycles-pp.__split_vma.do_vmi_align_munmap.do_vmi_munmap.mmap_region.do_mmap
      4.09            -1.7        2.38   2%  perf-profile.calltrace.cycles-pp.cpuidle_idle_call.do_idle.cpu_startup_entry.start_secondary.common_startup_64
      3.80            -1.6        2.22   2%  perf-profile.calltrace.cycles-pp.cpuidle_enter.cpuidle_idle_call.do_idle.cpu_startup_entry.start_secondary
      3.79            -1.6        2.21   2%  perf-profile.calltrace.cycles-pp.cpuidle_enter_state.cpuidle_enter.cpuidle_idle_call.do_idle.cpu_startup_entry
      3.76            -1.6        2.19   2%  perf-profile.calltrace.cycles-pp.asm_sysvec_call_function_single.acpi_safe_halt.acpi_idle_enter.cpuidle_enter_state.cpuidle_enter
      3.37   6%      -1.6        1.80   2%  perf-profile.calltrace.cycles-pp.copy_process.kernel_clone.__do_sys_clone.do_syscall_64.entry_SYSCALL_64_after_hwframe
      3.65            -1.5        2.12   2%  perf-profile.calltrace.cycles-pp.acpi_idle_enter.cpuidle_enter_state.cpuidle_enter.cpuidle_idle_call.do_idle
      2.49   5%      -1.5        0.96   8%  perf-profile.calltrace.cycles-pp.vma_prepare.__split_vma.do_vmi_align_munmap.do_vmi_munmap.mmap_region
      3.04            -1.4        1.60   2%  perf-profile.calltrace.cycles-pp.begin_new_exec.load_elf_binary.search_binary_handler.exec_binprm.bprm_execve
      3.61            -1.4        2.19        perf-profile.calltrace.cycles-pp._Fork
      2.18   5%      -1.4        0.78  10%  perf-profile.calltrace.cycles-pp.down_write.vma_prepare.__split_vma.do_vmi_align_munmap.do_vmi_munmap
      2.15   5%      -1.4        0.77  10%  perf-profile.calltrace.cycles-pp.rwsem_down_write_slowpath.down_write.vma_prepare.__split_vma.do_vmi_align_munmap
      2.88            -1.4        1.51        perf-profile.calltrace.cycles-pp.exec_mmap.begin_new_exec.load_elf_binary.search_binary_handler.exec_binprm
      2.13   5%      -1.4        0.76  10%  perf-profile.calltrace.cycles-pp.rwsem_optimistic_spin.rwsem_down_write_slowpath.down_write.vma_prepare.__split_vma
      2.25            -1.4        0.88   2%  perf-profile.calltrace.cycles-pp.zap_pmd_range.unmap_page_range.unmap_vmas.exit_mmap.__mmput
      2.21            -1.3        0.87   2%  perf-profile.calltrace.cycles-pp.zap_pte_range.zap_pmd_range.unmap_page_range.unmap_vmas.exit_mmap
      2.15   4%      -1.3        0.84   4%  perf-profile.calltrace.cycles-pp.free_pgtables.exit_mmap.__mmput.exit_mm.do_exit
      1.91   5%      -1.3        0.64  11%  perf-profile.calltrace.cycles-pp.osq_lock.rwsem_optimistic_spin.rwsem_down_write_slowpath.down_write.vma_prepare
      2.62            -1.3        1.36   2%  perf-profile.calltrace.cycles-pp.__mmput.exec_mmap.begin_new_exec.load_elf_binary.search_binary_handler
      3.22            -1.3        1.96        perf-profile.calltrace.cycles-pp.__do_sys_clone.do_syscall_64.entry_SYSCALL_64_after_hwframe._Fork
      3.22            -1.3        1.96   2%  perf-profile.calltrace.cycles-pp.kernel_clone.__do_sys_clone.do_syscall_64.entry_SYSCALL_64_after_hwframe._Fork
      3.22            -1.3        1.96   2%  perf-profile.calltrace.cycles-pp.do_syscall_64.entry_SYSCALL_64_after_hwframe._Fork
      3.22            -1.3        1.96   2%  perf-profile.calltrace.cycles-pp.entry_SYSCALL_64_after_hwframe._Fork
      2.61            -1.3        1.35   2%  perf-profile.calltrace.cycles-pp.exit_mmap.__mmput.exec_mmap.begin_new_exec.load_elf_binary
      1.60   4%      -1.2        0.36  70%  perf-profile.calltrace.cycles-pp.unlink_file_vma.free_pgtables.exit_mmap.__mmput.exit_mm
      1.90            -1.1        0.75   2%  perf-profile.calltrace.cycles-pp.zap_present_ptes.zap_pte_range.zap_pmd_range.unmap_page_range.unmap_vmas
      2.25   2%      -1.1        1.11   3%  perf-profile.calltrace.cycles-pp.dup_mm.copy_process.kernel_clone.__do_sys_clone.do_syscall_64
      1.40   4%      -1.1        0.28 100%  perf-profile.calltrace.cycles-pp.free_pgtables.unmap_region.do_vmi_align_munmap.do_vmi_munmap.mmap_region
      1.37   4%      -1.1        0.27 100%  perf-profile.calltrace.cycles-pp.unlink_file_vma.free_pgtables.unmap_region.do_vmi_align_munmap.do_vmi_munmap
      1.35   4%      -1.1        0.26 100%  perf-profile.calltrace.cycles-pp.down_write.unlink_file_vma.free_pgtables.unmap_region.do_vmi_align_munmap
      1.99   2%      -1.0        0.96   3%  perf-profile.calltrace.cycles-pp.dup_mmap.dup_mm.copy_process.kernel_clone.__do_sys_clone
      3.48   3%      -1.0        2.45   2%  perf-profile.calltrace.cycles-pp.dput.d_alloc_parallel.__lookup_slow.walk_component.link_path_walk
      2.44            -1.0        1.43   2%  perf-profile.calltrace.cycles-pp.do_fault.__handle_mm_fault.handle_mm_fault.do_user_addr_fault.exc_page_fault
      3.45   3%      -1.0        2.44   2%  perf-profile.calltrace.cycles-pp.__dentry_kill.dput.d_alloc_parallel.__lookup_slow.walk_component
      1.54   4%      -1.0        0.59   8%  perf-profile.calltrace.cycles-pp.unmap_region.do_vmi_align_munmap.do_vmi_munmap.mmap_region.do_mmap
      3.19  12%      -0.9        2.24  11%  perf-profile.calltrace.cycles-pp.rwsem_down_read_slowpath.down_read.walk_component.link_path_walk.path_openat
      3.34   3%      -0.9        2.42   2%  perf-profile.calltrace.cycles-pp._raw_spin_lock.__dentry_kill.dput.d_alloc_parallel.__lookup_slow
      3.33  11%      -0.9        2.42  10%  perf-profile.calltrace.cycles-pp.down_read.walk_component.link_path_walk.path_openat.do_filp_open
      2.14            -0.9        1.25        perf-profile.calltrace.cycles-pp.do_read_fault.do_fault.__handle_mm_fault.handle_mm_fault.do_user_addr_fault
      2.02            -0.9        1.16   2%  perf-profile.calltrace.cycles-pp.acpi_safe_halt.acpi_idle_enter.cpuidle_enter_state.cpuidle_enter.cpuidle_idle_call
      3.22   3%      -0.9        2.36   2%  perf-profile.calltrace.cycles-pp.native_queued_spin_lock_slowpath._raw_spin_lock.__dentry_kill.dput.d_alloc_parallel
      2.04            -0.8        1.19   2%  perf-profile.calltrace.cycles-pp.filemap_map_pages.do_read_fault.do_fault.__handle_mm_fault.handle_mm_fault
      1.00   2%      -0.7        0.25 100%  perf-profile.calltrace.cycles-pp.__split_vma.vma_modify.mprotect_fixup.do_mprotect_pkey.__x64_sys_mprotect
      1.66            -0.7        0.95   2%  perf-profile.calltrace.cycles-pp.unmap_vmas.exit_mmap.__mmput.exit_mm.do_exit
      0.94            -0.7        0.26 100%  perf-profile.calltrace.cycles-pp.__tlb_batch_free_encoded_pages.tlb_finish_mmu.exit_mmap.__mmput.exit_mm
      1.02   2%      -0.7        0.35  70%  perf-profile.calltrace.cycles-pp.vma_modify.mprotect_fixup.do_mprotect_pkey.__x64_sys_mprotect.do_syscall_64
      1.57            -0.7        0.90   2%  perf-profile.calltrace.cycles-pp.unmap_page_range.unmap_vmas.exit_mmap.__mmput.exit_mm
      2.68  13%      -0.6        2.04  12%  perf-profile.calltrace.cycles-pp.schedule_preempt_disabled.rwsem_down_read_slowpath.down_read.walk_component.link_path_walk
      2.68  13%      -0.6        2.03  12%  perf-profile.calltrace.cycles-pp.schedule.schedule_preempt_disabled.rwsem_down_read_slowpath.down_read.walk_component
      2.66  13%      -0.6        2.02  12%  perf-profile.calltrace.cycles-pp.__schedule.schedule.schedule_preempt_disabled.rwsem_down_read_slowpath.down_read
      1.29            -0.6        0.67   2%  perf-profile.calltrace.cycles-pp.do_mprotect_pkey.__x64_sys_mprotect.do_syscall_64.entry_SYSCALL_64_after_hwframe
      1.29            -0.6        0.67   3%  perf-profile.calltrace.cycles-pp.__x64_sys_mprotect.do_syscall_64.entry_SYSCALL_64_after_hwframe
      2.06            -0.6        1.46   3%  perf-profile.calltrace.cycles-pp.__lookup_slow.walk_component.link_path_walk.path_lookupat.filename_lookup
      1.43            -0.6        0.87        perf-profile.calltrace.cycles-pp.__do_huge_pmd_anonymous_page.__handle_mm_fault.handle_mm_fault.do_user_addr_fault.exc_page_fault
      1.97            -0.6        1.41   3%  perf-profile.calltrace.cycles-pp.d_alloc_parallel.__lookup_slow.walk_component.link_path_walk.path_lookupat
      1.14            -0.6        0.58   3%  perf-profile.calltrace.cycles-pp.mprotect_fixup.do_mprotect_pkey.__x64_sys_mprotect.do_syscall_64.entry_SYSCALL_64_after_hwframe
      1.40            -0.6        0.85        perf-profile.calltrace.cycles-pp.clear_huge_page.__do_huge_pmd_anonymous_page.__handle_mm_fault.handle_mm_fault.do_user_addr_fault
      1.11   2%      -0.5        0.58   2%  perf-profile.calltrace.cycles-pp.load_elf_interp.load_elf_binary.search_binary_handler.exec_binprm.bprm_execve
      0.96            -0.5        0.43  44%  perf-profile.calltrace.cycles-pp.tlb_finish_mmu.exit_mmap.__mmput.exit_mm.do_exit
      1.11   2%      -0.5        0.58   2%  perf-profile.calltrace.cycles-pp.elf_load.load_elf_interp.load_elf_binary.search_binary_handler.exec_binprm
      1.29            -0.5        0.78        perf-profile.calltrace.cycles-pp.clear_page_erms.clear_huge_page.__do_huge_pmd_anonymous_page.__handle_mm_fault.handle_mm_fault
      1.18   2%      -0.5        0.69   2%  perf-profile.calltrace.cycles-pp.next_uptodate_folio.filemap_map_pages.do_read_fault.do_fault.__handle_mm_fault
      1.12            -0.5        0.62        perf-profile.calltrace.cycles-pp.__x64_sys_execve.do_syscall_64.entry_SYSCALL_64_after_hwframe
      1.11            -0.5        0.62   2%  perf-profile.calltrace.cycles-pp.do_execveat_common.__x64_sys_execve.do_syscall_64.entry_SYSCALL_64_after_hwframe
      1.07   2%      -0.5        0.62   2%  perf-profile.calltrace.cycles-pp.sysvec_call_function_single.asm_sysvec_call_function_single.acpi_safe_halt.acpi_idle_enter.cpuidle_enter_state
      0.90   2%      -0.4        0.52        perf-profile.calltrace.cycles-pp.__sysvec_call_function_single.sysvec_call_function_single.asm_sysvec_call_function_single.acpi_safe_halt.acpi_idle_enter
      1.16            -0.2        1.01        perf-profile.calltrace.cycles-pp.open64
      1.14            -0.1        0.99        perf-profile.calltrace.cycles-pp.entry_SYSCALL_64_after_hwframe.open64
      1.12            -0.1        0.98        perf-profile.calltrace.cycles-pp.do_sys_openat2.__x64_sys_openat.do_syscall_64.entry_SYSCALL_64_after_hwframe.open64
      1.13            -0.1        0.99        perf-profile.calltrace.cycles-pp.do_syscall_64.entry_SYSCALL_64_after_hwframe.open64
      1.12            -0.1        0.98        perf-profile.calltrace.cycles-pp.__x64_sys_openat.do_syscall_64.entry_SYSCALL_64_after_hwframe.open64
      0.91            -0.1        0.78   2%  perf-profile.calltrace.cycles-pp.unlinkat
      0.90            -0.1        0.78        perf-profile.calltrace.cycles-pp.do_syscall_64.entry_SYSCALL_64_after_hwframe.unlinkat
      0.90            -0.1        0.78        perf-profile.calltrace.cycles-pp.entry_SYSCALL_64_after_hwframe.unlinkat
      0.90            -0.1        0.78        perf-profile.calltrace.cycles-pp.__x64_sys_unlinkat.do_syscall_64.entry_SYSCALL_64_after_hwframe.unlinkat
      0.89            -0.1        0.78   2%  perf-profile.calltrace.cycles-pp.do_unlinkat.__x64_sys_unlinkat.do_syscall_64.entry_SYSCALL_64_after_hwframe.unlinkat
      0.88            -0.1        0.79   5%  perf-profile.calltrace.cycles-pp.native_queued_spin_lock_slowpath._raw_spin_lock.dput.terminate_walk.path_lookupat
      3.18            +0.1        3.30   3%  perf-profile.calltrace.cycles-pp.walk_component.link_path_walk.path_lookupat.filename_lookup.vfs_statx
      0.53   3%      +0.2        0.68   3%  perf-profile.calltrace.cycles-pp.fstatat64
      0.70   3%      +0.2        0.88        perf-profile.calltrace.cycles-pp.lookup_open.open_last_lookups.path_openat.do_filp_open.do_sys_openat2
      0.54   3%      +0.2        0.73        perf-profile.calltrace.cycles-pp.d_alloc.d_alloc_parallel.lookup_open.open_last_lookups.path_openat
      0.68   3%      +0.2        0.87        perf-profile.calltrace.cycles-pp.d_alloc_parallel.lookup_open.open_last_lookups.path_openat.do_filp_open
      0.44  44%      +0.3        0.71        perf-profile.calltrace.cycles-pp._raw_spin_lock.d_alloc.d_alloc_parallel.lookup_open.open_last_lookups
      0.54   3%      +0.3        0.87   2%  perf-profile.calltrace.cycles-pp.dput.step_into.open_last_lookups.path_openat.do_filp_open
      0.54   2%      +0.3        0.88   2%  perf-profile.calltrace.cycles-pp.step_into.open_last_lookups.path_openat.do_filp_open.do_sys_openat2
      0.54   2%      +0.3        0.87   2%  perf-profile.calltrace.cycles-pp.__dentry_kill.dput.step_into.open_last_lookups.path_openat
      0.35  70%      +0.3        0.70   2%  perf-profile.calltrace.cycles-pp.native_queued_spin_lock_slowpath._raw_spin_lock.d_alloc.d_alloc_parallel.lookup_open
      0.44  44%      +0.4        0.86   2%  perf-profile.calltrace.cycles-pp._raw_spin_lock.__dentry_kill.dput.step_into.open_last_lookups
      0.77   4%      +0.4        1.20   2%  perf-profile.calltrace.cycles-pp.lookup_fast.open_last_lookups.path_openat.do_filp_open.do_sys_openat2
      0.75   4%      +0.4        1.18   2%  perf-profile.calltrace.cycles-pp.__legitimize_path.try_to_unlazy.lookup_fast.open_last_lookups.path_openat
      0.75   4%      +0.4        1.18   2%  perf-profile.calltrace.cycles-pp.lockref_get_not_dead.__legitimize_path.try_to_unlazy.lookup_fast.open_last_lookups
      0.75   4%      +0.4        1.18   2%  perf-profile.calltrace.cycles-pp.try_to_unlazy.lookup_fast.open_last_lookups.path_openat.do_filp_open
      3.69            +0.5        4.16   3%  perf-profile.calltrace.cycles-pp.link_path_walk.path_lookupat.filename_lookup.vfs_statx.vfs_fstatat
      0.17 141%      +0.5        0.66   3%  perf-profile.calltrace.cycles-pp.do_syscall_64.entry_SYSCALL_64_after_hwframe.fstatat64
      0.17 141%      +0.5        0.66   3%  perf-profile.calltrace.cycles-pp.entry_SYSCALL_64_after_hwframe.fstatat64
      0.08 223%      +0.6        0.65   3%  perf-profile.calltrace.cycles-pp.__do_sys_newfstatat.do_syscall_64.entry_SYSCALL_64_after_hwframe.fstatat64
      0.00            +0.6        0.62   7%  perf-profile.calltrace.cycles-pp.native_queued_spin_lock_slowpath._raw_spin_lock.dput.path_put.exit_fs
      0.00            +0.6        0.62   7%  perf-profile.calltrace.cycles-pp._raw_spin_lock.dput.path_put.exit_fs.do_exit
      0.00            +0.6        0.63   3%  perf-profile.calltrace.cycles-pp.vfs_fstatat.__do_sys_newfstatat.do_syscall_64.entry_SYSCALL_64_after_hwframe.fstatat64
      1.06            +0.7        1.80   3%  perf-profile.calltrace.cycles-pp.lookup_fast.walk_component.link_path_walk.path_lookupat.filename_lookup
      3.28            +0.8        4.03        perf-profile.calltrace.cycles-pp.open_last_lookups.path_openat.do_filp_open.do_sys_openat2.__x64_sys_openat
      0.00            +0.8        0.76   6%  perf-profile.calltrace.cycles-pp.dput.path_put.exit_fs.do_exit.do_group_exit
      0.00            +0.8        0.76   6%  perf-profile.calltrace.cycles-pp.path_put.exit_fs.do_exit.do_group_exit.__x64_sys_exit_group
      0.00            +0.8        0.77   6%  perf-profile.calltrace.cycles-pp.exit_fs.do_exit.do_group_exit.__x64_sys_exit_group.do_syscall_64
      1.04            +0.8        1.82   4%  perf-profile.calltrace.cycles-pp.terminate_walk.path_lookupat.filename_lookup.vfs_statx.vfs_fstatat
      1.04            +0.8        1.81   3%  perf-profile.calltrace.cycles-pp.dput.terminate_walk.path_lookupat.filename_lookup.vfs_statx
      0.00            +0.8        0.79   3%  perf-profile.calltrace.cycles-pp.__dentry_kill.dput.step_into.link_path_walk.path_lookupat
      0.84            +0.8        1.65   3%  perf-profile.calltrace.cycles-pp.try_to_unlazy.lookup_fast.walk_component.link_path_walk.path_lookupat
      0.00            +0.8        0.81   4%  perf-profile.calltrace.cycles-pp.dput.step_into.link_path_walk.path_lookupat.filename_lookup
      0.00            +0.8        0.82   3%  perf-profile.calltrace.cycles-pp.step_into.link_path_walk.path_lookupat.filename_lookup.vfs_statx
      0.00            +1.0        0.97   3%  perf-profile.calltrace.cycles-pp.lockref_put_return.dput.terminate_walk.path_lookupat.filename_lookup
      5.11            +1.2        6.29   3%  perf-profile.calltrace.cycles-pp.__do_sys_newfstatat.do_syscall_64.entry_SYSCALL_64_after_hwframe
      5.07            +1.2        6.26   3%  perf-profile.calltrace.cycles-pp.vfs_fstatat.__do_sys_newfstatat.do_syscall_64.entry_SYSCALL_64_after_hwframe
      4.94            +1.2        6.19   3%  perf-profile.calltrace.cycles-pp.filename_lookup.vfs_statx.vfs_fstatat.__do_sys_newfstatat.do_syscall_64
      4.92            +1.3        6.18   3%  perf-profile.calltrace.cycles-pp.path_lookupat.filename_lookup.vfs_statx.vfs_fstatat.__do_sys_newfstatat
      4.95            +1.8        6.80   2%  perf-profile.calltrace.cycles-pp.vfs_statx.vfs_fstatat.__do_sys_newfstatat.do_syscall_64.entry_SYSCALL_64_after_hwframe
     11.82   3%      +2.2       14.02        perf-profile.calltrace.cycles-pp.__lookup_slow.walk_component.link_path_walk.path_openat.do_filp_open
     11.60   3%      +2.3       13.89        perf-profile.calltrace.cycles-pp.d_alloc_parallel.__lookup_slow.walk_component.link_path_walk.path_openat
      9.03   3%      +2.8       11.86        perf-profile.calltrace.cycles-pp.d_alloc.d_alloc_parallel.__lookup_slow.walk_component.link_path_walk
      8.52   3%      +2.9       11.40        perf-profile.calltrace.cycles-pp._raw_spin_lock.d_alloc.d_alloc_parallel.__lookup_slow.walk_component
      8.19   3%      +2.9       11.08        perf-profile.calltrace.cycles-pp.native_queued_spin_lock_slowpath._raw_spin_lock.d_alloc.d_alloc_parallel.__lookup_slow
      0.00            +3.7        3.71        perf-profile.calltrace.cycles-pp.lockref_put_return.dput.terminate_walk.path_openat.do_filp_open
      7.87   3%      +3.9       11.77   2%  perf-profile.calltrace.cycles-pp.native_queued_spin_lock_slowpath._raw_spin_lock.lockref_get_not_dead.__legitimize_path.try_to_unlazy
      8.00   3%      +4.0       11.98        perf-profile.calltrace.cycles-pp._raw_spin_lock.lockref_get_not_dead.__legitimize_path.try_to_unlazy.lookup_fast
      8.44   3%      +4.8       13.24   2%  perf-profile.calltrace.cycles-pp.native_queued_spin_lock_slowpath._raw_spin_lock.dput.terminate_walk.path_openat
      5.43   2%      +4.9       10.36        perf-profile.calltrace.cycles-pp.step_into.link_path_walk.path_openat.do_filp_open.do_sys_openat2
      8.48   3%      +4.9       13.42   2%  perf-profile.calltrace.cycles-pp._raw_spin_lock.dput.terminate_walk.path_openat.do_filp_open
      5.40   2%      +4.9       10.34        perf-profile.calltrace.cycles-pp.dput.step_into.link_path_walk.path_openat.do_filp_open
      5.29   2%      +5.0       10.31   2%  perf-profile.calltrace.cycles-pp.__dentry_kill.dput.step_into.link_path_walk.path_openat
      5.08   2%      +5.8       10.88        perf-profile.calltrace.cycles-pp._raw_spin_lock.__dentry_kill.dput.step_into.link_path_walk
      5.34   5%      +6.0       11.34        perf-profile.calltrace.cycles-pp.native_queued_spin_lock_slowpath._raw_spin_lock.__dentry_kill.dput.step_into
      7.11   3%      +6.7       13.85        perf-profile.calltrace.cycles-pp.lookup_fast.walk_component.link_path_walk.path_openat.do_filp_open
      6.81   3%      +6.8       13.65        perf-profile.calltrace.cycles-pp.try_to_unlazy.lookup_fast.walk_component.link_path_walk.path_openat
      7.64   2%      +7.6       15.29        perf-profile.calltrace.cycles-pp.__legitimize_path.try_to_unlazy.lookup_fast.walk_component.link_path_walk
      7.52   2%      +7.7       15.17        perf-profile.calltrace.cycles-pp.lockref_get_not_dead.__legitimize_path.try_to_unlazy.lookup_fast.walk_component
     22.42            +8.0       30.41        perf-profile.calltrace.cycles-pp.walk_component.link_path_walk.path_openat.do_filp_open.do_sys_openat2
      8.72   3%      +8.5       17.21        perf-profile.calltrace.cycles-pp.terminate_walk.path_openat.do_filp_open.do_sys_openat2.__x64_sys_openat
      8.70   3%      +8.5       17.19        perf-profile.calltrace.cycles-pp.dput.terminate_walk.path_openat.do_filp_open.do_sys_openat2
     27.98           +12.9       40.85        perf-profile.calltrace.cycles-pp.link_path_walk.path_openat.do_filp_open.do_sys_openat2.__x64_sys_openat
     64.52           +13.7       78.21        perf-profile.calltrace.cycles-pp.entry_SYSCALL_64_after_hwframe
     64.49           +13.7       78.19        perf-profile.calltrace.cycles-pp.do_syscall_64.entry_SYSCALL_64_after_hwframe
     41.14           +21.4       62.52        perf-profile.calltrace.cycles-pp.__x64_sys_openat.do_syscall_64.entry_SYSCALL_64_after_hwframe
     41.12           +21.4       62.50        perf-profile.calltrace.cycles-pp.do_sys_openat2.__x64_sys_openat.do_syscall_64.entry_SYSCALL_64_after_hwframe
     41.64           +21.5       63.13        perf-profile.calltrace.cycles-pp.do_filp_open.do_sys_openat2.__x64_sys_openat.do_syscall_64.entry_SYSCALL_64_after_hwframe
     41.58           +21.5       63.10        perf-profile.calltrace.cycles-pp.path_openat.do_filp_open.do_sys_openat2.__x64_sys_openat.do_syscall_64
      9.86   4%      -6.4        3.51   8%  perf-profile.children.cycles-pp.down_write
      9.25   5%      -6.1        3.17   9%  perf-profile.children.cycles-pp.rwsem_down_write_slowpath
      8.92   5%      -5.9        2.98   9%  perf-profile.children.cycles-pp.rwsem_optimistic_spin
      7.58   5%      -5.3        2.33  11%  perf-profile.children.cycles-pp.osq_lock
      9.01   3%      -5.1        3.95   5%  perf-profile.children.cycles-pp.vm_mmap_pgoff
      8.89   3%      -5.0        3.89   5%  perf-profile.children.cycles-pp.do_mmap
      8.73   3%      -4.9        3.79   6%  perf-profile.children.cycles-pp.mmap_region
      8.30            -4.1        4.16   2%  perf-profile.children.cycles-pp.__mmput
      8.26            -4.1        4.14   2%  perf-profile.children.cycles-pp.exit_mmap
      7.02   4%      -4.1        2.92   7%  perf-profile.children.cycles-pp.ksys_mmap_pgoff
      9.04            -4.0        5.06        perf-profile.children.cycles-pp.__x64_sys_execve
      9.77            -4.0        5.79        perf-profile.children.cycles-pp.asm_exc_page_fault
      9.03            -4.0        5.05        perf-profile.children.cycles-pp.do_execveat_common
      8.85            -3.6        5.24        perf-profile.children.cycles-pp.exc_page_fault
      8.81            -3.6        5.21        perf-profile.children.cycles-pp.do_user_addr_fault
      7.94            -3.5        4.44        perf-profile.children.cycles-pp.execve
      6.04   3%      -3.4        2.62   6%  perf-profile.children.cycles-pp.do_vmi_munmap
      5.92   3%      -3.4        2.54   6%  perf-profile.children.cycles-pp.do_vmi_align_munmap
      8.29            -3.4        4.91        perf-profile.children.cycles-pp.handle_mm_fault
      7.40            -3.3        4.07        perf-profile.children.cycles-pp.bprm_execve
      7.96            -3.2        4.71        perf-profile.children.cycles-pp.__handle_mm_fault
      5.30   3%      -3.2        2.08   6%  perf-profile.children.cycles-pp.free_pgtables
      6.85            -3.1        3.76        perf-profile.children.cycles-pp.exec_binprm
      6.84            -3.1        3.75        perf-profile.children.cycles-pp.search_binary_handler
      6.72            -3.0        3.68        perf-profile.children.cycles-pp.load_elf_binary
      4.22   4%      -2.8        1.45   8%  perf-profile.children.cycles-pp.unlink_file_vma
      5.34            -2.7        2.65   2%  perf-profile.children.cycles-pp.exit_mm
      6.67            -2.7        4.00        perf-profile.children.cycles-pp.__x64_sys_exit_group
      6.67            -2.7        4.00        perf-profile.children.cycles-pp.do_group_exit
      6.66            -2.7        3.99        perf-profile.children.cycles-pp.do_exit
      4.22   3%      -2.3        1.87   5%  perf-profile.children.cycles-pp.__split_vma
      3.63   4%      -2.2        1.43   7%  perf-profile.children.cycles-pp.vma_prepare
      4.84            -2.0        2.80   2%  perf-profile.children.cycles-pp.do_idle
      4.84            -2.0        2.80   2%  perf-profile.children.cycles-pp.common_startup_64
      4.84            -2.0        2.80   2%  perf-profile.children.cycles-pp.cpu_startup_entry
      4.77            -2.0        2.76   2%  perf-profile.children.cycles-pp.start_secondary
      4.16            -1.7        2.42   2%  perf-profile.children.cycles-pp.cpuidle_idle_call
      3.94            -1.6        2.30   2%  perf-profile.children.cycles-pp.do_fault
      3.44            -1.6        1.80        perf-profile.children.cycles-pp.begin_new_exec
      3.86            -1.6        2.26   2%  perf-profile.children.cycles-pp.cpuidle_enter
      3.85            -1.6        2.24   2%  perf-profile.children.cycles-pp.cpuidle_enter_state
      3.28            -1.6        1.71        perf-profile.children.cycles-pp.exec_mmap
      4.14            -1.6        2.58        perf-profile.children.cycles-pp.kernel_clone
      3.71            -1.6        2.16   2%  perf-profile.children.cycles-pp.acpi_idle_enter
      3.70            -1.5        2.15   2%  perf-profile.children.cycles-pp.acpi_safe_halt
      3.78            -1.5        2.30        perf-profile.children.cycles-pp.__do_sys_clone
      2.49   3%      -1.5        1.04   6%  perf-profile.children.cycles-pp.unmap_region
      3.64            -1.4        2.21        perf-profile.children.cycles-pp._Fork
      3.43            -1.4        2.00        perf-profile.children.cycles-pp.do_read_fault
      3.34            -1.4        1.95        perf-profile.children.cycles-pp.filemap_map_pages
      3.67            -1.4        2.30        perf-profile.children.cycles-pp.copy_process
      2.65   2%      -1.4        1.29   3%  perf-profile.children.cycles-pp.dup_mm
      4.43  12%      -1.3        3.16  11%  perf-profile.children.cycles-pp.__schedule
      2.34   2%      -1.2        1.12   3%  perf-profile.children.cycles-pp.dup_mmap
      2.74            -1.2        1.59        perf-profile.children.cycles-pp.unmap_vmas
      2.54            -1.1        1.47        perf-profile.children.cycles-pp.unmap_page_range
      2.48            -1.0        1.43        perf-profile.children.cycles-pp.zap_pmd_range
      3.46  12%      -1.0        2.42  11%  perf-profile.children.cycles-pp.rwsem_down_read_slowpath
      2.43            -1.0        1.41        perf-profile.children.cycles-pp.zap_pte_range
      2.59            -1.0        1.57        perf-profile.children.cycles-pp.asm_sysvec_call_function_single
      3.64  11%      -1.0        2.63  10%  perf-profile.children.cycles-pp.down_read
      3.67  13%      -1.0        2.71  12%  perf-profile.children.cycles-pp.schedule
      2.29            -1.0        1.33        perf-profile.children.cycles-pp.kmem_cache_free
      2.15            -0.9        1.20   2%  perf-profile.children.cycles-pp.elf_load
      2.10            -0.9        1.21   2%  perf-profile.children.cycles-pp.zap_present_ptes
      1.95   2%      -0.8        1.13        perf-profile.children.cycles-pp.next_uptodate_folio
      3.10  13%      -0.8        2.31  12%  perf-profile.children.cycles-pp.schedule_preempt_disabled
      1.66            -0.7        0.91        perf-profile.children.cycles-pp.tlb_finish_mmu
      1.76            -0.7        1.08        perf-profile.children.cycles-pp.clear_page_erms
      1.48            -0.7        0.80        perf-profile.children.cycles-pp.__tlb_batch_free_encoded_pages
      1.47            -0.7        0.80   2%  perf-profile.children.cycles-pp.free_pages_and_swap_cache
      1.54            -0.6        0.92   2%  perf-profile.children.cycles-pp.up_write
      1.29            -0.6        0.67   3%  perf-profile.children.cycles-pp.__x64_sys_mprotect
      1.29            -0.6        0.67   3%  perf-profile.children.cycles-pp.do_mprotect_pkey
      1.11   3%      -0.6        0.52   4%  perf-profile.children.cycles-pp.rwsem_spin_on_owner
      1.50            -0.6        0.91        perf-profile.children.cycles-pp.handle_softirqs
      1.24   2%      -0.6        0.66   2%  perf-profile.children.cycles-pp.load_elf_interp
      1.43            -0.6        0.87        perf-profile.children.cycles-pp.__do_huge_pmd_anonymous_page
      1.15            -0.6        0.58   3%  perf-profile.children.cycles-pp.mprotect_fixup
      1.20   3%      -0.6        0.65   4%  perf-profile.children.cycles-pp.ret_from_fork_asm
      1.41            -0.6        0.86        perf-profile.children.cycles-pp.clear_huge_page
      1.32            -0.6        0.77   2%  perf-profile.children.cycles-pp.rcu_core
      1.28            -0.5        0.74   2%  perf-profile.children.cycles-pp.rcu_do_batch
      1.18            -0.5        0.64        perf-profile.children.cycles-pp.folios_put_refs
      1.35            -0.5        0.81        perf-profile.children.cycles-pp.kmem_cache_alloc_noprof
      1.02   2%      -0.5        0.51   3%  perf-profile.children.cycles-pp.vma_modify
      1.32            -0.5        0.80        perf-profile.children.cycles-pp.alloc_pages_mpol_noprof
      1.08   3%      -0.5        0.57   4%  perf-profile.children.cycles-pp.ret_from_fork
      1.26            -0.5        0.77   2%  perf-profile.children.cycles-pp.__alloc_pages_noprof
      1.80   2%      -0.5        1.32   2%  perf-profile.children.cycles-pp.asm_sysvec_apic_timer_interrupt
      1.19            -0.4        0.74        perf-profile.children.cycles-pp.sysvec_call_function_single
      0.88   4%      -0.4        0.46   4%  perf-profile.children.cycles-pp.kthread
      1.00   2%      -0.4        0.58   2%  perf-profile.children.cycles-pp.vma_interval_tree_insert
      0.92            -0.4        0.51   2%  perf-profile.children.cycles-pp.__slab_free
      0.96            -0.4        0.54   2%  perf-profile.children.cycles-pp.__vm_munmap
      1.02            -0.4        0.61        perf-profile.children.cycles-pp.select_task_rq_fair
      1.61            -0.4        1.19   2%  perf-profile.children.cycles-pp.sysvec_apic_timer_interrupt
      0.98            -0.4        0.59        perf-profile.children.cycles-pp.wp_page_copy
      0.73   4%      -0.4        0.36   5%  perf-profile.children.cycles-pp.smpboot_thread_fn
      1.01            -0.4        0.64        perf-profile.children.cycles-pp.__sysvec_call_function_single
      0.99            -0.4        0.62        perf-profile.children.cycles-pp.__flush_smp_call_function_queue
      0.92            -0.4        0.56   2%  perf-profile.children.cycles-pp.do_anonymous_page
      0.98            -0.4        0.62   2%  perf-profile.children.cycles-pp.try_to_wake_up
      0.92            -0.4        0.56        perf-profile.children.cycles-pp.__memcg_slab_free_hook
      0.82            -0.4        0.46        perf-profile.children.cycles-pp.folio_remove_rmap_ptes
      0.79            -0.4        0.43        perf-profile.children.cycles-pp.alloc_empty_file
      0.94            -0.3        0.59   2%  perf-profile.children.cycles-pp.rwsem_wake
      0.90            -0.3        0.56        perf-profile.children.cycles-pp.__memcg_slab_post_alloc_hook
      0.55   4%      -0.3        0.22   6%  perf-profile.children.cycles-pp.vma_expand
      0.82            -0.3        0.50   2%  perf-profile.children.cycles-pp.get_page_from_freelist
      1.02            -0.3        0.71        perf-profile.children.cycles-pp.irq_exit_rcu
      0.82   2%      -0.3        0.52        perf-profile.children.cycles-pp.sched_ttwu_pending
      0.83            -0.3        0.52   2%  perf-profile.children.cycles-pp.wake_up_q
      0.77            -0.3        0.47        perf-profile.children.cycles-pp.__d_lookup_rcu
      0.74            -0.3        0.44        perf-profile.children.cycles-pp.copy_strings
      0.69            -0.3        0.40   2%  perf-profile.children.cycles-pp.vma_complete
      0.51   2%      -0.3        0.22   4%  perf-profile.children.cycles-pp.run_ksoftirqd
      0.79   2%      -0.3        0.51   2%  perf-profile.children.cycles-pp.activate_task
      0.61            -0.3        0.34   3%  perf-profile.children.cycles-pp._compound_head
      0.76   2%      -0.3        0.49        perf-profile.children.cycles-pp.ttwu_do_activate
      0.64            -0.3        0.37   3%  perf-profile.children.cycles-pp.mm_init
      0.62            -0.3        0.36   2%  perf-profile.children.cycles-pp.sched_balance_find_dst_cpu
      0.39  17%      -0.3        0.14  10%  perf-profile.children.cycles-pp._raw_spin_lock_irq
      0.52   2%      -0.3        0.27   3%  perf-profile.children.cycles-pp._raw_spin_lock_irqsave
      0.53   2%      -0.2        0.28        perf-profile.children.cycles-pp.init_file
      0.54   3%      -0.2        0.29   2%  perf-profile.children.cycles-pp.schedule_idle
      0.56            -0.2        0.31   2%  perf-profile.children.cycles-pp.finish_task_switch
      0.55            -0.2        0.31   2%  perf-profile.children.cycles-pp.__mmdrop
      0.57            -0.2        0.33   2%  perf-profile.children.cycles-pp.copy_page_range
      0.70   4%      -0.2        0.47   3%  perf-profile.children.cycles-pp.dequeue_task_fair
      0.68   3%      -0.2        0.45        perf-profile.children.cycles-pp.enqueue_task_fair
      0.58            -0.2        0.34        perf-profile.children.cycles-pp.syscall_exit_to_user_mode
      0.55            -0.2        0.32   2%  perf-profile.children.cycles-pp.copy_p4d_range
      0.56            -0.2        0.34        perf-profile.children.cycles-pp.mod_objcg_state
      0.54            -0.2        0.32   2%  perf-profile.children.cycles-pp.sched_balance_find_dst_group
      0.66   3%      -0.2        0.44   3%  perf-profile.children.cycles-pp.update_load_avg
      0.54            -0.2        0.32   2%  perf-profile.children.cycles-pp.unlink_anon_vmas
      0.51   2%      -0.2        0.30        perf-profile.children.cycles-pp.update_sg_wakeup_stats
      0.56   4%      -0.2        0.34   4%  perf-profile.children.cycles-pp.wait4
      0.52            -0.2        0.31   3%  perf-profile.children.cycles-pp.alloc_bprm
      0.44   2%      -0.2        0.23        perf-profile.children.cycles-pp.security_file_alloc
      0.56            -0.2        0.35   2%  perf-profile.children.cycles-pp._IO_default_xsputn
      0.52            -0.2        0.31        perf-profile.children.cycles-pp.mas_store_prealloc
      0.54            -0.2        0.33   2%  perf-profile.children.cycles-pp.perf_event_mmap
      0.51            -0.2        0.30   2%  perf-profile.children.cycles-pp.set_pte_range
      0.52   2%      -0.2        0.32   3%  perf-profile.children.cycles-pp._IO_fwrite
      0.52            -0.2        0.32        perf-profile.children.cycles-pp.perf_event_mmap_event
      0.55   3%      -0.2        0.34   2%  perf-profile.children.cycles-pp.dequeue_entity
      0.45            -0.2        0.25   2%  perf-profile.children.cycles-pp.__pte_offset_map_lock
      0.54   3%      -0.2        0.34   2%  perf-profile.children.cycles-pp.enqueue_entity
      0.52            -0.2        0.32        perf-profile.children.cycles-pp.native_irq_return_iret
      0.52   5%      -0.2        0.32   4%  perf-profile.children.cycles-pp.vfs_read
      0.48            -0.2        0.29        perf-profile.children.cycles-pp.sync_regs
      0.51            -0.2        0.32   3%  perf-profile.children.cycles-pp.alloc_anon_folio
      0.38            -0.2        0.19        perf-profile.children.cycles-pp.apparmor_file_alloc_security
      0.46   2%      -0.2        0.27   3%  perf-profile.children.cycles-pp.__x64_sys_munmap
      0.49   2%      -0.2        0.31   2%  perf-profile.children.cycles-pp.vma_alloc_folio_noprof
      0.50   5%      -0.2        0.32   4%  perf-profile.children.cycles-pp.read
      0.46            -0.2        0.28        perf-profile.children.cycles-pp.__cond_resched
      0.48   6%      -0.2        0.30   5%  perf-profile.children.cycles-pp.kernel_wait4
      0.48   6%      -0.2        0.30   4%  perf-profile.children.cycles-pp.__do_sys_wait4
      0.49   5%      -0.2        0.31   4%  perf-profile.children.cycles-pp.ksys_read
      0.42            -0.2        0.25        perf-profile.children.cycles-pp.lock_vma_under_rcu
      0.44            -0.2        0.27        perf-profile.children.cycles-pp.strnlen_user
      0.41            -0.2        0.24   2%  perf-profile.children.cycles-pp.__libc_early_init
      0.46   6%      -0.2        0.29   5%  perf-profile.children.cycles-pp.do_wait
      0.40            -0.2        0.23   2%  perf-profile.children.cycles-pp.wake_up_new_task
      0.42   2%      -0.2        0.25        perf-profile.children.cycles-pp.vma_interval_tree_remove
      0.41            -0.2        0.24   2%  perf-profile.children.cycles-pp.__libc_fork
      0.41            -0.2        0.24   2%  perf-profile.children.cycles-pp.mas_wr_store_entry
      0.39   2%      -0.2        0.22   3%  perf-profile.children.cycles-pp.getname_flags
      0.41   2%      -0.2        0.25        perf-profile.children.cycles-pp.get_arg_page
      0.39   2%      -0.2        0.22   3%  perf-profile.children.cycles-pp.sched_exec
      0.40            -0.2        0.23   2%  perf-profile.children.cycles-pp.rep_stos_alternative
      0.40            -0.2        0.24   2%  perf-profile.children.cycles-pp.vm_area_dup
      0.40            -0.2        0.24   2%  perf-profile.children.cycles-pp.perf_iterate_sb
      0.41            -0.2        0.26        perf-profile.children.cycles-pp.select_task_rq
      0.37            -0.2        0.22        perf-profile.children.cycles-pp.pcpu_alloc_noprof
      1.16            -0.2        1.01        perf-profile.children.cycles-pp.open64
      0.36   2%      -0.1        0.22   2%  perf-profile.children.cycles-pp.__memcg_kmem_charge_page
      0.35            -0.1        0.20   2%  perf-profile.children.cycles-pp.pte_alloc_one
      0.35   2%      -0.1        0.21   2%  perf-profile.children.cycles-pp.setup_arg_pages
      0.35            -0.1        0.21        perf-profile.children.cycles-pp.get_user_pages_remote
      0.36            -0.1        0.22   2%  perf-profile.children.cycles-pp.create_elf_tables
      0.32            -0.1        0.18   2%  perf-profile.children.cycles-pp.copy_pte_range
      0.34            -0.1        0.20   2%  perf-profile.children.cycles-pp.__d_alloc
      0.34   2%      -0.1        0.20   3%  perf-profile.children.cycles-pp.__get_user_pages
      0.31            -0.1        0.18   2%  perf-profile.children.cycles-pp.folio_batch_move_lru
      0.31            -0.1        0.18   2%  perf-profile.children.cycles-pp.lru_add_drain
      0.25   4%      -0.1        0.12   4%  perf-profile.children.cycles-pp.security_file_free
      0.33            -0.1        0.20   2%  perf-profile.children.cycles-pp.dup_task_struct
      0.31            -0.1        0.18        perf-profile.children.cycles-pp.lru_add_drain_cpu
      0.34            -0.1        0.21   3%  perf-profile.children.cycles-pp.__mem_cgroup_charge
      0.31            -0.1        0.18   2%  perf-profile.children.cycles-pp.folio_add_file_rmap_ptes
      0.30   2%      -0.1        0.17   5%  perf-profile.children.cycles-pp.rmqueue
      0.29   3%      -0.1        0.16   3%  perf-profile.children.cycles-pp.__call_rcu_common
      0.33   2%      -0.1        0.20   3%  perf-profile.children.cycles-pp.___perf_sw_event
      0.31   2%      -0.1        0.18   2%  perf-profile.children.cycles-pp.__vm_area_free
      0.91            -0.1        0.79   2%  perf-profile.children.cycles-pp.unlinkat
      0.24   3%      -0.1        0.11   4%  perf-profile.children.cycles-pp.apparmor_file_free_security
      0.31            -0.1        0.18   2%  perf-profile.children.cycles-pp.__mod_memcg_lruvec_state
      0.29   2%      -0.1        0.17   2%  perf-profile.children.cycles-pp.mas_wr_node_store
      0.28            -0.1        0.16   2%  perf-profile.children.cycles-pp.__lruvec_stat_mod_folio
      0.30            -0.1        0.18   2%  perf-profile.children.cycles-pp.clear_bhb_loop
      0.34   2%      -0.1        0.22        perf-profile.children.cycles-pp.write
      0.30   2%      -0.1        0.18   2%  perf-profile.children.cycles-pp.shift_arg_pages
      0.31   2%      -0.1        0.19   5%  perf-profile.children.cycles-pp.mas_find
      0.28   2%      -0.1        0.16   2%  perf-profile.children.cycles-pp.__pte_alloc
      0.90            -0.1        0.78   2%  perf-profile.children.cycles-pp.__x64_sys_unlinkat
      0.89            -0.1        0.78   2%  perf-profile.children.cycles-pp.do_unlinkat
      0.26            -0.1        0.15   2%  perf-profile.children.cycles-pp.__do_wait
      0.29            -0.1        0.18   2%  perf-profile.children.cycles-pp.mas_walk
      0.50   2%      -0.1        0.38        perf-profile.children.cycles-pp.fput
      0.28   2%      -0.1        0.17   2%  perf-profile.children.cycles-pp.__percpu_counter_sum
      0.28   2%      -0.1        0.16   4%  perf-profile.children.cycles-pp.__perf_sw_event
      0.27   2%      -0.1        0.16   3%  perf-profile.children.cycles-pp.strncpy_from_user
      0.29   2%      -0.1        0.18   2%  perf-profile.children.cycles-pp.__wp_page_copy_user
      0.29   2%      -0.1        0.18   2%  perf-profile.children.cycles-pp.copy_mc_enhanced_fast_string
      0.29   3%      -0.1        0.18   2%  perf-profile.children.cycles-pp.__d_add
      0.28            -0.1        0.17   2%  perf-profile.children.cycles-pp.kmem_cache_alloc_lru_noprof
      0.32            -0.1        0.20   2%  perf-profile.children.cycles-pp.ksys_write
      0.27            -0.1        0.16   4%  perf-profile.children.cycles-pp.memset_orig
      0.28   2%      -0.1        0.17   2%  perf-profile.children.cycles-pp.vm_area_alloc
      0.27   2%      -0.1        0.16        perf-profile.children.cycles-pp.copy_string_kernel
      0.27   2%      -0.1        0.16   4%  perf-profile.children.cycles-pp.flush_tlb_mm_range
      0.58   3%      -0.1        0.48   3%  perf-profile.children.cycles-pp.__sysvec_apic_timer_interrupt
      0.30   2%      -0.1        0.19   2%  perf-profile.children.cycles-pp.simple_lookup
      0.26            -0.1        0.16   3%  perf-profile.children.cycles-pp.anon_vma_fork
      0.30            -0.1        0.20        perf-profile.children.cycles-pp.vfs_write
      0.26            -0.1        0.15   3%  perf-profile.children.cycles-pp.perf_event_mmap_output
      0.26   2%      -0.1        0.15   2%  perf-profile.children.cycles-pp.__close
      0.24   2%      -0.1        0.14   4%  perf-profile.children.cycles-pp.free_unref_page_commit
      0.25   3%      -0.1        0.14   3%  perf-profile.children.cycles-pp.__fput
      0.57   4%      -0.1        0.47   3%  perf-profile.children.cycles-pp.hrtimer_interrupt
      0.28            -0.1        0.18   2%  perf-profile.children.cycles-pp._IO_padn
      0.41   2%      -0.1        0.31   2%  perf-profile.children.cycles-pp.__vfork
      0.22   3%      -0.1        0.12   3%  perf-profile.children.cycles-pp.__rmqueue_pcplist
      0.23   3%      -0.1        0.13   5%  perf-profile.children.cycles-pp.__rb_insert_augmented
      0.24   3%      -0.1        0.14   4%  perf-profile.children.cycles-pp.filemap_read
      0.24            -0.1        0.14        perf-profile.children.cycles-pp.vmf_anon_prepare
      0.20   2%      -0.1        0.10        perf-profile.children.cycles-pp.__page_cache_release
      0.23            -0.1        0.14   3%  perf-profile.children.cycles-pp.select_idle_sibling
      0.23   2%      -0.1        0.14   2%  perf-profile.children.cycles-pp.__pmd_alloc
      0.23   2%      -0.1        0.14   4%  perf-profile.children.cycles-pp.__check_object_size
      0.23   2%      -0.1        0.14   3%  perf-profile.children.cycles-pp.free_unref_folios
      0.26            -0.1        0.16   2%  perf-profile.children.cycles-pp.cgroup_rstat_updated
      0.22   2%      -0.1        0.13   5%  perf-profile.children.cycles-pp.mas_preallocate
      0.20   3%      -0.1        0.11        perf-profile.children.cycles-pp.___slab_alloc
      0.22            -0.1        0.13        perf-profile.children.cycles-pp.__anon_vma_prepare
      0.21   4%      -0.1        0.12        perf-profile.children.cycles-pp.task_work_run
      0.20   3%      -0.1        0.11   3%  perf-profile.children.cycles-pp.rcu_segcblist_enqueue
      0.25            -0.1        0.16   3%  perf-profile.children.cycles-pp.up_read
      0.20            -0.1        0.12   4%  perf-profile.children.cycles-pp.free_pcppages_bulk
      0.21   2%      -0.1        0.12   3%  perf-profile.children.cycles-pp.do_open_execat
      0.16   3%      -0.1        0.07   6%  perf-profile.children.cycles-pp.folio_lruvec_lock_irqsave
      0.20   2%      -0.1        0.12   3%  perf-profile.children.cycles-pp.wait_task_zombie
      0.37   2%      -0.1        0.28   2%  perf-profile.children.cycles-pp.__x64_sys_vfork
      0.19   2%      -0.1        0.11   5%  perf-profile.children.cycles-pp.__percpu_counter_init_many
      0.20            -0.1        0.12   3%  perf-profile.children.cycles-pp.percpu_counter_add_batch
      0.20   3%      -0.1        0.12   4%  perf-profile.children.cycles-pp.try_charge_memcg
      0.20   2%      -0.1        0.12   3%  perf-profile.children.cycles-pp.alloc_thread_stack_node
      0.19   2%      -0.1        0.11   4%  perf-profile.children.cycles-pp.menu_select
      0.19   2%      -0.1        0.11   4%  perf-profile.children.cycles-pp.schedule_tail
      0.22            -0.1        0.14   2%  perf-profile.children.cycles-pp.ttwu_queue_wakelist
      0.18   2%      -0.1        0.10   3%  perf-profile.children.cycles-pp.rmqueue_bulk
      0.17  15%      -0.1        0.09   4%  perf-profile.children.cycles-pp.exit_notify
      0.18   2%      -0.1        0.10   3%  perf-profile.children.cycles-pp.free_unref_page
      0.19   2%      -0.1        0.12   4%  perf-profile.children.cycles-pp.flush_tlb_func
      0.20   3%      -0.1        0.12   4%  perf-profile.children.cycles-pp.__memcpy
      0.21            -0.1        0.13   3%  perf-profile.children.cycles-pp.memcg_account_kmem
      0.20   2%      -0.1        0.12   3%  perf-profile.children.cycles-pp.__count_memcg_events
      0.45   3%      -0.1        0.38   3%  perf-profile.children.cycles-pp.__hrtimer_run_queues
      0.19            -0.1        0.12   4%  perf-profile.children.cycles-pp.anon_vma_clone
      0.18   2%      -0.1        0.10        perf-profile.children.cycles-pp.rcu_cblist_dequeue
      0.18   2%      -0.1        0.11        perf-profile.children.cycles-pp.select_idle_cpu
      0.19            -0.1        0.12   4%  perf-profile.children.cycles-pp.__put_user_8
      0.18            -0.1        0.11   4%  perf-profile.children.cycles-pp.__pud_alloc
      0.18   2%      -0.1        0.10   4%  perf-profile.children.cycles-pp.__x64_sys_close
      0.19   2%      -0.1        0.11   4%  perf-profile.children.cycles-pp.switch_mm_irqs_off
      0.16   3%      -0.1        0.09   4%  perf-profile.children.cycles-pp.__do_fault
      0.22  10%      -0.1        0.15  10%  perf-profile.children.cycles-pp.pipe_read
      0.17   2%      -0.1        0.10   4%  perf-profile.children.cycles-pp.available_idle_cpu
      0.20   4%      -0.1        0.13   2%  perf-profile.children.cycles-pp.sched_balance_update_blocked_averages
      0.23   3%      -0.1        0.16   2%  perf-profile.children.cycles-pp.update_curr
      0.18   2%      -0.1        0.11        perf-profile.children.cycles-pp.__munmap
      0.16   2%      -0.1        0.09   4%  perf-profile.children.cycles-pp.__switch_to_asm
      0.16   2%      -0.1        0.09   5%  perf-profile.children.cycles-pp.asm_sysvec_reschedule_ipi
      0.17   2%      -0.1        0.10   4%  perf-profile.children.cycles-pp.do_open
      0.42   3%      -0.1        0.36   3%  perf-profile.children.cycles-pp.tick_nohz_handler
      0.17   3%      -0.1        0.10   3%  perf-profile.children.cycles-pp._IO_file_xsputn
      0.17   2%      -0.1        0.10   4%  perf-profile.children.cycles-pp.__get_user_8
      0.17   2%      -0.1        0.10   4%  perf-profile.children.cycles-pp.__getrlimit
      0.17   2%      -0.1        0.10   4%  perf-profile.children.cycles-pp.__rseq_handle_notify_resume
      0.17   2%      -0.1        0.10   4%  perf-profile.children.cycles-pp.release_task
      0.18   2%      -0.1        0.11   3%  perf-profile.children.cycles-pp.__mod_memcg_state
      0.16   3%      -0.1        0.09        perf-profile.children.cycles-pp.free_pgd_range
      0.16   2%      -0.1        0.10   4%  perf-profile.children.cycles-pp.mas_wr_bnode
      0.15   2%      -0.1        0.08   5%  perf-profile.children.cycles-pp.free_p4d_range
      0.17            -0.1        0.11   4%  perf-profile.children.cycles-pp.mem_cgroup_commit_charge
      0.19            -0.1        0.13   2%  perf-profile.children.cycles-pp.obj_cgroup_charge
      0.16   3%      -0.1        0.09   5%  perf-profile.children.cycles-pp._find_next_bit
      0.16   3%      -0.1        0.09   5%  perf-profile.children.cycles-pp.get_free_pages_noprof
      0.16   2%      -0.1        0.10        perf-profile.children.cycles-pp.native_flush_tlb_one_user
      0.16   2%      -0.1        0.10   3%  perf-profile.children.cycles-pp.rseq_ip_fixup
      0.38   4%      -0.1        0.32   3%  perf-profile.children.cycles-pp.update_process_times
      0.14   4%      -0.1        0.08   4%  perf-profile.children.cycles-pp.__ctype_init
      0.14            -0.1        0.08        perf-profile.children.cycles-pp.arch_do_signal_or_restart
      0.15   2%      -0.1        0.09   4%  perf-profile.children.cycles-pp.pgd_alloc
      0.16   2%      -0.1        0.10   3%  perf-profile.children.cycles-pp.move_page_tables
      0.17   4%      -0.1        0.11   4%  perf-profile.children.cycles-pp.prepare_task_switch
      0.14   2%      -0.1        0.08        perf-profile.children.cycles-pp.free_pud_range
      0.13   2%      -0.1        0.08   6%  perf-profile.children.cycles-pp.__rb_erase_color
      0.14   3%      -0.1        0.08        perf-profile.children.cycles-pp._exit
      0.14   4%      -0.1        0.08   5%  perf-profile.children.cycles-pp.check_heap_object
      0.14   4%      -0.1        0.08   5%  perf-profile.children.cycles-pp.rwsem_mark_wake
      0.14   2%      -0.1        0.08   5%  perf-profile.children.cycles-pp.switch_fpu_return
      0.14  10%      -0.1        0.08   4%  perf-profile.children.cycles-pp.inode_permission
      0.14   4%      -0.1        0.08   4%  perf-profile.children.cycles-pp.mas_split
      0.15   3%      -0.1        0.09   6%  perf-profile.children.cycles-pp.mas_next_slot
      0.15   3%      -0.1        0.09        perf-profile.children.cycles-pp.strnlen
      0.14   3%      -0.1        0.08   4%  perf-profile.children.cycles-pp.generic_file_write_iter
      0.17   6%      -0.1        0.12   4%  perf-profile.children.cycles-pp.update_rq_clock
      0.13            -0.1        0.08   6%  perf-profile.children.cycles-pp.__filemap_get_folio
      0.13   3%      -0.1        0.07   5%  perf-profile.children.cycles-pp.__mem_cgroup_uncharge_folios
      0.13   4%      -0.1        0.08   6%  perf-profile.children.cycles-pp.__put_anon_vma
      0.14   2%      -0.1        0.08   5%  perf-profile.children.cycles-pp.__put_user_4
      0.17   5%      -0.1        0.12   3%  perf-profile.children.cycles-pp.__update_load_avg_cfs_rq
      0.12   3%      -0.1        0.07   5%  perf-profile.children.cycles-pp.vm_area_free_rcu_cb
      0.14   2%      -0.1        0.09   4%  perf-profile.children.cycles-pp.wake_affine
      0.14   3%      -0.1        0.08   4%  perf-profile.children.cycles-pp._copy_from_user
      0.12   4%      -0.1        0.07   5%  perf-profile.children.cycles-pp.__switch_to
      0.14   3%      -0.1        0.09        perf-profile.children.cycles-pp.getenv
      0.13   2%      -0.1        0.08   6%  perf-profile.children.cycles-pp.mas_alloc_nodes
      0.08   4%      -0.1        0.02  99%  perf-profile.children.cycles-pp.remove_vma
      0.14   2%      -0.1        0.09        perf-profile.children.cycles-pp.__get_unmapped_area
      0.13   3%      -0.1        0.08   6%  perf-profile.children.cycles-pp.down_read_trylock
      0.14   2%      -0.1        0.09        perf-profile.children.cycles-pp.rcu_all_qs
      0.09   5%      -0.1        0.04  44%  perf-profile.children.cycles-pp.select_idle_core
      0.13            -0.1        0.08   4%  perf-profile.children.cycles-pp.do_notify_parent
      0.16   3%      -0.1        0.10   4%  perf-profile.children.cycles-pp.generic_perform_write
      0.13   3%      -0.1        0.08   4%  perf-profile.children.cycles-pp.ptep_clear_flush
      0.12            -0.1        0.07   5%  perf-profile.children.cycles-pp.do_wp_page
      0.13   2%      -0.1        0.08   6%  perf-profile.children.cycles-pp.map_vdso
      0.14   3%      -0.1        0.08   5%  perf-profile.children.cycles-pp.__free_one_page
      0.12            -0.0        0.07        perf-profile.children.cycles-pp.copy_page_to_iter
      0.12   3%      -0.0        0.07   6%  perf-profile.children.cycles-pp.mas_store_gfp
      0.11   4%      -0.0        0.06   6%  perf-profile.children.cycles-pp.free_percpu
      0.13   3%      -0.0        0.08   4%  perf-profile.children.cycles-pp._copy_to_iter
      0.11   3%      -0.0        0.06        perf-profile.children.cycles-pp.restore_fpregs_from_fpstate
      0.07   6%      -0.0        0.02  99%  perf-profile.children.cycles-pp.syscall_return_via_sysret
      0.11   5%      -0.0        0.06   6%  perf-profile.children.cycles-pp.sched_move_task
      0.11            -0.0        0.06   6%  perf-profile.children.cycles-pp.set_next_entity
      0.11            -0.0        0.06   6%  perf-profile.children.cycles-pp.setlocale
      0.12   4%      -0.0        0.08   6%  perf-profile.children.cycles-pp.lru_add_fn
      0.14  10%      -0.0        0.10  10%  perf-profile.children.cycles-pp.worker_thread
      0.13   8%      -0.0        0.08  10%  perf-profile.children.cycles-pp.xas_load
      0.11   3%      -0.0        0.06   7%  perf-profile.children.cycles-pp.__tunable_get_val@plt
      0.11   4%      -0.0        0.06        perf-profile.children.cycles-pp.copy_present_ptes
      0.10   4%      -0.0        0.06   6%  perf-profile.children.cycles-pp.finish_fault
      0.13   2%      -0.0        0.08   4%  perf-profile.children.cycles-pp.__smp_call_single_queue
      0.12   4%      -0.0        0.08   4%  perf-profile.children.cycles-pp.open_exec
      0.07   5%      -0.0        0.02  99%  perf-profile.children.cycles-pp.prepend_path
      0.10   3%      -0.0        0.05   8%  perf-profile.children.cycles-pp.sched_mm_cid_migrate_to
      0.12   3%      -0.0        0.08   4%  perf-profile.children.cycles-pp.llist_add_batch
      0.11   4%      -0.0        0.07   5%  perf-profile.children.cycles-pp.__install_special_mapping
      0.10            -0.0        0.06   8%  perf-profile.children.cycles-pp.do_dentry_open
      0.10   4%      -0.0        0.05   8%  perf-profile.children.cycles-pp.put_cred_rcu
      0.08   6%      -0.0        0.03  70%  perf-profile.children.cycles-pp.vm_normal_page
      0.10   4%      -0.0        0.06        perf-profile.children.cycles-pp.cfree
      0.10   4%      -0.0        0.06        perf-profile.children.cycles-pp.getopt_long
      0.10   4%      -0.0        0.06   6%  perf-profile.children.cycles-pp.__exit_signal
      0.09   5%      -0.0        0.05        perf-profile.children.cycles-pp.filemap_fault
      0.09   5%      -0.0        0.05        perf-profile.children.cycles-pp.uncharge_batch
      0.11   4%      -0.0        0.07        perf-profile.children.cycles-pp.arch_get_unmapped_area_topdown_vmflags
      0.15   3%      -0.0        0.11   5%  perf-profile.children.cycles-pp.update_rq_clock_task
      0.12   6%      -0.0        0.07   5%  perf-profile.children.cycles-pp.x64_sys_call
      0.12   6%      -0.0        0.07   6%  perf-profile.children.cycles-pp.path_init
      0.10   4%      -0.0        0.06   9%  perf-profile.children.cycles-pp.__vmalloc_node_range_noprof
      0.10   3%      -0.0        0.06        perf-profile.children.cycles-pp.__kernel_read
      0.11   4%      -0.0        0.06   7%  perf-profile.children.cycles-pp.__tlb_remove_folio_pages_size
      0.10   3%      -0.0        0.06        perf-profile.children.cycles-pp.__vsnprintf_chk
      0.10   3%      -0.0        0.06        perf-profile.children.cycles-pp.handle_signal
      0.11  11%      -0.0        0.06  11%  perf-profile.children.cycles-pp.xas_find
      0.09   4%      -0.0        0.05        perf-profile.children.cycles-pp.prepare_creds
      0.09   4%      -0.0        0.05        perf-profile.children.cycles-pp.strchrnul@plt
      0.10            -0.0        0.06        perf-profile.children.cycles-pp.__mod_lruvec_state
      0.10            -0.0        0.06        perf-profile.children.cycles-pp.d_path
      0.10            -0.0        0.06        perf-profile.children.cycles-pp.do_faccessat
      0.10   5%      -0.0        0.06   9%  perf-profile.children.cycles-pp.__close_nocancel
      0.07   6%      -0.0        0.03  70%  perf-profile.children.cycles-pp.__sigsuspend
      0.11   3%      -0.0        0.07   5%  perf-profile.children.cycles-pp.wakeup_preempt
      0.09   6%      -0.0        0.05        perf-profile.children.cycles-pp.vma_interval_tree_augment_rotate
      0.12   3%      -0.0        0.08   4%  perf-profile.children.cycles-pp.native_sched_clock
      0.12   3%      -0.0        0.08   4%  perf-profile.children.cycles-pp.sched_clock_cpu
      0.10            -0.0        0.06   6%  perf-profile.children.cycles-pp.handle_pte_fault
      0.10   4%      -0.0        0.06   6%  perf-profile.children.cycles-pp.user_path_at_empty
      0.11  13%      -0.0        0.08  12%  perf-profile.children.cycles-pp.process_one_work
      0.08            -0.0        0.04  44%  perf-profile.children.cycles-pp.entry_SYSCALL_64
      0.10   6%      -0.0        0.06        perf-profile.children.cycles-pp.brk
      0.10   3%      -0.0        0.06   7%  perf-profile.children.cycles-pp.pipe_write
      0.09   4%      -0.0        0.05        perf-profile.children.cycles-pp.evict
      0.09   4%      -0.0        0.05        perf-profile.children.cycles-pp.malloc
      0.10   5%      -0.0        0.06   6%  perf-profile.children.cycles-pp.alloc_fd
      0.09            -0.0        0.05   8%  perf-profile.children.cycles-pp.count
      0.09            -0.0        0.05   8%  perf-profile.children.cycles-pp.expand_downwards
      0.09   4%      -0.0        0.06   9%  perf-profile.children.cycles-pp.vm_unmapped_area
      0.09   5%      -0.0        0.05        perf-profile.children.cycles-pp.__p4d_alloc
      0.10   5%      -0.0        0.06        perf-profile.children.cycles-pp.kfree
      0.10            -0.0        0.06   7%  perf-profile.children.cycles-pp.task_h_load
      0.09            -0.0        0.06   9%  perf-profile.children.cycles-pp.__snprintf_chk
      0.08   6%      -0.0        0.04  44%  perf-profile.children.cycles-pp.__wake_up
      0.09            -0.0        0.06   9%  perf-profile.children.cycles-pp.irqentry_enter
      0.09   5%      -0.0        0.05   7%  perf-profile.children.cycles-pp.seq_read_iter
      0.09   4%      -0.0        0.05   8%  perf-profile.children.cycles-pp.entry_SYSRETQ_unsafe_stack
      0.08   5%      -0.0        0.05        perf-profile.children.cycles-pp.seq_read
      0.08   6%      -0.0        0.04  44%  perf-profile.children.cycles-pp._IO_setb
      0.10   4%      -0.0        0.07   5%  perf-profile.children.cycles-pp.sched_clock
      0.08   5%      -0.0        0.05        perf-profile.children.cycles-pp.__do_sys_brk
      0.08   5%      -0.0        0.05        perf-profile.children.cycles-pp.can_modify_mm
      0.08   5%      -0.0        0.05        perf-profile.children.cycles-pp.refill_obj_stock
      0.08   5%      -0.0        0.05   7%  perf-profile.children.cycles-pp.__update_blocked_fair
      0.08   5%      -0.0        0.05   7%  perf-profile.children.cycles-pp.__wake_up_common
      0.08   4%      -0.0        0.05        perf-profile.children.cycles-pp.do_brk_flags
      0.09            -0.0        0.06        perf-profile.children.cycles-pp.__d_rehash
      0.08   4%      -0.0        0.05   7%  perf-profile.children.cycles-pp.mas_wr_walk
      0.08            -0.0        0.05        perf-profile.children.cycles-pp.__send_signal_locked
      0.08            -0.0        0.05        perf-profile.children.cycles-pp.arch_dup_task_struct
      0.08            -0.0        0.05        perf-profile.children.cycles-pp.copy_page
      0.08            -0.0        0.05        perf-profile.children.cycles-pp.folio_mark_accessed
      0.08   4%      -0.0        0.05        perf-profile.children.cycles-pp.llist_reverse_order
      0.11   4%      -0.0        0.08   4%  perf-profile.children.cycles-pp.__update_load_avg_se
      0.10   8%      -0.0        0.07   8%  perf-profile.children.cycles-pp.ktime_get
      0.08   6%      -0.0        0.05        perf-profile.children.cycles-pp.__wake_up_sync_key
      0.08   6%      -0.0        0.05        perf-profile.children.cycles-pp.update_min_vruntime
      0.20   2%      -0.0        0.18        perf-profile.children.cycles-pp.sched_tick
      0.09   5%      -0.0        0.07   5%  perf-profile.children.cycles-pp.update_cfs_group
      0.09   5%      -0.0        0.07        perf-profile.children.cycles-pp.sched_balance_domains
      0.08   6%      -0.0        0.06        perf-profile.children.cycles-pp.main
      0.08   6%      -0.0        0.06        perf-profile.children.cycles-pp.run_builtin
      0.07            -0.0        0.06        perf-profile.children.cycles-pp.__cmd_record
      0.07            -0.0        0.06        perf-profile.children.cycles-pp.cmd_record
      0.06            -0.0        0.05        perf-profile.children.cycles-pp.record__mmap_read_evlist
      0.08  13%      +0.1        0.17   6%  perf-profile.children.cycles-pp.__filename_parentat
      0.08  10%      +0.1        0.17   6%  perf-profile.children.cycles-pp.path_parentat
      0.78   2%      +0.1        0.92        perf-profile.children.cycles-pp.lookup_open
      0.54   3%      +0.2        0.69   3%  perf-profile.children.cycles-pp.fstatat64
      0.23  10%      +0.2        0.46   7%  perf-profile.children.cycles-pp.complete_walk
      0.24   6%      +0.3        0.55   2%  perf-profile.children.cycles-pp.copy_fs_struct
      0.24   6%      +0.3        0.55   2%  perf-profile.children.cycles-pp.lockref_get
      0.39  18%      +0.4        0.77   6%  perf-profile.children.cycles-pp.exit_fs
      0.48  16%      +0.5        0.98   5%  perf-profile.children.cycles-pp.path_put
      3.33            +0.7        4.06        perf-profile.children.cycles-pp.open_last_lookups
      5.32            +1.3        6.61   3%  perf-profile.children.cycles-pp.filename_lookup
      5.30            +1.3        6.60   3%  perf-profile.children.cycles-pp.path_lookupat
      5.59            +1.3        6.94   2%  perf-profile.children.cycles-pp.__do_sys_newfstatat
      5.51            +1.4        6.89   2%  perf-profile.children.cycles-pp.vfs_fstatat
      5.36            +1.4        6.80   2%  perf-profile.children.cycles-pp.vfs_statx
     14.06   2%      +1.5       15.61        perf-profile.children.cycles-pp.__lookup_slow
     14.44   2%      +1.8       16.29        perf-profile.children.cycles-pp.d_alloc_parallel
      9.68   3%      +3.0       12.68        perf-profile.children.cycles-pp.d_alloc
      0.46            +4.5        4.96        perf-profile.children.cycles-pp.lockref_put_return
      9.84   2%      +5.0       14.85        perf-profile.children.cycles-pp.__dentry_kill
      6.51   2%      +5.6       12.14        perf-profile.children.cycles-pp.step_into
     80.87            +7.9       88.76        perf-profile.children.cycles-pp.entry_SYSCALL_64_after_hwframe
      9.08   2%      +7.9       16.98        perf-profile.children.cycles-pp.lookup_fast
     80.82            +7.9       88.73        perf-profile.children.cycles-pp.do_syscall_64
     25.94            +8.0       33.97        perf-profile.children.cycles-pp.walk_component
      9.11   3%      +8.2       17.31        perf-profile.children.cycles-pp.lockref_get_not_dead
      8.84   3%      +8.5       17.29        perf-profile.children.cycles-pp.try_to_unlazy
      8.82   3%      +8.5       17.28        perf-profile.children.cycles-pp.__legitimize_path
      9.80   2%      +9.2       19.05        perf-profile.children.cycles-pp.terminate_walk
     31.80           +13.3       45.09        perf-profile.children.cycles-pp.link_path_walk
     20.49   2%     +14.7       35.22        perf-profile.children.cycles-pp.dput
     36.99   3%     +16.9       53.91        perf-profile.children.cycles-pp.native_queued_spin_lock_slowpath
     38.51   3%     +17.1       55.62        perf-profile.children.cycles-pp._raw_spin_lock
     42.28           +21.2       63.51        perf-profile.children.cycles-pp.__x64_sys_openat
     42.26           +21.2       63.50        perf-profile.children.cycles-pp.do_sys_openat2
     41.86           +21.4       63.26        perf-profile.children.cycles-pp.do_filp_open
     41.79           +21.4       63.22        perf-profile.children.cycles-pp.path_openat
      7.51   5%      -5.2        2.30  11%  perf-profile.self.cycles-pp.osq_lock
      1.82   2%      -0.8        1.05        perf-profile.self.cycles-pp.next_uptodate_folio
      1.82            -0.7        1.08   2%  perf-profile.self.cycles-pp.acpi_safe_halt
      1.74            -0.7        1.07        perf-profile.self.cycles-pp.clear_page_erms
      1.08   2%      -0.6        0.49   4%  perf-profile.self.cycles-pp.rwsem_spin_on_owner
      0.99   2%      -0.4        0.58   3%  perf-profile.self.cycles-pp.vma_interval_tree_insert
      0.90            -0.4        0.50   2%  perf-profile.self.cycles-pp.__slab_free
      0.82            -0.3        0.48   2%  perf-profile.self.cycles-pp.filemap_map_pages
      0.75   2%      -0.3        0.42        perf-profile.self.cycles-pp.folio_remove_rmap_ptes
      0.62            -0.3        0.32   2%  perf-profile.self.cycles-pp.folios_put_refs
      0.75            -0.3        0.46   2%  perf-profile.self.cycles-pp.__d_lookup_rcu
      0.62            -0.3        0.34   3%  perf-profile.self.cycles-pp.up_write
      0.59   2%      -0.3        0.33   3%  perf-profile.self.cycles-pp._compound_head
      0.56   2%      -0.3        0.31   2%  perf-profile.self.cycles-pp.down_write
      0.58            -0.2        0.34   2%  perf-profile.self.cycles-pp.zap_present_ptes
      0.52            -0.2        0.31        perf-profile.self.cycles-pp.__memcg_slab_free_hook
      0.53            -0.2        0.33        perf-profile.self.cycles-pp._IO_default_xsputn
      0.50   2%      -0.2        0.30        perf-profile.self.cycles-pp._IO_fwrite
      0.52            -0.2        0.32        perf-profile.self.cycles-pp.native_irq_return_iret
      0.48            -0.2        0.29        perf-profile.self.cycles-pp.sync_regs
      0.46   2%      -0.2        0.26   2%  perf-profile.self.cycles-pp.update_sg_wakeup_stats
      0.37   2%      -0.2        0.18   2%  perf-profile.self.cycles-pp.apparmor_file_alloc_security
      0.44            -0.2        0.26        perf-profile.self.cycles-pp.strnlen_user
      0.42            -0.2        0.24        perf-profile.self.cycles-pp.vma_interval_tree_remove
      0.40            -0.2        0.24   2%  perf-profile.self.cycles-pp.kmem_cache_alloc_noprof
      0.39            -0.2        0.23   2%  perf-profile.self.cycles-pp.mod_objcg_state
      0.42            -0.2        0.26   2%  perf-profile.self.cycles-pp.__memcg_slab_post_alloc_hook
      0.40            -0.2        0.24        perf-profile.self.cycles-pp.kmem_cache_free
      0.34            -0.1        0.20   2%  perf-profile.self.cycles-pp._raw_spin_lock_irqsave
      0.32            -0.1        0.18   3%  perf-profile.self.cycles-pp.free_pages_and_swap_cache
      0.36   4%      -0.1        0.24   3%  perf-profile.self.cycles-pp.update_load_avg
      0.24   3%      -0.1        0.11   4%  perf-profile.self.cycles-pp.apparmor_file_free_security
      0.28   2%      -0.1        0.16   3%  perf-profile.self.cycles-pp.folio_add_file_rmap_ptes
      0.30            -0.1        0.18   3%  perf-profile.self.cycles-pp.clear_bhb_loop
      1.96            -0.1        1.84        perf-profile.self.cycles-pp._raw_spin_lock
      0.28            -0.1        0.18   2%  perf-profile.self.cycles-pp.mas_walk
      0.29            -0.1        0.18        perf-profile.self.cycles-pp.copy_mc_enhanced_fast_string
      0.26            -0.1        0.16   3%  perf-profile.self.cycles-pp.memset_orig
      0.27   2%      -0.1        0.17   2%  perf-profile.self.cycles-pp.___perf_sw_event
      0.26   4%      -0.1        0.16   4%  perf-profile.self.cycles-pp.__schedule
      0.24   2%      -0.1        0.15   2%  perf-profile.self.cycles-pp.__mod_memcg_lruvec_state
      0.24   2%      -0.1        0.15        perf-profile.self.cycles-pp.__cond_resched
      0.25            -0.1        0.16   3%  perf-profile.self.cycles-pp._IO_padn
      0.21   2%      -0.1        0.12   4%  perf-profile.self.cycles-pp.__rb_insert_augmented
      0.24   2%      -0.1        0.15   3%  perf-profile.self.cycles-pp.zap_pte_range
      0.20   2%      -0.1        0.10   4%  perf-profile.self.cycles-pp.rcu_segcblist_enqueue
      0.22  11%      -0.1        0.13   8%  perf-profile.self.cycles-pp.rwsem_down_read_slowpath
      0.24            -0.1        0.15   3%  perf-profile.self.cycles-pp.cgroup_rstat_updated
      0.20   4%      -0.1        0.12   3%  perf-profile.self.cycles-pp.__handle_mm_fault
      0.21   4%      -0.1        0.12   4%  perf-profile.self.cycles-pp.__percpu_counter_sum
      0.19            -0.1        0.11   5%  perf-profile.self.cycles-pp.percpu_counter_add_batch
      0.18   2%      -0.1        0.10   3%  perf-profile.self.cycles-pp.rcu_cblist_dequeue
      0.21   2%      -0.1        0.14   2%  perf-profile.self.cycles-pp.up_read
      0.19   3%      -0.1        0.12   3%  perf-profile.self.cycles-pp.__memcpy
      0.18   2%      -0.1        0.11   3%  perf-profile.self.cycles-pp.switch_mm_irqs_off
      0.13   2%      -0.1        0.06   6%  perf-profile.self.cycles-pp.rwsem_down_write_slowpath
      0.16   2%      -0.1        0.09   5%  perf-profile.self.cycles-pp.try_charge_memcg
      0.17            -0.1        0.10   3%  perf-profile.self.cycles-pp.__get_user_8
      0.16   3%      -0.1        0.09   4%  perf-profile.self.cycles-pp.__switch_to_asm
      0.15   4%      -0.1        0.08   4%  perf-profile.self.cycles-pp.___slab_alloc
      0.16            -0.1        0.09   5%  perf-profile.self.cycles-pp.available_idle_cpu
      0.17   2%      -0.1        0.10   4%  perf-profile.self.cycles-pp.set_pte_range
      0.16   2%      -0.1        0.10        perf-profile.self.cycles-pp.native_flush_tlb_one_user
      0.14   2%      -0.1        0.08        perf-profile.self.cycles-pp.lock_vma_under_rcu
      0.15   4%      -0.1        0.09   4%  perf-profile.self.cycles-pp.enqueue_entity
      0.14   3%      -0.1        0.09        perf-profile.self.cycles-pp._IO_file_xsputn
      0.12  14%      -0.1        0.06   7%  perf-profile.self.cycles-pp._raw_spin_lock_irq
      0.17   5%      -0.1        0.11   4%  perf-profile.self.cycles-pp.__update_load_avg_cfs_rq
      0.12   4%      -0.1        0.07   5%  perf-profile.self.cycles-pp.down_read_trylock
      0.13   2%      -0.1        0.08        perf-profile.self.cycles-pp.mas_wr_node_store
      0.12   3%      -0.1        0.07   5%  perf-profile.self.cycles-pp.__switch_to
      0.13   2%      -0.1        0.08   4%  perf-profile.self.cycles-pp._copy_from_user
      0.13            -0.1        0.08        perf-profile.self.cycles-pp.__free_one_page
      0.12   4%      -0.0        0.06   7%  perf-profile.self.cycles-pp.__rb_erase_color
      0.12   3%      -0.0        0.07   6%  perf-profile.self.cycles-pp.mas_next_slot
      0.12   3%      -0.0        0.07   5%  perf-profile.self.cycles-pp.menu_select
      0.12            -0.0        0.07        perf-profile.self.cycles-pp.mmap_region
      0.12            -0.0        0.07        perf-profile.self.cycles-pp.strncpy_from_user
      0.10            -0.0        0.05   7%  perf-profile.self.cycles-pp.__lruvec_stat_mod_folio
      0.12   3%      -0.0        0.08   6%  perf-profile.self.cycles-pp.perf_event_mmap_output
      0.11   3%      -0.0        0.06        perf-profile.self.cycles-pp.restore_fpregs_from_fpstate
      0.12   3%      -0.0        0.07   6%  perf-profile.self.cycles-pp.rmqueue_bulk
      0.11            -0.0        0.06   7%  perf-profile.self.cycles-pp._find_next_bit
      0.12   3%      -0.0        0.08   6%  perf-profile.self.cycles-pp.llist_add_batch
      0.14   2%      -0.0        0.09   4%  perf-profile.self.cycles-pp.obj_cgroup_charge
      0.12   4%      -0.0        0.07        perf-profile.self.cycles-pp.link_path_walk
      0.11   4%      -0.0        0.06   6%  perf-profile.self.cycles-pp.__count_memcg_events
      0.10   3%      -0.0        0.05   8%  perf-profile.self.cycles-pp.sched_mm_cid_migrate_to
      0.13   8%      -0.0        0.09   5%  perf-profile.self.cycles-pp.update_rq_clock
      0.11   6%      -0.0        0.07        perf-profile.self.cycles-pp.rwsem_mark_wake
      0.11   3%      -0.0        0.07        perf-profile.self.cycles-pp.x64_sys_call
      0.10   4%      -0.0        0.06   7%  perf-profile.self.cycles-pp.rcu_all_qs
      0.09   5%      -0.0        0.05   8%  perf-profile.self.cycles-pp.do_user_addr_fault
      0.10   3%      -0.0        0.06   6%  perf-profile.self.cycles-pp.handle_mm_fault
      0.09   5%      -0.0        0.05   8%  perf-profile.self.cycles-pp.pcpu_alloc_noprof
      0.12            -0.0        0.08        perf-profile.self.cycles-pp.native_sched_clock
      0.08            -0.0        0.04  44%  perf-profile.self.cycles-pp.prepare_task_switch
      0.11   3%      -0.0        0.07        perf-profile.self.cycles-pp.getenv
      0.08   4%      -0.0        0.04  44%  perf-profile.self.cycles-pp.refill_obj_stock
      0.09   5%      -0.0        0.05        perf-profile.self.cycles-pp.entry_SYSRETQ_unsafe_stack
      0.09   5%      -0.0        0.05        perf-profile.self.cycles-pp.vma_interval_tree_augment_rotate
      0.10            -0.0        0.06   7%  perf-profile.self.cycles-pp.task_h_load
      0.10   3%      -0.0        0.07   7%  perf-profile.self.cycles-pp.update_curr
      0.08   5%      -0.0        0.05        perf-profile.self.cycles-pp.__memcg_kmem_charge_page
      0.09   4%      -0.0        0.06   6%  perf-profile.self.cycles-pp.try_to_wake_up
      0.09   4%      -0.0        0.06   6%  perf-profile.self.cycles-pp.unmap_vmas
      0.08   5%      -0.0        0.05        perf-profile.self.cycles-pp.vm_area_dup
      0.07   6%      -0.0        0.04  44%  perf-profile.self.cycles-pp._IO_setb
      0.10   3%      -0.0        0.07   7%  perf-profile.self.cycles-pp.dequeue_task_fair
      0.09   5%      -0.0        0.06   9%  perf-profile.self.cycles-pp.__call_rcu_common
      0.08   4%      -0.0        0.05        perf-profile.self.cycles-pp.__flush_smp_call_function_queue
      0.17   2%      -0.0        0.14        perf-profile.self.cycles-pp.__dentry_kill
      0.08   4%      -0.0        0.05   7%  perf-profile.self.cycles-pp.__mod_memcg_state
      0.08            -0.0        0.05        perf-profile.self.cycles-pp.__alloc_pages_noprof
      0.08            -0.0        0.05        perf-profile.self.cycles-pp.__put_user_8
      0.08            -0.0        0.05        perf-profile.self.cycles-pp.__snprintf_chk
      0.08            -0.0        0.05        perf-profile.self.cycles-pp.mas_wr_walk
      0.08            -0.0        0.05        perf-profile.self.cycles-pp.unlink_anon_vmas
      0.12   4%      -0.0        0.09   5%  perf-profile.self.cycles-pp.update_rq_clock_task
      0.07   8%      -0.0        0.04  44%  perf-profile.self.cycles-pp.update_min_vruntime
      0.09   5%      -0.0        0.06   7%  perf-profile.self.cycles-pp.enqueue_task_fair
      0.08   4%      -0.0        0.05        perf-profile.self.cycles-pp.llist_reverse_order
      0.09   5%      -0.0        0.06        perf-profile.self.cycles-pp.__d_rehash
      0.09  14%      -0.0        0.06  11%  perf-profile.self.cycles-pp.update_sd_lb_stats
      0.08   6%      -0.0        0.05        perf-profile.self.cycles-pp.copy_page
      0.09   4%      -0.0        0.07        perf-profile.self.cycles-pp.update_cfs_group
      0.10   4%      -0.0        0.08   6%  perf-profile.self.cycles-pp.__update_load_avg_se
      0.17   4%      +0.0        0.20   2%  perf-profile.self.cycles-pp.down_read
      0.05            +0.0        0.08   4%  perf-profile.self.cycles-pp.dput
      0.20            +0.0        0.23   2%  perf-profile.self.cycles-pp.fput
      0.51   2%      +0.1        0.56        perf-profile.self.cycles-pp.d_alloc_parallel
      0.25   2%      +0.1        0.31   2%  perf-profile.self.cycles-pp.d_alloc
      0.00            +0.1        0.12   4%  perf-profile.self.cycles-pp.lockref_get
      0.46   2%      +4.2        4.69        perf-profile.self.cycles-pp.lockref_get_not_dead
      0.45            +4.5        4.91        perf-profile.self.cycles-pp.lockref_put_return
     36.60   3%     +16.8       53.40        perf-profile.self.cycles-pp.native_queued_spin_lock_slowpath


***************************************************************************************************
lkp-icl-2sp8: 64 threads 2 sockets Intel(R) Xeon(R) Gold 6346 CPU @ 3.10GHz (Ice Lake) with 256G memory
=========================================================================================
compiler/cpufreq_governor/disk/fs/kconfig/nr_threads/rootfs/tbox_group/test/testcase/testtime:
  gcc-13/performance/1HDD/ext4/x86_64-rhel-8.3/100%/debian-12-x86_64-20240206.cgz/lkp-icl-2sp8/getdent/stress-ng/60s

commit: 
  267574dee6 ("bcachefs: remove now spurious i_state initialization")
  d042dae6ad ("lockref: speculatively spin waiting for the lock to be released")

267574dee6ae0da6 d042dae6ad74df8a00ee8a3c6b7 
---------------- --------------------------- 
         %stddev     %change         %stddev
             \          |                \  
    177309            -4.8%     168834        vmstat.system.in
      5.76   8%     -10.4%       5.17   2%  iostat.cpu.idle
     91.68            +2.0%      93.54        iostat.cpu.system
      2.54           -49.7%       1.28   2%  iostat.cpu.user
      2.77  18%      -0.6        2.13   6%  mpstat.cpu.all.idle%
      1.14            -0.8        0.34   5%  mpstat.cpu.all.soft%
      2.60            -1.3        1.30        mpstat.cpu.all.usr%
    131.58  11%     -33.8%      87.05  22%  sched_debug.cfs_rq:/.load_avg.avg
    358.52  13%     -33.9%     237.11  20%  sched_debug.cfs_rq:/.load_avg.stddev
      3732   7%     -16.7%       3109  11%  sched_debug.cpu.avg_idle.min
  54365179   2%     -61.2%   21094696   4%  numa-numastat.node0.local_node
  54402060   2%     -61.2%   21116369   4%  numa-numastat.node0.numa_hit
  40309428   2%     -49.6%   20297594   4%  numa-numastat.node1.local_node
  40351498   2%     -49.6%   20336354   4%  numa-numastat.node1.numa_hit
  54513582   2%     -61.3%   21104676   4%  numa-vmstat.node0.numa_hit
  54476717   2%     -61.3%   21083003   4%  numa-vmstat.node0.numa_local
  40446773   2%     -49.7%   20327089   4%  numa-vmstat.node1.numa_hit
  40404702   2%     -49.8%   20288329   4%  numa-vmstat.node1.numa_local
     13178  17%     -47.2%       6951  19%  perf-c2c.DRAM.local
     31311  13%     -32.5%      21125  18%  perf-c2c.DRAM.remote
     29199  10%     -21.6%      22897  13%  perf-c2c.HITM.local
     13565  13%     -26.8%       9931  19%  perf-c2c.HITM.remote
     42764  11%     -23.2%      32828  15%  perf-c2c.HITM.total
      9550           -59.0%       3911   7%  stress-ng.getdent.nanosecs_per_getdents_call
 1.179e+08           -56.5%   51297497   2%  stress-ng.getdent.ops
   1964229           -56.5%     854956   2%  stress-ng.getdent.ops_per_sec
  86114063           -56.4%   37516313   2%  stress-ng.time.minor_page_faults
      3636            +2.3%       3718        stress-ng.time.system_time
     84.67           -57.2%      36.24   2%  stress-ng.time.user_time
     57605   3%      -6.3%      53991   3%  proc-vmstat.nr_active_anon
      1814            -4.3%       1736   4%  proc-vmstat.nr_active_file
    199146            +2.3%     203812        proc-vmstat.nr_inactive_anon
     37599            +4.4%      39262   2%  proc-vmstat.nr_mapped
     81422            -4.2%      78023        proc-vmstat.nr_slab_reclaimable
     49630            -1.9%      48672        proc-vmstat.nr_slab_unreclaimable
     57605   3%      -6.3%      53991   3%  proc-vmstat.nr_zone_active_anon
      1814            -4.3%       1736   4%  proc-vmstat.nr_zone_active_file
    199146            +2.3%     203812        proc-vmstat.nr_zone_inactive_anon
     15605  19%     -41.3%       9164  22%  proc-vmstat.numa_hint_faults
      8927  36%     -38.8%       5463  11%  proc-vmstat.numa_hint_faults_local
  94830413   2%     -56.3%   41449377   3%  proc-vmstat.numa_hit
  94751461   2%     -56.3%   41388944   3%  proc-vmstat.numa_local
    119660   8%     +26.4%     151293   7%  proc-vmstat.pgactivate
  99784640   2%     -57.0%   42943559   3%  proc-vmstat.pgalloc_normal
  86284666           -56.2%   37781294   2%  proc-vmstat.pgfault
  99496632   2%     -57.1%   42682486   3%  proc-vmstat.pgfree
      3.32   3%     -28.6%       2.37        perf-stat.i.MPKI
 1.114e+10           -32.5%  7.517e+09        perf-stat.i.branch-instructions
      0.66            -0.1        0.53        perf-stat.i.branch-miss-rate%
  70296622           -44.4%   39108658        perf-stat.i.branch-misses
     45.76            -5.5       40.29        perf-stat.i.cache-miss-rate%
 1.696e+08   2%     -54.1%   77750955        perf-stat.i.cache-misses
  3.68e+08   2%     -47.8%  1.921e+08        perf-stat.i.cache-references
      4.43           +58.7%       7.03        perf-stat.i.cpi
    271.12   3%     -24.9%     203.71   7%  perf-stat.i.cpu-migrations
      1364   2%    +120.5%       3008        perf-stat.i.cycles-between-cache-misses
 5.101e+10           -36.2%  3.255e+10        perf-stat.i.instructions
      0.23           -35.7%       0.15        perf-stat.i.ipc
     44.34           -56.2%      19.42        perf-stat.i.metric.K/sec
   1416143           -56.4%     617728   2%  perf-stat.i.minor-faults
   1416143           -56.4%     617728   2%  perf-stat.i.page-faults
      3.33   2%     -28.1%       2.39        perf-stat.overall.MPKI
      0.63            -0.1        0.52        perf-stat.overall.branch-miss-rate%
     46.07            -5.6       40.47        perf-stat.overall.cache-miss-rate%
      4.39           +57.2%       6.91        perf-stat.overall.cpi
      1321   2%    +118.5%       2887   2%  perf-stat.overall.cycles-between-cache-misses
      0.23           -36.4%       0.14        perf-stat.overall.ipc
 1.096e+10           -32.5%  7.405e+09        perf-stat.ps.branch-instructions
  69044394           -44.4%   38415093        perf-stat.ps.branch-misses
 1.669e+08   2%     -54.0%   76744131   2%  perf-stat.ps.cache-misses
 3.623e+08   2%     -47.6%  1.897e+08   2%  perf-stat.ps.cache-references
    268.10   3%     -24.8%     201.67   7%  perf-stat.ps.cpu-migrations
 5.019e+10           -36.1%  3.207e+10        perf-stat.ps.instructions
   1393551           -56.3%     609646   2%  perf-stat.ps.minor-faults
   1393551           -56.3%     609646   2%  perf-stat.ps.page-faults
 3.071e+12           -36.3%  1.957e+12        perf-stat.total.instructions
     58.94           -52.6        6.32  33%  perf-profile.calltrace.cycles-pp.syscall
     58.03           -52.0        5.99  35%  perf-profile.calltrace.cycles-pp.entry_SYSCALL_64_after_hwframe.syscall
     57.96           -52.0        5.96  35%  perf-profile.calltrace.cycles-pp.do_syscall_64.entry_SYSCALL_64_after_hwframe.syscall
     29.21           -26.2        2.99  35%  perf-profile.calltrace.cycles-pp.__x64_sys_getdents.do_syscall_64.entry_SYSCALL_64_after_hwframe.syscall
     28.52           -25.6        2.90  36%  perf-profile.calltrace.cycles-pp.__x64_sys_getdents64.do_syscall_64.entry_SYSCALL_64_after_hwframe.syscall
     28.40           -25.5        2.88  36%  perf-profile.calltrace.cycles-pp.iterate_dir.__x64_sys_getdents.do_syscall_64.entry_SYSCALL_64_after_hwframe.syscall
     27.98           -25.2        2.82  37%  perf-profile.calltrace.cycles-pp.iterate_dir.__x64_sys_getdents64.do_syscall_64.entry_SYSCALL_64_after_hwframe.syscall
      8.70   4%      -8.3        0.36 102%  perf-profile.calltrace.cycles-pp.proc_tgid_net_readdir.iterate_dir.__x64_sys_getdents.do_syscall_64.entry_SYSCALL_64_after_hwframe
      8.66   4%      -8.3        0.35 102%  perf-profile.calltrace.cycles-pp.proc_tgid_net_readdir.iterate_dir.__x64_sys_getdents64.do_syscall_64.entry_SYSCALL_64_after_hwframe
      8.62   4%      -8.3        0.35 102%  perf-profile.calltrace.cycles-pp.proc_readdir_de.proc_tgid_net_readdir.iterate_dir.__x64_sys_getdents.do_syscall_64
      8.61   4%      -8.3        0.35 102%  perf-profile.calltrace.cycles-pp.proc_readdir_de.proc_tgid_net_readdir.iterate_dir.__x64_sys_getdents64.do_syscall_64
      5.90   5%      -5.2        0.69  14%  perf-profile.calltrace.cycles-pp.lookup_open.open_last_lookups.path_openat.do_filp_open.do_sys_openat2
      5.49  18%      -5.1        0.37 223%  perf-profile.calltrace.cycles-pp.eventfs_iterate.iterate_dir.__x64_sys_getdents64.do_syscall_64.entry_SYSCALL_64_after_hwframe
      5.47  18%      -5.1        0.36 223%  perf-profile.calltrace.cycles-pp.eventfs_iterate.iterate_dir.__x64_sys_getdents.do_syscall_64.entry_SYSCALL_64_after_hwframe
      5.09   4%      -5.1        0.00        perf-profile.calltrace.cycles-pp.proc_readdir_de.iterate_dir.__x64_sys_getdents.do_syscall_64.entry_SYSCALL_64_after_hwframe
      5.09   4%      -5.1        0.00        perf-profile.calltrace.cycles-pp.proc_readdir_de.iterate_dir.__x64_sys_getdents64.do_syscall_64.entry_SYSCALL_64_after_hwframe
      5.93   3%      -5.0        0.90  10%  perf-profile.calltrace.cycles-pp.__close
      5.64   3%      -4.8        0.80  11%  perf-profile.calltrace.cycles-pp.entry_SYSCALL_64_after_hwframe.__close
      5.63   3%      -4.8        0.80  11%  perf-profile.calltrace.cycles-pp.do_syscall_64.entry_SYSCALL_64_after_hwframe.__close
      5.55   3%      -4.8        0.77  11%  perf-profile.calltrace.cycles-pp.__x64_sys_close.do_syscall_64.entry_SYSCALL_64_after_hwframe.__close
      4.94  20%      -4.6        0.35 223%  perf-profile.calltrace.cycles-pp.__mutex_lock.eventfs_iterate.iterate_dir.__x64_sys_getdents64.do_syscall_64
      4.92  20%      -4.6        0.34 223%  perf-profile.calltrace.cycles-pp.__mutex_lock.eventfs_iterate.iterate_dir.__x64_sys_getdents.do_syscall_64
      4.34   4%      -3.9        0.40  71%  perf-profile.calltrace.cycles-pp.__fput.__x64_sys_close.do_syscall_64.entry_SYSCALL_64_after_hwframe.__close
      4.28   4%      -3.6        0.64  18%  perf-profile.calltrace.cycles-pp.inode_permission.link_path_walk.path_openat.do_filp_open.do_sys_openat2
      3.28   2%      -2.6        0.65   7%  perf-profile.calltrace.cycles-pp.brk
      3.20   2%      -2.6        0.62   7%  perf-profile.calltrace.cycles-pp.entry_SYSCALL_64_after_hwframe.brk
      3.20   2%      -2.6        0.62   7%  perf-profile.calltrace.cycles-pp.do_syscall_64.entry_SYSCALL_64_after_hwframe.brk
      3.16   2%      -2.6        0.61   7%  perf-profile.calltrace.cycles-pp.__do_sys_brk.do_syscall_64.entry_SYSCALL_64_after_hwframe.brk
      2.79   2%      -2.1        0.66   8%  perf-profile.calltrace.cycles-pp.asm_exc_page_fault
      2.52   3%      -2.0        0.48  45%  perf-profile.calltrace.cycles-pp.do_user_addr_fault.exc_page_fault.asm_exc_page_fault
      2.54   2%      -2.0        0.57   8%  perf-profile.calltrace.cycles-pp.exc_page_fault.asm_exc_page_fault
      2.51            -1.9        0.60   2%  perf-profile.calltrace.cycles-pp.proc_pident_readdir.iterate_dir.__x64_sys_getdents.do_syscall_64.entry_SYSCALL_64_after_hwframe
      2.49            -1.9        0.59        perf-profile.calltrace.cycles-pp.proc_pident_readdir.iterate_dir.__x64_sys_getdents64.do_syscall_64.entry_SYSCALL_64_after_hwframe
      2.39            -1.8        0.57   2%  perf-profile.calltrace.cycles-pp.proc_fill_cache.proc_pident_readdir.iterate_dir.__x64_sys_getdents64.do_syscall_64
      2.39            -1.8        0.58        perf-profile.calltrace.cycles-pp.proc_fill_cache.proc_pident_readdir.iterate_dir.__x64_sys_getdents.do_syscall_64
      5.01   3%      +1.8        6.76        perf-profile.calltrace.cycles-pp.walk_component.link_path_walk.path_openat.do_filp_open.do_sys_openat2
      0.00            +2.2        2.20   6%  perf-profile.calltrace.cycles-pp.lockref_get_not_dead.__legitimize_path.try_to_unlazy.lookup_fast.walk_component
      0.00            +2.2        2.20   6%  perf-profile.calltrace.cycles-pp.__legitimize_path.try_to_unlazy.lookup_fast.walk_component.link_path_walk
      0.00            +2.2        2.20   6%  perf-profile.calltrace.cycles-pp.try_to_unlazy.lookup_fast.walk_component.link_path_walk.path_openat
      3.39   4%      +3.2        6.54   2%  perf-profile.calltrace.cycles-pp.lookup_fast.walk_component.link_path_walk.path_openat.do_filp_open
      0.00            +3.5        3.45  12%  perf-profile.calltrace.cycles-pp.native_queued_spin_lock_slowpath._raw_spin_lock.lockref_get_not_dead.__legitimize_path.try_to_unlazy_next
      0.00            +3.5        3.48  12%  perf-profile.calltrace.cycles-pp._raw_spin_lock.lockref_get_not_dead.__legitimize_path.try_to_unlazy_next.lookup_fast
      0.00            +3.9        3.91   4%  perf-profile.calltrace.cycles-pp.__legitimize_path.try_to_unlazy_next.lookup_fast.walk_component.link_path_walk
      0.00            +3.9        3.91   4%  perf-profile.calltrace.cycles-pp.lockref_get_not_dead.__legitimize_path.try_to_unlazy_next.lookup_fast.walk_component
      0.00            +3.9        3.92   4%  perf-profile.calltrace.cycles-pp.try_to_unlazy_next.lookup_fast.walk_component.link_path_walk.path_openat
      0.90   4%      +5.7        6.62   9%  perf-profile.calltrace.cycles-pp.lockref_put_return.dput.terminate_walk.path_openat.do_filp_open
      7.79   4%      +9.7       17.50   2%  perf-profile.calltrace.cycles-pp.open_last_lookups.path_openat.do_filp_open.do_sys_openat2.__x64_sys_openat
      1.53   4%     +15.1       16.61   3%  perf-profile.calltrace.cycles-pp.lookup_fast.open_last_lookups.path_openat.do_filp_open.do_sys_openat2
      0.00           +15.3       15.34   3%  perf-profile.calltrace.cycles-pp._raw_spin_lock.lockref_get_not_dead.__legitimize_path.try_to_unlazy.lookup_fast
      0.18 141%     +15.7       15.91   3%  perf-profile.calltrace.cycles-pp.__legitimize_path.try_to_unlazy.lookup_fast.open_last_lookups.path_openat
      0.18 141%     +15.7       15.92   3%  perf-profile.calltrace.cycles-pp.try_to_unlazy.lookup_fast.open_last_lookups.path_openat.do_filp_open
      0.00           +15.9       15.90   3%  perf-profile.calltrace.cycles-pp.lockref_get_not_dead.__legitimize_path.try_to_unlazy.lookup_fast.open_last_lookups
     11.06   2%     +17.1       28.20   2%  perf-profile.calltrace.cycles-pp.link_path_walk.path_openat.do_filp_open.do_sys_openat2.__x64_sys_openat
      0.00           +17.4       17.40   3%  perf-profile.calltrace.cycles-pp._raw_spin_lock.lockref_get_not_dead.__legitimize_path.try_to_unlazy.link_path_walk
      0.66   9%     +19.9       20.56   3%  perf-profile.calltrace.cycles-pp.try_to_unlazy.link_path_walk.path_openat.do_filp_open.do_sys_openat2
      0.65  10%     +19.9       20.55   3%  perf-profile.calltrace.cycles-pp.__legitimize_path.try_to_unlazy.link_path_walk.path_openat.do_filp_open
      0.38  71%     +20.2       20.54   3%  perf-profile.calltrace.cycles-pp.lockref_get_not_dead.__legitimize_path.try_to_unlazy.link_path_walk.path_openat
      0.00           +32.4       32.45   3%  perf-profile.calltrace.cycles-pp.native_queued_spin_lock_slowpath._raw_spin_lock.lockref_get_not_dead.__legitimize_path.try_to_unlazy
      0.00           +35.8       35.76   3%  perf-profile.calltrace.cycles-pp.native_queued_spin_lock_slowpath._raw_spin_lock.dput.terminate_walk.path_openat
      0.00           +36.1       36.09   3%  perf-profile.calltrace.cycles-pp._raw_spin_lock.dput.terminate_walk.path_openat.do_filp_open
      1.19  10%     +41.6       42.82   3%  perf-profile.calltrace.cycles-pp.terminate_walk.path_openat.do_filp_open.do_sys_openat2.__x64_sys_openat
      1.15  10%     +41.6       42.80   3%  perf-profile.calltrace.cycles-pp.dput.terminate_walk.path_openat.do_filp_open.do_sys_openat2
     26.89   2%     +63.4       90.25   2%  perf-profile.calltrace.cycles-pp.open64
     26.57   2%     +63.6       90.13   2%  perf-profile.calltrace.cycles-pp.entry_SYSCALL_64_after_hwframe.open64
     26.55   2%     +63.6       90.12   2%  perf-profile.calltrace.cycles-pp.do_syscall_64.entry_SYSCALL_64_after_hwframe.open64
     26.46   2%     +63.6       90.09   2%  perf-profile.calltrace.cycles-pp.__x64_sys_openat.do_syscall_64.entry_SYSCALL_64_after_hwframe.open64
     26.43   2%     +63.6       90.08   2%  perf-profile.calltrace.cycles-pp.do_sys_openat2.__x64_sys_openat.do_syscall_64.entry_SYSCALL_64_after_hwframe.open64
     25.37   2%     +64.0       89.41   2%  perf-profile.calltrace.cycles-pp.do_filp_open.do_sys_openat2.__x64_sys_openat.do_syscall_64.entry_SYSCALL_64_after_hwframe
     25.30   2%     +64.1       89.39   2%  perf-profile.calltrace.cycles-pp.path_openat.do_filp_open.do_sys_openat2.__x64_sys_openat.do_syscall_64
     59.11           -52.7        6.38  33%  perf-profile.children.cycles-pp.syscall
     56.40           -50.7        5.70  36%  perf-profile.children.cycles-pp.iterate_dir
     29.22           -26.2        2.99  35%  perf-profile.children.cycles-pp.__x64_sys_getdents
     27.45   4%     -25.7        1.71  27%  perf-profile.children.cycles-pp.proc_readdir_de
     28.53           -25.6        2.90  36%  perf-profile.children.cycles-pp.__x64_sys_getdents64
     17.36   4%     -16.2        1.18  24%  perf-profile.children.cycles-pp.proc_tgid_net_readdir
     14.38   4%     -13.7        0.65  38%  perf-profile.children.cycles-pp._raw_read_lock
     10.97  18%     -10.1        0.85 186%  perf-profile.children.cycles-pp.eventfs_iterate
      9.85  20%      -9.2        0.70 223%  perf-profile.children.cycles-pp.__mutex_lock
      9.14  22%      -8.5        0.68 223%  perf-profile.children.cycles-pp.osq_lock
      6.78   6%      -6.0        0.75  21%  perf-profile.children.cycles-pp.kernfs_fop_readdir
      6.54   7%      -5.7        0.87  19%  perf-profile.children.cycles-pp.down_read
      5.94   6%      -5.5        0.40  39%  perf-profile.children.cycles-pp.up_read
      5.90   5%      -5.2        0.70  14%  perf-profile.children.cycles-pp.lookup_open
      5.68   6%      -5.1        0.55  17%  perf-profile.children.cycles-pp.proc_lookup_de
      5.98   3%      -5.1        0.92  10%  perf-profile.children.cycles-pp.__close
      6.65            -5.0        1.63        perf-profile.children.cycles-pp.proc_fill_cache
      5.57   6%      -5.0        0.55  16%  perf-profile.children.cycles-pp.proc_tgid_net_lookup
      5.56   3%      -4.8        0.78  11%  perf-profile.children.cycles-pp.__x64_sys_close
      5.06   4%      -4.3        0.73  18%  perf-profile.children.cycles-pp.inode_permission
      5.01            -3.8        1.19        perf-profile.children.cycles-pp.proc_pident_readdir
      4.36   4%      -3.8        0.56  12%  perf-profile.children.cycles-pp.__fput
      4.70            -3.6        1.14   4%  perf-profile.children.cycles-pp.__d_lookup
      3.85   6%      -3.3        0.51  20%  perf-profile.children.cycles-pp.kernfs_iop_permission
      3.54            -3.1        0.48   9%  perf-profile.children.cycles-pp.do_open
      3.58            -2.6        0.93        perf-profile.children.cycles-pp.d_hash_and_lookup
      3.29   2%      -2.6        0.65   7%  perf-profile.children.cycles-pp.brk
      3.16   2%      -2.6        0.61   7%  perf-profile.children.cycles-pp.__do_sys_brk
      2.70   7%      -2.5        0.20  32%  perf-profile.children.cycles-pp.kernfs_dop_revalidate
      2.76   6%      -2.4        0.35  13%  perf-profile.children.cycles-pp.__dentry_kill
      2.67  11%      -2.3        0.35  14%  perf-profile.children.cycles-pp.proc_get_inode
      3.01   2%      -2.3        0.72   8%  perf-profile.children.cycles-pp.asm_exc_page_fault
      2.60  11%      -2.3        0.33  13%  perf-profile.children.cycles-pp.new_inode
      2.70   2%      -2.1        0.60   8%  perf-profile.children.cycles-pp.exc_page_fault
      2.69   3%      -2.1        0.60   8%  perf-profile.children.cycles-pp.do_user_addr_fault
      2.48   2%      -2.0        0.44   9%  perf-profile.children.cycles-pp.do_vmi_align_munmap
      2.32   2%      -2.0        0.29   9%  perf-profile.children.cycles-pp.do_dentry_open
      1.88   8%      -1.7        0.16  20%  perf-profile.children.cycles-pp.evict
      2.16   3%      -1.7        0.50   8%  perf-profile.children.cycles-pp.handle_mm_fault
      1.98   2%      -1.7        0.31  10%  perf-profile.children.cycles-pp.unmap_region
      2.01   3%      -1.6        0.45   9%  perf-profile.children.cycles-pp.__handle_mm_fault
      1.86   3%      -1.5        0.40   9%  perf-profile.children.cycles-pp.do_anonymous_page
      1.53   6%      -1.3        0.22   8%  perf-profile.children.cycles-pp.__lookup_slow
      1.35   4%      -1.2        0.14  12%  perf-profile.children.cycles-pp.security_file_open
      1.35   4%      -1.2        0.14  15%  perf-profile.children.cycles-pp.apparmor_file_open
      1.42   3%      -1.1        0.31   8%  perf-profile.children.cycles-pp.alloc_empty_file
      1.37   3%      -0.9        0.42   5%  perf-profile.children.cycles-pp.handle_softirqs
      1.36   3%      -0.9        0.41   4%  perf-profile.children.cycles-pp.rcu_core
      1.35   2%      -0.9        0.41   5%  perf-profile.children.cycles-pp.rcu_do_batch
      1.08   4%      -0.9        0.20   9%  perf-profile.children.cycles-pp.init_file
      1.21   3%      -0.8        0.36   6%  perf-profile.children.cycles-pp.kmem_cache_free
      0.92   2%      -0.8        0.07  27%  perf-profile.children.cycles-pp.mutex_lock
      1.04   2%      -0.8        0.23   7%  perf-profile.children.cycles-pp.step_into
      0.87   2%      -0.8        0.10  15%  perf-profile.children.cycles-pp.pde_put
      0.92   4%      -0.7        0.17  10%  perf-profile.children.cycles-pp.security_file_alloc
      1.00            -0.7        0.27   2%  perf-profile.children.cycles-pp.proc_map_files_readdir
      0.83   4%      -0.7        0.11  15%  perf-profile.children.cycles-pp.may_open
      0.82   2%      -0.7        0.13  10%  perf-profile.children.cycles-pp.tlb_finish_mmu
      0.96   3%      -0.7        0.27   8%  perf-profile.children.cycles-pp.alloc_anon_folio
      1.16   2%      -0.7        0.47   9%  perf-profile.children.cycles-pp.asm_sysvec_apic_timer_interrupt
      0.82   4%      -0.7        0.14  12%  perf-profile.children.cycles-pp.apparmor_file_alloc_security
      0.80   2%      -0.7        0.11  12%  perf-profile.children.cycles-pp.folios_put_refs
      1.13   3%      -0.7        0.45   9%  perf-profile.children.cycles-pp.sysvec_apic_timer_interrupt
      0.86   5%      -0.7        0.18  20%  perf-profile.children.cycles-pp.irq_exit_rcu
      0.87   2%      -0.7        0.20   3%  perf-profile.children.cycles-pp.proc_readfd_common
      0.75   2%      -0.6        0.11  12%  perf-profile.children.cycles-pp.__fdget_pos
      0.84            -0.6        0.20   2%  perf-profile.children.cycles-pp.proc_ns_dir_readdir
      0.74            -0.6        0.12  10%  perf-profile.children.cycles-pp.__tlb_batch_free_encoded_pages
      0.69   3%      -0.6        0.06  19%  perf-profile.children.cycles-pp.d_splice_alias
      0.74   2%      -0.6        0.12  10%  perf-profile.children.cycles-pp.free_pages_and_swap_cache
      0.63   2%      -0.6        0.08  11%  perf-profile.children.cycles-pp.folio_batch_move_lru
      0.67   5%      -0.5        0.13   8%  perf-profile.children.cycles-pp.security_file_free
      0.61   2%      -0.5        0.07   9%  perf-profile.children.cycles-pp.fsnotify_grab_connector
      0.66   5%      -0.5        0.13  10%  perf-profile.children.cycles-pp.apparmor_file_free_security
      0.61   2%      -0.5        0.08   8%  perf-profile.children.cycles-pp.down_read_killable
      0.60   2%      -0.5        0.07  12%  perf-profile.children.cycles-pp.lru_add_drain
      0.60   2%      -0.5        0.07  12%  perf-profile.children.cycles-pp.lru_add_drain_cpu
      0.69   4%      -0.5        0.17   5%  perf-profile.children.cycles-pp.__slab_free
      0.58   4%      -0.5        0.06  11%  perf-profile.children.cycles-pp.kernfs_dir_pos
      0.78   2%      -0.5        0.27   5%  perf-profile.children.cycles-pp.filldir
      0.76            -0.5        0.26   6%  perf-profile.children.cycles-pp.filldir64
      0.77   3%      -0.5        0.28   6%  perf-profile.children.cycles-pp.clear_bhb_loop
      0.60   2%      -0.5        0.11   6%  perf-profile.children.cycles-pp.filp_flush
      0.75   2%      -0.5        0.26   6%  perf-profile.children.cycles-pp.kmem_cache_alloc_noprof
      0.73   2%      -0.5        0.25   7%  perf-profile.children.cycles-pp.alloc_inode
      0.62   6%      -0.5        0.14   8%  perf-profile.children.cycles-pp.security_file_permission
      0.59   6%      -0.5        0.13   9%  perf-profile.children.cycles-pp.apparmor_file_permission
      0.48   3%      -0.5        0.03 100%  perf-profile.children.cycles-pp.__d_add
      0.52   2%      -0.4        0.08   6%  perf-profile.children.cycles-pp.dnotify_flush
      0.60   3%      -0.4        0.16   7%  perf-profile.children.cycles-pp.vma_alloc_folio_noprof
      0.59   4%      -0.4        0.16  11%  perf-profile.children.cycles-pp.alloc_pages_mpol_noprof
      0.50   2%      -0.4        0.07   7%  perf-profile.children.cycles-pp.fsnotify_find_mark
      0.66   2%      -0.4        0.24   3%  perf-profile.children.cycles-pp.d_alloc_parallel
      0.56   3%      -0.4        0.15  10%  perf-profile.children.cycles-pp.__alloc_pages_noprof
      0.56   4%      -0.4        0.17   8%  perf-profile.children.cycles-pp.kmem_cache_alloc_lru_noprof
      0.48   2%      -0.4        0.10  10%  perf-profile.children.cycles-pp.unmap_vmas
      0.48   3%      -0.4        0.09   7%  perf-profile.children.cycles-pp.unmap_page_range
      0.47   2%      -0.4        0.09  10%  perf-profile.children.cycles-pp.zap_pmd_range
      0.46   3%      -0.4        0.09  10%  perf-profile.children.cycles-pp.zap_pte_range
      0.49   2%      -0.4        0.12   6%  perf-profile.children.cycles-pp.do_brk_flags
      0.47   3%      -0.4        0.12   9%  perf-profile.children.cycles-pp.get_page_from_freelist
      0.38            -0.3        0.06   7%  perf-profile.children.cycles-pp.zap_present_ptes
      0.48   2%      -0.3        0.18   6%  perf-profile.children.cycles-pp.__memcg_slab_post_alloc_hook
      0.36   3%      -0.3        0.06  13%  perf-profile.children.cycles-pp.__call_rcu_common
      0.49   3%      -0.3        0.19   3%  perf-profile.children.cycles-pp.d_alloc
      0.32   2%      -0.3        0.02  99%  perf-profile.children.cycles-pp.alloc_fd
      0.36   2%      -0.3        0.07  12%  perf-profile.children.cycles-pp.inode_wait_for_writeback
      0.53   7%      -0.3        0.26  13%  perf-profile.children.cycles-pp.kthread
      0.53   7%      -0.3        0.26  13%  perf-profile.children.cycles-pp.ret_from_fork
      0.53   7%      -0.3        0.26  13%  perf-profile.children.cycles-pp.ret_from_fork_asm
      0.51   8%      -0.3        0.24  16%  perf-profile.children.cycles-pp.run_ksoftirqd
      0.51   8%      -0.3        0.24  15%  perf-profile.children.cycles-pp.smpboot_thread_fn
      0.37   5%      -0.3        0.10  10%  perf-profile.children.cycles-pp.proc_alloc_inode
      0.32   6%      -0.3        0.07  17%  perf-profile.children.cycles-pp.___slab_alloc
      0.38   2%      -0.2        0.14   4%  perf-profile.children.cycles-pp.__cond_resched
      0.32   2%      -0.2        0.08  10%  perf-profile.children.cycles-pp.__split_vma
      0.38   2%      -0.2        0.14   6%  perf-profile.children.cycles-pp.entry_SYSCALL_64
      0.28   2%      -0.2        0.05        perf-profile.children.cycles-pp.lockref_get
      0.32   2%      -0.2        0.09   6%  perf-profile.children.cycles-pp.__d_lookup_rcu
      0.32   3%      -0.2        0.09   7%  perf-profile.children.cycles-pp.__mem_cgroup_charge
      0.42  21%      -0.2        0.20   6%  perf-profile.children.cycles-pp.rb_next
      0.34   3%      -0.2        0.13   5%  perf-profile.children.cycles-pp.getname_flags
      0.36   2%      -0.2        0.15   8%  perf-profile.children.cycles-pp.inode_init_always
      0.23   2%      -0.2        0.03  70%  perf-profile.children.cycles-pp.task_lookup_next_fdget_rcu
      0.23   5%      -0.2        0.04  45%  perf-profile.children.cycles-pp.security_file_post_open
      0.30   2%      -0.2        0.11   6%  perf-profile.children.cycles-pp.__memcg_slab_free_hook
      0.22   5%      -0.2        0.04  45%  perf-profile.children.cycles-pp.ima_file_check
      0.27   2%      -0.2        0.10   7%  perf-profile.children.cycles-pp.entry_SYSRETQ_unsafe_stack
      0.24   2%      -0.2        0.07   5%  perf-profile.children.cycles-pp.pid_delete_dentry
      0.22   3%      -0.2        0.06  19%  perf-profile.children.cycles-pp.path_init
      0.25   3%      -0.2        0.09   7%  perf-profile.children.cycles-pp.sync_regs
      0.21   3%      -0.2        0.06   9%  perf-profile.children.cycles-pp.proc_free_inode
      0.24   3%      -0.1        0.09   5%  perf-profile.children.cycles-pp.__d_alloc
      0.23   4%      -0.1        0.09   7%  perf-profile.children.cycles-pp.strncpy_from_user
      0.22   2%      -0.1        0.08   5%  perf-profile.children.cycles-pp.native_irq_return_iret
      0.19   2%      -0.1        0.06   6%  perf-profile.children.cycles-pp.mas_wr_store_entry
      0.22   2%      -0.1        0.08   5%  perf-profile.children.cycles-pp.verify_dirent_name
      0.20   2%      -0.1        0.07   5%  perf-profile.children.cycles-pp.stress_getdents_dir
      0.20   5%      -0.1        0.08   4%  perf-profile.children.cycles-pp.pid_revalidate
      0.20   3%      -0.1        0.08  10%  perf-profile.children.cycles-pp.mod_objcg_state
      0.19            -0.1        0.07   8%  perf-profile.children.cycles-pp.stress_getdents64_dir
      0.18   4%      -0.1        0.06   7%  perf-profile.children.cycles-pp.strlcat
      0.15   3%      -0.1        0.03 100%  perf-profile.children.cycles-pp.nd_jump_root
      0.17   4%      -0.1        0.06   9%  perf-profile.children.cycles-pp.perf_event_mmap
      0.18   2%      -0.1        0.07   5%  perf-profile.children.cycles-pp.snprintf
      0.19   2%      -0.1        0.07   9%  perf-profile.children.cycles-pp.security_inode_alloc
      0.17   4%      -0.1        0.06   9%  perf-profile.children.cycles-pp.__lruvec_stat_mod_folio
      0.16   4%      -0.1        0.05   7%  perf-profile.children.cycles-pp.perf_event_mmap_event
      0.18   2%      -0.1        0.06   7%  perf-profile.children.cycles-pp.vsnprintf
      0.18   2%      -0.1        0.06   7%  perf-profile.children.cycles-pp.memchr
      0.17   4%      -0.1        0.06   7%  perf-profile.children.cycles-pp.clear_page_erms
      0.18   2%      -0.1        0.07  12%  perf-profile.children.cycles-pp.generic_permission
      0.16   3%      -0.1        0.06   8%  perf-profile.children.cycles-pp.__mod_memcg_lruvec_state
      0.16   2%      -0.1        0.06   8%  perf-profile.children.cycles-pp.syscall_exit_to_user_mode
      0.18   2%      -0.1        0.08   6%  perf-profile.children.cycles-pp.rcu_cblist_dequeue
      0.15            -0.1        0.05   7%  perf-profile.children.cycles-pp.__perf_sw_event
      0.16   3%      -0.1        0.06   8%  perf-profile.children.cycles-pp.rcu_all_qs
      0.13            -0.1        0.03  70%  perf-profile.children.cycles-pp.___perf_sw_event
      0.13   6%      -0.1        0.04  45%  perf-profile.children.cycles-pp.__check_object_size
      0.11            -0.1        0.02  99%  perf-profile.children.cycles-pp.errseq_sample
      0.00            +0.1        0.05   7%  perf-profile.children.cycles-pp.get_jiffies_update
      0.00            +0.1        0.05   7%  perf-profile.children.cycles-pp.tmigr_requires_handle_remote
      0.00            +0.1        0.06   6%  perf-profile.children.cycles-pp.vfs_fstatat
      0.00            +0.1        0.06   6%  perf-profile.children.cycles-pp.vfs_statx
      0.00            +0.1        0.06        perf-profile.children.cycles-pp.__do_sys_newfstatat
      0.00            +0.1        0.06   6%  perf-profile.children.cycles-pp.filename_lookup
      0.00            +0.1        0.06   6%  perf-profile.children.cycles-pp.path_lookupat
      0.24   3%      +0.2        0.44   4%  perf-profile.children.cycles-pp.putname
      5.03   3%      +1.9        6.93        perf-profile.children.cycles-pp.walk_component
      2.70   2%      +4.1        6.80   9%  perf-profile.children.cycles-pp.lockref_put_return
      0.12  12%      +4.3        4.38   6%  perf-profile.children.cycles-pp.try_to_unlazy_next
     93.59            +4.4       97.98        perf-profile.children.cycles-pp.entry_SYSCALL_64_after_hwframe
     93.49            +4.4       97.94        perf-profile.children.cycles-pp.do_syscall_64
      7.80   4%      +9.7       17.52   2%  perf-profile.children.cycles-pp.open_last_lookups
     11.09   2%     +17.3       28.42   2%  perf-profile.children.cycles-pp.link_path_walk
      4.95   4%     +18.3       23.29   2%  perf-profile.children.cycles-pp.lookup_fast
      6.89   4%     +36.7       43.64   2%  perf-profile.children.cycles-pp.dput
      1.37   9%     +37.4       38.81   3%  perf-profile.children.cycles-pp.try_to_unlazy
      1.20  10%     +41.7       42.95   3%  perf-profile.children.cycles-pp.terminate_walk
      1.42  10%     +41.8       43.18   3%  perf-profile.children.cycles-pp.__legitimize_path
      1.11  12%     +42.0       43.16   3%  perf-profile.children.cycles-pp.lockref_get_not_dead
     26.94   2%     +63.3       90.27   2%  perf-profile.children.cycles-pp.open64
     26.49   2%     +63.9       90.38   2%  perf-profile.children.cycles-pp.__x64_sys_openat
     26.46   2%     +63.9       90.38   2%  perf-profile.children.cycles-pp.do_sys_openat2
      9.73   7%     +64.0       73.74   3%  perf-profile.children.cycles-pp._raw_spin_lock
     25.39   2%     +64.3       89.71   2%  perf-profile.children.cycles-pp.do_filp_open
     25.33   2%     +64.4       89.69   2%  perf-profile.children.cycles-pp.path_openat
      4.21  14%     +68.2       72.38   3%  perf-profile.children.cycles-pp.native_queued_spin_lock_slowpath
     14.22   4%     -13.6        0.64  37%  perf-profile.self.cycles-pp._raw_read_lock
     12.62   4%     -11.9        0.73  28%  perf-profile.self.cycles-pp.proc_readdir_de
      9.07  22%      -8.4        0.68 223%  perf-profile.self.cycles-pp.osq_lock
      6.45   7%      -5.6        0.84  19%  perf-profile.self.cycles-pp.down_read
      5.89   6%      -5.5        0.39  39%  perf-profile.self.cycles-pp.up_read
      5.72   2%      -4.4        1.36   6%  perf-profile.self.cycles-pp._raw_spin_lock
      2.20            -1.4        0.78   3%  perf-profile.self.cycles-pp.__d_lookup
      1.50   4%      -1.4        0.09  30%  perf-profile.self.cycles-pp.proc_lookup_de
      1.33   4%      -1.2        0.14  15%  perf-profile.self.cycles-pp.apparmor_file_open
      0.86   2%      -0.8        0.04  77%  perf-profile.self.cycles-pp.mutex_lock
      0.86   2%      -0.8        0.09  16%  perf-profile.self.cycles-pp.pde_put
      0.80   4%      -0.7        0.14  10%  perf-profile.self.cycles-pp.apparmor_file_alloc_security
      0.60   2%      -0.5        0.07  11%  perf-profile.self.cycles-pp.do_dentry_open
      0.65   5%      -0.5        0.13  12%  perf-profile.self.cycles-pp.apparmor_file_free_security
      0.68   4%      -0.5        0.16   5%  perf-profile.self.cycles-pp.__slab_free
      0.58   3%      -0.5        0.07   9%  perf-profile.self.cycles-pp.down_read_killable
      0.76   3%      -0.5        0.28   5%  perf-profile.self.cycles-pp.clear_bhb_loop
      0.50   2%      -0.5        0.04  71%  perf-profile.self.cycles-pp.__fput
      0.77   3%      -0.5        0.31   5%  perf-profile.self.cycles-pp.proc_fill_cache
      0.55   6%      -0.4        0.12  10%  perf-profile.self.cycles-pp.apparmor_file_permission
      0.50   2%      -0.4        0.11   6%  perf-profile.self.cycles-pp.kernfs_fop_readdir
      0.56   2%      -0.4        0.20   5%  perf-profile.self.cycles-pp.filldir
      0.56   2%      -0.4        0.20   6%  perf-profile.self.cycles-pp.filldir64
      0.38   3%      -0.3        0.12  11%  perf-profile.self.cycles-pp.inode_permission
      0.31   2%      -0.2        0.09   7%  perf-profile.self.cycles-pp.__d_lookup_rcu
      0.40  21%      -0.2        0.20   7%  perf-profile.self.cycles-pp.rb_next
      0.31   2%      -0.2        0.12   9%  perf-profile.self.cycles-pp.kmem_cache_alloc_noprof
      0.26            -0.2        0.10   4%  perf-profile.self.cycles-pp.entry_SYSRETQ_unsafe_stack
      0.23   2%      -0.2        0.07   5%  perf-profile.self.cycles-pp.pid_delete_dentry
      0.24   3%      -0.2        0.08   8%  perf-profile.self.cycles-pp.__memcg_slab_post_alloc_hook
      0.24   3%      -0.2        0.09   7%  perf-profile.self.cycles-pp.sync_regs
      0.23   2%      -0.1        0.08   5%  perf-profile.self.cycles-pp.syscall
      0.22   2%      -0.1        0.08   5%  perf-profile.self.cycles-pp.native_irq_return_iret
      0.21   2%      -0.1        0.07  10%  perf-profile.self.cycles-pp.link_path_walk
      0.21   2%      -0.1        0.08   4%  perf-profile.self.cycles-pp.__cond_resched
      0.16   3%      -0.1        0.03  70%  perf-profile.self.cycles-pp.d_alloc_parallel
      0.18   4%      -0.1        0.07   7%  perf-profile.self.cycles-pp.__fdget_pos
      0.18   3%      -0.1        0.06   7%  perf-profile.self.cycles-pp.stress_getdents_dir
      0.18   3%      -0.1        0.07   7%  perf-profile.self.cycles-pp.kmem_cache_free
      0.17   2%      -0.1        0.06   6%  perf-profile.self.cycles-pp.stress_getdents64_dir
      0.17   4%      -0.1        0.06   6%  perf-profile.self.cycles-pp.strlcat
      0.14   5%      -0.1        0.03  70%  perf-profile.self.cycles-pp.step_into
      0.17   4%      -0.1        0.06   7%  perf-profile.self.cycles-pp.clear_page_erms
      0.16   2%      -0.1        0.06   8%  perf-profile.self.cycles-pp.memchr
      0.16   3%      -0.1        0.06   7%  perf-profile.self.cycles-pp.mod_objcg_state
      0.15   2%      -0.1        0.05   7%  perf-profile.self.cycles-pp.do_syscall_64
      0.17   2%      -0.1        0.08   6%  perf-profile.self.cycles-pp.rcu_cblist_dequeue
      0.12   3%      -0.1        0.04  71%  perf-profile.self.cycles-pp.inode_init_always
      0.14   3%      -0.1        0.06  11%  perf-profile.self.cycles-pp.generic_permission
      0.00            +0.1        0.05   7%  perf-profile.self.cycles-pp.get_jiffies_update
      0.24   3%      +0.2        0.44   4%  perf-profile.self.cycles-pp.putname
      2.66   3%      +4.1        6.77   9%  perf-profile.self.cycles-pp.lockref_put_return
      0.85   5%      +5.7        6.58   8%  perf-profile.self.cycles-pp.lockref_get_not_dead
      4.08  14%     +68.0       72.04   3%  perf-profile.self.cycles-pp.native_queued_spin_lock_slowpath



***************************************************************************************************
lkp-icl-2sp8: 64 threads 2 sockets Intel(R) Xeon(R) Gold 6346 CPU @ 3.10GHz (Ice Lake) with 256G memory
=========================================================================================
compiler/cpufreq_governor/disk/fs/kconfig/nr_threads/rootfs/tbox_group/test/testcase/testtime:
  gcc-13/performance/1HDD/xfs/x86_64-rhel-8.3/100%/debian-12-x86_64-20240206.cgz/lkp-icl-2sp8/getdent/stress-ng/60s

commit: 
  267574dee6 ("bcachefs: remove now spurious i_state initialization")
  d042dae6ad ("lockref: speculatively spin waiting for the lock to be released")

267574dee6ae0da6 d042dae6ad74df8a00ee8a3c6b7 
---------------- --------------------------- 
         %stddev     %change         %stddev
             \          |                \  
      2.64   5%     -38.8%       1.61   9%  iostat.cpu.user
    259963  10%     -15.4%     219891   9%  meminfo.Active
    259835  10%     -15.4%     219763   9%  meminfo.Active(anon)
      0.96   4%      -0.6        0.38  15%  mpstat.cpu.all.soft%
      2.70   5%      -1.1        1.65   9%  mpstat.cpu.all.usr%
    211.08   9%     -41.0%     124.64  31%  sched_debug.cfs_rq:/.load_avg.avg
      3860  24%     -34.1%       2545   4%  sched_debug.cpu.avg_idle.min
  49162966           -57.6%   20842987  11%  numa-numastat.node0.local_node
  49203248           -57.6%   20885029  11%  numa-numastat.node0.numa_hit
  39549538           -50.2%   19693291   9%  numa-numastat.node1.local_node
  39591591           -50.2%   19718716   8%  numa-numastat.node1.numa_hit
  49261289           -57.6%   20866465  11%  numa-vmstat.node0.numa_hit
  49221006           -57.7%   20824423  11%  numa-vmstat.node0.numa_local
  39661116           -50.3%   19702525   9%  numa-vmstat.node1.numa_hit
  39619062           -50.3%   19677100   9%  numa-vmstat.node1.numa_local
     12372   3%     -45.1%       6789  12%  perf-c2c.DRAM.local
     36077   2%     -45.0%      19825   9%  perf-c2c.DRAM.remote
     32989   2%     -30.5%      22935  11%  perf-c2c.HITM.local
     17205   2%     -46.6%       9182  10%  perf-c2c.HITM.remote
     50194   2%     -36.0%      32118  10%  perf-c2c.HITM.total
  88807242           -54.3%   40604534  10%  proc-vmstat.numa_hit
  88724762           -54.3%   40537067  10%  proc-vmstat.numa_local
    130416   7%     +21.3%     158188   3%  proc-vmstat.pgactivate
  92701259           -54.7%   41954988  11%  proc-vmstat.pgalloc_normal
  80544858           -54.2%   36859393  10%  proc-vmstat.pgfault
  92449287           -54.9%   41735344  11%  proc-vmstat.pgfree
     11060           -58.7%       4569  22%  stress-ng.getdent.nanosecs_per_getdents_call
 1.135e+08           -54.6%   51568726  10%  stress-ng.getdent.ops
   1891648           -54.6%     859477  10%  stress-ng.getdent.ops_per_sec
  80355832           -54.5%   36564567  10%  stress-ng.time.minor_page_faults
      3626            +2.1%       3702        stress-ng.time.system_time
     80.35           -54.4%      36.65  10%  stress-ng.time.user_time
      2.88   2%     -21.6%       2.25   3%  perf-stat.i.MPKI
 1.202e+10   5%     -35.3%  7.773e+09   7%  perf-stat.i.branch-instructions
  78049914   4%     -33.0%   52278904   9%  perf-stat.i.branch-misses
     44.35   3%      -4.4       39.94   4%  perf-stat.i.cache-miss-rate%
 1.629e+08   5%     -52.0%   78236809  11%  perf-stat.i.cache-misses
 3.527e+08   5%     -45.8%   1.91e+08   9%  perf-stat.i.cache-references
      3.78   3%     +75.9%       6.64   3%  perf-stat.i.cpi
    299.98   8%     -28.2%     215.47  15%  perf-stat.i.cpu-migrations
      1341   2%    +122.2%       2981   3%  perf-stat.i.cycles-between-cache-misses
 5.574e+10   5%     -39.1%  3.397e+10   8%  perf-stat.i.instructions
      0.29  10%     -39.7%       0.18  16%  perf-stat.i.ipc
     39.56   5%     -52.9%      18.63  12%  perf-stat.i.metric.K/sec
   1264058   5%     -53.0%     593585  13%  perf-stat.i.minor-faults
   1264058   5%     -53.0%     593585  13%  perf-stat.i.page-faults
      2.93           -21.4%       2.30   2%  perf-stat.overall.MPKI
     46.18            -5.3       40.88        perf-stat.overall.cache-miss-rate%
      3.85           +69.7%       6.53   5%  perf-stat.overall.cpi
      1313          +116.3%       2842   7%  perf-stat.overall.cycles-between-cache-misses
      0.26           -40.9%       0.15   5%  perf-stat.overall.ipc
 1.184e+10   5%     -35.4%  7.645e+09   7%  perf-stat.ps.branch-instructions
  76385602   4%     -33.2%   51045849   9%  perf-stat.ps.branch-misses
 1.606e+08   5%     -52.0%   77029112  10%  perf-stat.ps.cache-misses
 3.478e+08   5%     -45.9%  1.882e+08   9%  perf-stat.ps.cache-references
    294.68   8%     -28.1%     211.78  15%  perf-stat.ps.cpu-migrations
 5.487e+10   5%     -39.1%   3.34e+10   8%  perf-stat.ps.instructions
   1246246   5%     -53.1%     584418  12%  perf-stat.ps.minor-faults
   1246246   5%     -53.1%     584418  12%  perf-stat.ps.page-faults
 3.532e+12           -40.9%  2.088e+12   5%  perf-stat.total.instructions
     65.80           -56.9        8.86  55%  perf-profile.calltrace.cycles-pp.syscall
     64.94           -56.4        8.52  56%  perf-profile.calltrace.cycles-pp.entry_SYSCALL_64_after_hwframe.syscall
     64.88           -56.4        8.50  56%  perf-profile.calltrace.cycles-pp.do_syscall_64.entry_SYSCALL_64_after_hwframe.syscall
     32.57           -28.3        4.27  57%  perf-profile.calltrace.cycles-pp.__x64_sys_getdents.do_syscall_64.entry_SYSCALL_64_after_hwframe.syscall
     32.08           -27.9        4.15  57%  perf-profile.calltrace.cycles-pp.__x64_sys_getdents64.do_syscall_64.entry_SYSCALL_64_after_hwframe.syscall
     31.94           -27.8        4.14  57%  perf-profile.calltrace.cycles-pp.iterate_dir.__x64_sys_getdents.do_syscall_64.entry_SYSCALL_64_after_hwframe.syscall
     31.65           -27.6        4.06  57%  perf-profile.calltrace.cycles-pp.iterate_dir.__x64_sys_getdents64.do_syscall_64.entry_SYSCALL_64_after_hwframe.syscall
     14.11   5%     -13.0        1.12 122%  perf-profile.calltrace.cycles-pp.eventfs_iterate.iterate_dir.__x64_sys_getdents64.do_syscall_64.entry_SYSCALL_64_after_hwframe
     14.06   5%     -12.9        1.13 122%  perf-profile.calltrace.cycles-pp.eventfs_iterate.iterate_dir.__x64_sys_getdents.do_syscall_64.entry_SYSCALL_64_after_hwframe
     13.38   5%     -12.3        1.04 124%  perf-profile.calltrace.cycles-pp.__mutex_lock.eventfs_iterate.iterate_dir.__x64_sys_getdents64.do_syscall_64
     13.34   5%     -12.3        1.05 124%  perf-profile.calltrace.cycles-pp.__mutex_lock.eventfs_iterate.iterate_dir.__x64_sys_getdents.do_syscall_64
     12.89   5%     -12.0        0.92 141%  perf-profile.calltrace.cycles-pp.osq_lock.__mutex_lock.eventfs_iterate.iterate_dir.__x64_sys_getdents64
     12.84   5%     -11.9        0.93 141%  perf-profile.calltrace.cycles-pp.osq_lock.__mutex_lock.eventfs_iterate.iterate_dir.__x64_sys_getdents
      6.49   2%      -5.9        0.57 117%  perf-profile.calltrace.cycles-pp.proc_tgid_net_readdir.iterate_dir.__x64_sys_getdents.do_syscall_64.entry_SYSCALL_64_after_hwframe
      6.48   2%      -5.9        0.57 117%  perf-profile.calltrace.cycles-pp.proc_tgid_net_readdir.iterate_dir.__x64_sys_getdents64.do_syscall_64.entry_SYSCALL_64_after_hwframe
      6.43   2%      -5.9        0.56 117%  perf-profile.calltrace.cycles-pp.proc_readdir_de.proc_tgid_net_readdir.iterate_dir.__x64_sys_getdents64.do_syscall_64
      6.43   2%      -5.9        0.56 117%  perf-profile.calltrace.cycles-pp.proc_readdir_de.proc_tgid_net_readdir.iterate_dir.__x64_sys_getdents.do_syscall_64
      4.62   3%      -3.8        0.82  44%  perf-profile.calltrace.cycles-pp.lookup_open.open_last_lookups.path_openat.do_filp_open.do_sys_openat2
      4.80   2%      -3.8        1.03  33%  perf-profile.calltrace.cycles-pp.__close
      4.54   2%      -3.6        0.93  36%  perf-profile.calltrace.cycles-pp.entry_SYSCALL_64_after_hwframe.__close
      4.52   2%      -3.6        0.92  36%  perf-profile.calltrace.cycles-pp.do_syscall_64.entry_SYSCALL_64_after_hwframe.__close
      4.45   2%      -3.6        0.90  36%  perf-profile.calltrace.cycles-pp.__x64_sys_close.do_syscall_64.entry_SYSCALL_64_after_hwframe.__close
      3.47   3%      -3.0        0.42 108%  perf-profile.calltrace.cycles-pp.__fput.__x64_sys_close.do_syscall_64.entry_SYSCALL_64_after_hwframe.__close
      3.78   8%      -2.9        0.84  36%  perf-profile.calltrace.cycles-pp.inode_permission.link_path_walk.path_openat.do_filp_open.do_sys_openat2
      3.00   4%      -2.6        0.40 108%  perf-profile.calltrace.cycles-pp.do_open.path_openat.do_filp_open.do_sys_openat2.__x64_sys_openat
      3.00  10%      -2.6        0.42 105%  perf-profile.calltrace.cycles-pp.kernfs_iop_permission.inode_permission.link_path_walk.path_openat.do_filp_open
      2.65   2%      -2.0        0.70  25%  perf-profile.calltrace.cycles-pp.brk
      2.57   2%      -1.9        0.66  26%  perf-profile.calltrace.cycles-pp.do_syscall_64.entry_SYSCALL_64_after_hwframe.brk
      2.58   2%      -1.9        0.66  26%  perf-profile.calltrace.cycles-pp.entry_SYSCALL_64_after_hwframe.brk
      2.54   2%      -1.9        0.65  26%  perf-profile.calltrace.cycles-pp.__do_sys_brk.do_syscall_64.entry_SYSCALL_64_after_hwframe.brk
      2.04            -1.7        0.35 104%  perf-profile.calltrace.cycles-pp.proc_fill_cache.proc_pident_readdir.iterate_dir.__x64_sys_getdents.do_syscall_64
      2.04            -1.7        0.35 104%  perf-profile.calltrace.cycles-pp.proc_fill_cache.proc_pident_readdir.iterate_dir.__x64_sys_getdents64.do_syscall_64
      2.05   2%      -1.6        0.44  75%  perf-profile.calltrace.cycles-pp.exc_page_fault.asm_exc_page_fault
      2.04   2%      -1.6        0.43  75%  perf-profile.calltrace.cycles-pp.do_user_addr_fault.exc_page_fault.asm_exc_page_fault
      2.13            -1.6        0.53  52%  perf-profile.calltrace.cycles-pp.proc_pident_readdir.iterate_dir.__x64_sys_getdents64.do_syscall_64.entry_SYSCALL_64_after_hwframe
      2.28   2%      -1.6        0.68  23%  perf-profile.calltrace.cycles-pp.asm_exc_page_fault
      2.14            -1.5        0.62  24%  perf-profile.calltrace.cycles-pp.proc_pident_readdir.iterate_dir.__x64_sys_getdents.do_syscall_64.entry_SYSCALL_64_after_hwframe
      0.00            +1.8        1.78   6%  perf-profile.calltrace.cycles-pp.lockref_get_not_dead.__legitimize_path.try_to_unlazy.lookup_fast.walk_component
      0.00            +1.8        1.78   6%  perf-profile.calltrace.cycles-pp.__legitimize_path.try_to_unlazy.lookup_fast.walk_component.link_path_walk
      0.00            +1.8        1.78   6%  perf-profile.calltrace.cycles-pp.try_to_unlazy.lookup_fast.walk_component.link_path_walk.path_openat
      4.32   3%      +2.0        6.30   3%  perf-profile.calltrace.cycles-pp.walk_component.link_path_walk.path_openat.do_filp_open.do_sys_openat2
      3.04   5%      +3.0        6.06   3%  perf-profile.calltrace.cycles-pp.lookup_fast.walk_component.link_path_walk.path_openat.do_filp_open
      0.00            +3.2        3.20  13%  perf-profile.calltrace.cycles-pp.native_queued_spin_lock_slowpath._raw_spin_lock.lockref_get_not_dead.__legitimize_path.try_to_unlazy_next
      0.00            +3.2        3.23  13%  perf-profile.calltrace.cycles-pp._raw_spin_lock.lockref_get_not_dead.__legitimize_path.try_to_unlazy_next.lookup_fast
      0.00            +3.7        3.69   9%  perf-profile.calltrace.cycles-pp.__legitimize_path.try_to_unlazy_next.lookup_fast.walk_component.link_path_walk
      0.00            +3.7        3.69   9%  perf-profile.calltrace.cycles-pp.lockref_get_not_dead.__legitimize_path.try_to_unlazy_next.lookup_fast.walk_component
      0.00            +3.7        3.70   9%  perf-profile.calltrace.cycles-pp.try_to_unlazy_next.lookup_fast.walk_component.link_path_walk.path_openat
      0.69   4%      +5.3        6.01   8%  perf-profile.calltrace.cycles-pp.lockref_put_return.dput.terminate_walk.path_openat.do_filp_open
      6.20   2%      +9.8       16.04   4%  perf-profile.calltrace.cycles-pp.open_last_lookups.path_openat.do_filp_open.do_sys_openat2.__x64_sys_openat
      1.29   3%     +13.7       15.03   6%  perf-profile.calltrace.cycles-pp.lookup_fast.open_last_lookups.path_openat.do_filp_open.do_sys_openat2
      0.00           +13.8       13.76   6%  perf-profile.calltrace.cycles-pp._raw_spin_lock.lockref_get_not_dead.__legitimize_path.try_to_unlazy.lookup_fast
      0.00           +14.3       14.31   6%  perf-profile.calltrace.cycles-pp.lockref_get_not_dead.__legitimize_path.try_to_unlazy.lookup_fast.open_last_lookups
      0.00           +14.3       14.32   6%  perf-profile.calltrace.cycles-pp.__legitimize_path.try_to_unlazy.lookup_fast.open_last_lookups.path_openat
      0.00           +14.3       14.32   6%  perf-profile.calltrace.cycles-pp.try_to_unlazy.lookup_fast.open_last_lookups.path_openat.do_filp_open
      0.00           +18.0       18.04  11%  perf-profile.calltrace.cycles-pp._raw_spin_lock.lockref_get_not_dead.__legitimize_path.try_to_unlazy.link_path_walk
      9.60   4%     +19.0       28.56   6%  perf-profile.calltrace.cycles-pp.link_path_walk.path_openat.do_filp_open.do_sys_openat2.__x64_sys_openat
      0.28 100%     +20.8       21.12  10%  perf-profile.calltrace.cycles-pp.__legitimize_path.try_to_unlazy.link_path_walk.path_openat.do_filp_open
      0.28 100%     +20.8       21.13  10%  perf-profile.calltrace.cycles-pp.try_to_unlazy.link_path_walk.path_openat.do_filp_open.do_sys_openat2
      0.00           +21.1       21.11  10%  perf-profile.calltrace.cycles-pp.lockref_get_not_dead.__legitimize_path.try_to_unlazy.link_path_walk.path_openat
      0.00           +31.5       31.52   8%  perf-profile.calltrace.cycles-pp.native_queued_spin_lock_slowpath._raw_spin_lock.lockref_get_not_dead.__legitimize_path.try_to_unlazy
      0.00           +34.7       34.71   8%  perf-profile.calltrace.cycles-pp.native_queued_spin_lock_slowpath._raw_spin_lock.dput.terminate_walk.path_openat
      0.00           +35.0       35.01   8%  perf-profile.calltrace.cycles-pp._raw_spin_lock.dput.terminate_walk.path_openat.do_filp_open
      0.88   9%     +40.2       41.12   8%  perf-profile.calltrace.cycles-pp.terminate_walk.path_openat.do_filp_open.do_sys_openat2.__x64_sys_openat
      0.84   9%     +40.3       41.10   8%  perf-profile.calltrace.cycles-pp.dput.terminate_walk.path_openat.do_filp_open.do_sys_openat2
     22.55   2%     +65.0       87.59   6%  perf-profile.calltrace.cycles-pp.open64
     22.25   2%     +65.2       87.48   6%  perf-profile.calltrace.cycles-pp.entry_SYSCALL_64_after_hwframe.open64
     22.23   2%     +65.2       87.47   6%  perf-profile.calltrace.cycles-pp.do_syscall_64.entry_SYSCALL_64_after_hwframe.open64
     22.15   2%     +65.3       87.43   6%  perf-profile.calltrace.cycles-pp.__x64_sys_openat.do_syscall_64.entry_SYSCALL_64_after_hwframe.open64
     22.12   2%     +65.3       87.42   6%  perf-profile.calltrace.cycles-pp.do_sys_openat2.__x64_sys_openat.do_syscall_64.entry_SYSCALL_64_after_hwframe.open64
     21.24   2%     +65.5       86.76   6%  perf-profile.calltrace.cycles-pp.do_filp_open.do_sys_openat2.__x64_sys_openat.do_syscall_64.entry_SYSCALL_64_after_hwframe
     21.18   2%     +65.6       86.74   6%  perf-profile.calltrace.cycles-pp.path_openat.do_filp_open.do_sys_openat2.__x64_sys_openat.do_syscall_64
     65.96           -57.0        8.93  54%  perf-profile.children.cycles-pp.syscall
     63.61           -55.4        8.21  57%  perf-profile.children.cycles-pp.iterate_dir
     32.58           -28.3        4.27  57%  perf-profile.children.cycles-pp.__x64_sys_getdents
     32.09           -27.9        4.15  57%  perf-profile.children.cycles-pp.__x64_sys_getdents64
     28.19   5%     -25.8        2.34 114%  perf-profile.children.cycles-pp.eventfs_iterate
     26.72   5%     -24.6        2.08 124%  perf-profile.children.cycles-pp.__mutex_lock
     25.74   5%     -23.7        2.00 125%  perf-profile.children.cycles-pp.osq_lock
     20.36   2%     -18.0        2.37  66%  perf-profile.children.cycles-pp.proc_readdir_de
     12.96   2%     -11.4        1.60  61%  perf-profile.children.cycles-pp.proc_tgid_net_readdir
     10.60   3%      -9.6        1.02  80%  perf-profile.children.cycles-pp._raw_read_lock
      5.88   6%      -4.9        1.02  48%  perf-profile.children.cycles-pp.kernfs_fop_readdir
      5.85   7%      -4.7        1.16  42%  perf-profile.children.cycles-pp.down_read
      5.15   5%      -4.5        0.68  67%  perf-profile.children.cycles-pp.up_read
      5.68            -4.0        1.68  24%  perf-profile.children.cycles-pp.proc_fill_cache
      4.62   3%      -3.8        0.82  44%  perf-profile.children.cycles-pp.lookup_open
      4.85   2%      -3.8        1.05  33%  perf-profile.children.cycles-pp.__close
      4.42   4%      -3.7        0.68  52%  perf-profile.children.cycles-pp.proc_lookup_de
      4.32   3%      -3.6        0.68  51%  perf-profile.children.cycles-pp.proc_tgid_net_lookup
      4.46   2%      -3.6        0.90  36%  perf-profile.children.cycles-pp.__x64_sys_close
      4.43   8%      -3.5        0.96  37%  perf-profile.children.cycles-pp.inode_permission
      4.28            -3.0        1.23  25%  perf-profile.children.cycles-pp.proc_pident_readdir
      3.48   3%      -2.8        0.66  39%  perf-profile.children.cycles-pp.__fput
      3.98   2%      -2.8        1.18  24%  perf-profile.children.cycles-pp.__d_lookup
      3.44  10%      -2.7        0.70  41%  perf-profile.children.cycles-pp.kernfs_iop_permission
      3.01   4%      -2.4        0.60  40%  perf-profile.children.cycles-pp.do_open
      3.09            -2.1        0.95  23%  perf-profile.children.cycles-pp.d_hash_and_lookup
      2.46   7%      -2.1        0.33  64%  perf-profile.children.cycles-pp.kernfs_dop_revalidate
      2.66   2%      -2.0        0.70  25%  perf-profile.children.cycles-pp.brk
      2.55   2%      -1.9        0.65  26%  perf-profile.children.cycles-pp.__do_sys_brk
      2.18   4%      -1.8        0.40  40%  perf-profile.children.cycles-pp.__dentry_kill
      2.18   6%      -1.8        0.41  45%  perf-profile.children.cycles-pp.proc_get_inode
      2.47   2%      -1.7        0.74  23%  perf-profile.children.cycles-pp.asm_exc_page_fault
      2.12   6%      -1.7        0.40  46%  perf-profile.children.cycles-pp.new_inode
      1.94   4%      -1.6        0.37  44%  perf-profile.children.cycles-pp.do_dentry_open
      2.19   2%      -1.6        0.63  24%  perf-profile.children.cycles-pp.exc_page_fault
      2.18   2%      -1.6        0.62  24%  perf-profile.children.cycles-pp.do_user_addr_fault
      1.98   2%      -1.5        0.48  27%  perf-profile.children.cycles-pp.do_vmi_align_munmap
      1.49   6%      -1.3        0.21  58%  perf-profile.children.cycles-pp.evict
      1.76   2%      -1.2        0.52  24%  perf-profile.children.cycles-pp.handle_mm_fault
      1.56   3%      -1.2        0.35  31%  perf-profile.children.cycles-pp.unmap_region
      1.63   2%      -1.2        0.47  24%  perf-profile.children.cycles-pp.__handle_mm_fault
      1.50   2%      -1.1        0.42  25%  perf-profile.children.cycles-pp.do_anonymous_page
      1.16   7%      -1.0        0.20  53%  perf-profile.children.cycles-pp.security_file_open
      1.16   7%      -1.0        0.20  57%  perf-profile.children.cycles-pp.apparmor_file_open
      1.21   3%      -1.0        0.25  35%  perf-profile.children.cycles-pp.__lookup_slow
      1.26   3%      -0.9        0.35  28%  perf-profile.children.cycles-pp.alloc_empty_file
      1.20            -0.8        0.42  20%  perf-profile.children.cycles-pp.handle_softirqs
      1.20            -0.8        0.41  21%  perf-profile.children.cycles-pp.rcu_core
      1.19            -0.8        0.41  21%  perf-profile.children.cycles-pp.rcu_do_batch
      0.85   2%      -0.8        0.07 112%  perf-profile.children.cycles-pp.mutex_unlock
      0.86   2%      -0.7        0.12  55%  perf-profile.children.cycles-pp.mutex_lock
      0.96   5%      -0.7        0.23  34%  perf-profile.children.cycles-pp.init_file
      1.07            -0.7        0.36  20%  perf-profile.children.cycles-pp.kmem_cache_free
      0.90   3%      -0.6        0.28  24%  perf-profile.children.cycles-pp.step_into
      0.83   6%      -0.6        0.21  34%  perf-profile.children.cycles-pp.security_file_alloc
      0.75   6%      -0.6        0.17  38%  perf-profile.children.cycles-pp.apparmor_file_alloc_security
      0.85   2%      -0.6        0.28  21%  perf-profile.children.cycles-pp.proc_map_files_readdir
      1.12   2%      -0.6        0.55   9%  perf-profile.children.cycles-pp.asm_sysvec_apic_timer_interrupt
      1.10   2%      -0.6        0.54  10%  perf-profile.children.cycles-pp.sysvec_apic_timer_interrupt
      0.68   2%      -0.6        0.12  51%  perf-profile.children.cycles-pp.pde_put
      0.83   3%      -0.6        0.27  20%  perf-profile.children.cycles-pp.irq_exit_rcu
      0.70   7%      -0.6        0.14  41%  perf-profile.children.cycles-pp.may_open
      0.79   3%      -0.5        0.26  20%  perf-profile.children.cycles-pp.alloc_anon_folio
      0.72   2%      -0.5        0.21  26%  perf-profile.children.cycles-pp.proc_ns_dir_readdir
      0.71   2%      -0.5        0.21  21%  perf-profile.children.cycles-pp.proc_readfd_common
      0.65   2%      -0.5        0.15  32%  perf-profile.children.cycles-pp.tlb_finish_mmu
      0.62   3%      -0.5        0.13  35%  perf-profile.children.cycles-pp.folios_put_refs
      0.65   9%      -0.5        0.16  33%  perf-profile.children.cycles-pp.security_file_permission
      0.63   9%      -0.5        0.15  33%  perf-profile.children.cycles-pp.apparmor_file_permission
      0.60            -0.5        0.12  36%  perf-profile.children.cycles-pp.__fdget_pos
      0.58   2%      -0.5        0.13  33%  perf-profile.children.cycles-pp.__tlb_batch_free_encoded_pages
      0.58   3%      -0.5        0.13  34%  perf-profile.children.cycles-pp.free_pages_and_swap_cache
      0.72            -0.4        0.28  16%  perf-profile.children.cycles-pp.filldir
      0.52   2%      -0.4        0.08  49%  perf-profile.children.cycles-pp.d_splice_alias
      0.70   2%      -0.4        0.27  16%  perf-profile.children.cycles-pp.filldir64
      0.71   2%      -0.4        0.29  15%  perf-profile.children.cycles-pp.clear_bhb_loop
      0.57   5%      -0.4        0.15  31%  perf-profile.children.cycles-pp.security_file_free
      0.59            -0.4        0.17  26%  perf-profile.children.cycles-pp.__slab_free
      0.56   5%      -0.4        0.15  31%  perf-profile.children.cycles-pp.apparmor_file_free_security
      0.68            -0.4        0.27  16%  perf-profile.children.cycles-pp.kmem_cache_alloc_noprof
      0.66   2%      -0.4        0.25  20%  perf-profile.children.cycles-pp.alloc_inode
      0.48   2%      -0.4        0.09  36%  perf-profile.children.cycles-pp.folio_batch_move_lru
      0.48            -0.4        0.10  38%  perf-profile.children.cycles-pp.down_read_killable
      0.47   3%      -0.4        0.09  40%  perf-profile.children.cycles-pp.fsnotify_grab_connector
      0.46   3%      -0.4        0.08  35%  perf-profile.children.cycles-pp.lru_add_drain
      0.46   3%      -0.4        0.08  35%  perf-profile.children.cycles-pp.lru_add_drain_cpu
      0.48   3%      -0.4        0.12  27%  perf-profile.children.cycles-pp.filp_flush
      0.44   2%      -0.4        0.08  46%  perf-profile.children.cycles-pp.kernfs_dir_pos
      0.50   2%      -0.3        0.16  20%  perf-profile.children.cycles-pp.vma_alloc_folio_noprof
      0.49   3%      -0.3        0.16  22%  perf-profile.children.cycles-pp.alloc_pages_mpol_noprof
      0.58            -0.3        0.25  15%  perf-profile.children.cycles-pp.d_alloc_parallel
      0.41   3%      -0.3        0.09  32%  perf-profile.children.cycles-pp.dnotify_flush
      0.46   3%      -0.3        0.15  20%  perf-profile.children.cycles-pp.__alloc_pages_noprof
      0.48   3%      -0.3        0.16  23%  perf-profile.children.cycles-pp.kmem_cache_alloc_lru_noprof
      0.39   3%      -0.3        0.08  36%  perf-profile.children.cycles-pp.fsnotify_find_mark
      0.39   2%      -0.3        0.10  25%  perf-profile.children.cycles-pp.unmap_vmas
      0.38   2%      -0.3        0.10  25%  perf-profile.children.cycles-pp.unmap_page_range
      0.38   2%      -0.3        0.10  25%  perf-profile.children.cycles-pp.zap_pmd_range
      0.40   3%      -0.3        0.12  20%  perf-profile.children.cycles-pp.do_brk_flags
      0.37   2%      -0.3        0.10  27%  perf-profile.children.cycles-pp.zap_pte_range
      0.38   2%      -0.3        0.12  22%  perf-profile.children.cycles-pp.get_page_from_freelist
      0.43            -0.3        0.17  15%  perf-profile.children.cycles-pp.__memcg_slab_post_alloc_hook
      0.41   6%      -0.2        0.16  25%  perf-profile.children.cycles-pp.kthread
      0.41   6%      -0.2        0.16  25%  perf-profile.children.cycles-pp.ret_from_fork
      0.41   6%      -0.2        0.16  25%  perf-profile.children.cycles-pp.ret_from_fork_asm
      0.38   7%      -0.2        0.14  27%  perf-profile.children.cycles-pp.run_ksoftirqd
      0.42   2%      -0.2        0.19  15%  perf-profile.children.cycles-pp.d_alloc
      0.38   7%      -0.2        0.15  27%  perf-profile.children.cycles-pp.smpboot_thread_fn
      0.30   2%      -0.2        0.07  26%  perf-profile.children.cycles-pp.zap_present_ptes
      0.38   2%      -0.2        0.15  15%  perf-profile.children.cycles-pp.__cond_resched
      0.30   3%      -0.2        0.08  31%  perf-profile.children.cycles-pp.inode_wait_for_writeback
      0.37   2%      -0.2        0.14  16%  perf-profile.children.cycles-pp.entry_SYSCALL_64
      0.28   2%      -0.2        0.06  27%  perf-profile.children.cycles-pp.__call_rcu_common
      0.30   5%      -0.2        0.10  26%  perf-profile.children.cycles-pp.proc_alloc_inode
      0.35   4%      -0.2        0.15  22%  perf-profile.children.cycles-pp.inode_init_always
      0.26   8%      -0.2        0.05  76%  perf-profile.children.cycles-pp.___slab_alloc
      0.28   2%      -0.2        0.09  21%  perf-profile.children.cycles-pp.__d_lookup_rcu
      0.27            -0.2        0.08  20%  perf-profile.children.cycles-pp.__split_vma
      0.24   2%      -0.2        0.06  27%  perf-profile.children.cycles-pp.lockref_get
      0.31   3%      -0.2        0.13  15%  perf-profile.children.cycles-pp.getname_flags
      0.23   7%      -0.2        0.06  54%  perf-profile.children.cycles-pp.security_file_post_open
      0.26   4%      -0.2        0.09  20%  perf-profile.children.cycles-pp.__mem_cgroup_charge
      0.37   2%      -0.2        0.20  15%  perf-profile.children.cycles-pp.rb_next
      0.22   7%      -0.2        0.05  51%  perf-profile.children.cycles-pp.ima_file_check
      0.28   2%      -0.2        0.12  14%  perf-profile.children.cycles-pp.__memcg_slab_free_hook
      0.26   3%      -0.2        0.10  15%  perf-profile.children.cycles-pp.entry_SYSRETQ_unsafe_stack
      0.22   3%      -0.1        0.07  26%  perf-profile.children.cycles-pp.pid_delete_dentry
      0.18   2%      -0.1        0.04  75%  perf-profile.children.cycles-pp.proc_free_inode
      0.18   2%      -0.1        0.04  72%  perf-profile.children.cycles-pp.task_lookup_next_fdget_rcu
      0.22   3%      -0.1        0.09  15%  perf-profile.children.cycles-pp.sync_regs
      0.17   2%      -0.1        0.04  73%  perf-profile.children.cycles-pp.path_init
      0.21   2%      -0.1        0.08  19%  perf-profile.children.cycles-pp.__d_alloc
      0.22   5%      -0.1        0.09  15%  perf-profile.children.cycles-pp.strncpy_from_user
      0.20   3%      -0.1        0.08  17%  perf-profile.children.cycles-pp.verify_dirent_name
      0.20   2%      -0.1        0.09  15%  perf-profile.children.cycles-pp.native_irq_return_iret
      0.19   3%      -0.1        0.08  14%  perf-profile.children.cycles-pp.mod_objcg_state
      0.19   5%      -0.1        0.08  17%  perf-profile.children.cycles-pp.pid_revalidate
      0.18   4%      -0.1        0.07  14%  perf-profile.children.cycles-pp.stress_getdents_dir
      0.18   2%      -0.1        0.07  16%  perf-profile.children.cycles-pp.stress_getdents64_dir
      0.17   4%      -0.1        0.06  19%  perf-profile.children.cycles-pp.mas_wr_store_entry
      0.15   3%      -0.1        0.05  47%  perf-profile.children.cycles-pp.perf_event_mmap
      0.17   2%      -0.1        0.07  17%  perf-profile.children.cycles-pp.strlcat
      0.18   4%      -0.1        0.07  24%  perf-profile.children.cycles-pp.security_inode_alloc
      0.16   3%      -0.1        0.06  11%  perf-profile.children.cycles-pp.snprintf
      0.14   3%      -0.1        0.05  47%  perf-profile.children.cycles-pp.perf_event_mmap_event
      0.16   3%      -0.1        0.06  19%  perf-profile.children.cycles-pp.rcu_all_qs
      0.16   3%      -0.1        0.06  11%  perf-profile.children.cycles-pp.vsnprintf
      0.17   2%      -0.1        0.08  16%  perf-profile.children.cycles-pp.rcu_cblist_dequeue
      0.15   3%      -0.1        0.06  20%  perf-profile.children.cycles-pp.syscall_exit_to_user_mode
      0.16   3%      -0.1        0.07  14%  perf-profile.children.cycles-pp.memchr
      0.15   4%      -0.1        0.06  15%  perf-profile.children.cycles-pp.__lruvec_stat_mod_folio
      0.15   3%      -0.1        0.06  14%  perf-profile.children.cycles-pp.clear_page_erms
      0.14   3%      -0.1        0.05  47%  perf-profile.children.cycles-pp.__perf_sw_event
      0.14   3%      -0.1        0.06  19%  perf-profile.children.cycles-pp.__mod_memcg_lruvec_state
      0.16   5%      -0.1        0.08  13%  perf-profile.children.cycles-pp.generic_permission
      0.12   4%      -0.1        0.05   8%  perf-profile.children.cycles-pp.__check_object_size
      0.00            +0.1        0.06   8%  perf-profile.children.cycles-pp.__do_sys_newfstatat
      0.00            +0.1        0.06   8%  perf-profile.children.cycles-pp.filename_lookup
      0.00            +0.1        0.06   8%  perf-profile.children.cycles-pp.path_lookupat
      0.00            +0.1        0.06   8%  perf-profile.children.cycles-pp.vfs_fstatat
      0.00            +0.1        0.06   8%  perf-profile.children.cycles-pp.vfs_statx
      0.18   3%      +0.2        0.42   5%  perf-profile.children.cycles-pp.putname
      4.34   2%      +2.1        6.47   3%  perf-profile.children.cycles-pp.walk_component
     94.42            +3.6       98.01        perf-profile.children.cycles-pp.entry_SYSCALL_64_after_hwframe
     94.33            +3.6       97.98        perf-profile.children.cycles-pp.do_syscall_64
      0.09  11%      +4.1        4.16   9%  perf-profile.children.cycles-pp.try_to_unlazy_next
      2.07   2%      +4.2        6.25   7%  perf-profile.children.cycles-pp.lockref_put_return
      6.21   2%      +9.8       16.05   4%  perf-profile.children.cycles-pp.open_last_lookups
      4.35   4%     +16.9       21.22   5%  perf-profile.children.cycles-pp.lookup_fast
      9.63   4%     +19.1       28.76   6%  perf-profile.children.cycles-pp.link_path_walk
      1.03   8%     +36.3       37.38   8%  perf-profile.children.cycles-pp.try_to_unlazy
      5.34   2%     +36.7       42.07   7%  perf-profile.children.cycles-pp.dput
      0.89   9%     +40.4       41.25   8%  perf-profile.children.cycles-pp.terminate_walk
      1.06   9%     +40.5       41.52   8%  perf-profile.children.cycles-pp.__legitimize_path
      0.83  12%     +40.7       41.48   8%  perf-profile.children.cycles-pp.lockref_get_not_dead
      7.22   2%     +64.5       71.72   8%  perf-profile.children.cycles-pp._raw_spin_lock
     22.60   2%     +65.0       87.62   6%  perf-profile.children.cycles-pp.open64
     22.17   2%     +65.5       87.72   6%  perf-profile.children.cycles-pp.__x64_sys_openat
     22.15   2%     +65.6       87.71   6%  perf-profile.children.cycles-pp.do_sys_openat2
     21.26   2%     +65.8       87.05   6%  perf-profile.children.cycles-pp.do_filp_open
     21.20   2%     +65.8       87.03   6%  perf-profile.children.cycles-pp.path_openat
      2.92   5%     +67.4       70.29   8%  perf-profile.children.cycles-pp.native_queued_spin_lock_slowpath
     25.58   5%     -23.6        1.99 125%  perf-profile.self.cycles-pp.osq_lock
     10.46   3%      -9.5        1.00  80%  perf-profile.self.cycles-pp._raw_read_lock
      9.26   2%      -8.2        1.03  68%  perf-profile.self.cycles-pp.proc_readdir_de
      5.77   7%      -4.6        1.13  43%  perf-profile.self.cycles-pp.down_read
      5.11   6%      -4.4        0.67  68%  perf-profile.self.cycles-pp.up_read
      4.42            -3.0        1.43  18%  perf-profile.self.cycles-pp._raw_spin_lock
      2.05   2%      -1.3        0.78  20%  perf-profile.self.cycles-pp.__d_lookup
      1.11   2%      -1.0        0.12  65%  perf-profile.self.cycles-pp.proc_lookup_de
      1.14   7%      -0.9        0.19  56%  perf-profile.self.cycles-pp.apparmor_file_open
      0.84   2%      -0.8        0.07 115%  perf-profile.self.cycles-pp.mutex_unlock
      0.80   2%      -0.7        0.10  60%  perf-profile.self.cycles-pp.mutex_lock
      0.73   6%      -0.6        0.17  38%  perf-profile.self.cycles-pp.apparmor_file_alloc_security
      0.66   2%      -0.5        0.12  48%  perf-profile.self.cycles-pp.pde_put
      0.76   5%      -0.5        0.31  19%  perf-profile.self.cycles-pp.proc_fill_cache
      0.59  10%      -0.4        0.14  35%  perf-profile.self.cycles-pp.apparmor_file_permission
      0.70   2%      -0.4        0.29  15%  perf-profile.self.cycles-pp.clear_bhb_loop
      0.58            -0.4        0.17  25%  perf-profile.self.cycles-pp.__slab_free
      0.55   5%      -0.4        0.15  31%  perf-profile.self.cycles-pp.apparmor_file_free_security
      0.47            -0.4        0.08  38%  perf-profile.self.cycles-pp.do_dentry_open
      0.45            -0.4        0.08  41%  perf-profile.self.cycles-pp.down_read_killable
      0.39   2%      -0.3        0.06  60%  perf-profile.self.cycles-pp.__fput
      0.53            -0.3        0.21  16%  perf-profile.self.cycles-pp.filldir
      0.52   2%      -0.3        0.21  16%  perf-profile.self.cycles-pp.filldir64
      0.38   4%      -0.3        0.12  22%  perf-profile.self.cycles-pp.kernfs_fop_readdir
      0.37   3%      -0.2        0.14  17%  perf-profile.self.cycles-pp.inode_permission
      0.27   2%      -0.2        0.09  20%  perf-profile.self.cycles-pp.__d_lookup_rcu
      0.29   2%      -0.2        0.12  16%  perf-profile.self.cycles-pp.kmem_cache_alloc_noprof
      0.35   3%      -0.2        0.20  15%  perf-profile.self.cycles-pp.rb_next
      0.25   2%      -0.2        0.10  16%  perf-profile.self.cycles-pp.entry_SYSRETQ_unsafe_stack
      0.21   3%      -0.1        0.07  24%  perf-profile.self.cycles-pp.pid_delete_dentry
      0.22   2%      -0.1        0.08  16%  perf-profile.self.cycles-pp.syscall
      0.22   3%      -0.1        0.09  15%  perf-profile.self.cycles-pp.sync_regs
      0.21   3%      -0.1        0.08  17%  perf-profile.self.cycles-pp.__memcg_slab_post_alloc_hook
      0.20            -0.1        0.08  14%  perf-profile.self.cycles-pp.__cond_resched
      0.20   2%      -0.1        0.09  15%  perf-profile.self.cycles-pp.native_irq_return_iret
      0.19   3%      -0.1        0.08  16%  perf-profile.self.cycles-pp.link_path_walk
      0.17   2%      -0.1        0.07  17%  perf-profile.self.cycles-pp.__fdget_pos
      0.14   4%      -0.1        0.04  72%  perf-profile.self.cycles-pp.do_syscall_64
      0.17   5%      -0.1        0.07  16%  perf-profile.self.cycles-pp.kmem_cache_free
      0.13   5%      -0.1        0.03 100%  perf-profile.self.cycles-pp.step_into
      0.16   4%      -0.1        0.06  14%  perf-profile.self.cycles-pp.stress_getdents_dir
      0.16   2%      -0.1        0.06  11%  perf-profile.self.cycles-pp.strlcat
      0.16   2%      -0.1        0.06  14%  perf-profile.self.cycles-pp.stress_getdents64_dir
      0.16   3%      -0.1        0.06  14%  perf-profile.self.cycles-pp.mod_objcg_state
      0.17   4%      -0.1        0.08  16%  perf-profile.self.cycles-pp.rcu_cblist_dequeue
      0.12   4%      -0.1        0.03 100%  perf-profile.self.cycles-pp.rcu_all_qs
      0.15   3%      -0.1        0.06  19%  perf-profile.self.cycles-pp.memchr
      0.12   4%      -0.1        0.03 102%  perf-profile.self.cycles-pp.inode_init_always
      0.14   3%      -0.1        0.06  17%  perf-profile.self.cycles-pp.clear_page_erms
      0.09   7%      -0.1        0.02  99%  perf-profile.self.cycles-pp.pid_revalidate
      0.13   5%      -0.1        0.06  14%  perf-profile.self.cycles-pp.generic_permission
      0.11   3%      +0.0        0.12   3%  perf-profile.self.cycles-pp.dput
      0.18   2%      +0.2        0.42   5%  perf-profile.self.cycles-pp.putname
      2.04   2%      +4.2        6.21   7%  perf-profile.self.cycles-pp.lockref_put_return
      0.66   4%      +5.4        6.01   8%  perf-profile.self.cycles-pp.lockref_get_not_dead
      2.81   5%     +67.1       69.92   8%  perf-profile.self.cycles-pp.native_queued_spin_lock_slowpath



***************************************************************************************************
lkp-icl-2sp8: 64 threads 2 sockets Intel(R) Xeon(R) Gold 6346 CPU @ 3.10GHz (Ice Lake) with 256G memory
=========================================================================================
compiler/cpufreq_governor/disk/fs/kconfig/nr_threads/rootfs/tbox_group/test/testcase/testtime:
  gcc-13/performance/1HDD/btrfs/x86_64-rhel-8.3/100%/debian-12-x86_64-20240206.cgz/lkp-icl-2sp8/handle/stress-ng/60s

commit: 
  267574dee6 ("bcachefs: remove now spurious i_state initialization")
  d042dae6ad ("lockref: speculatively spin waiting for the lock to be released")

267574dee6ae0da6 d042dae6ad74df8a00ee8a3c6b7 
---------------- --------------------------- 
         %stddev     %change         %stddev
             \          |                \  
      1.08   4%     -10.1%       0.97   2%  iostat.cpu.user
      1.10   4%      -0.1        0.99   2%  mpstat.cpu.all.usr%
    286411   7%     -12.1%     251734   4%  numa-numastat.node1.local_node
    285093   6%     -12.0%     250827   4%  numa-vmstat.node1.numa_local
      2980   7%     -19.8%       2391   4%  vmstat.system.cs
    162616            -2.6%     158340        vmstat.system.in
     84179            -3.0%      81690        proc-vmstat.nr_shmem
    486339            -1.7%     478110        proc-vmstat.numa_hit
    420032            -2.0%     411796        proc-vmstat.numa_local
  10880229   2%     -60.2%    4332475  13%  stress-ng.handle.ops
    181335   2%     -60.2%      72206  13%  stress-ng.handle.ops_per_sec
     75993   9%     -28.7%      54148   9%  stress-ng.time.involuntary_context_switches
    455.17   9%     +61.9%     737.00  10%  perf-c2c.DRAM.local
     31509   2%     -36.9%      19892   2%  perf-c2c.DRAM.remote
     39333   2%     -24.9%      29523   2%  perf-c2c.HITM.local
     25890   2%     -45.5%      14112   3%  perf-c2c.HITM.remote
     65223   2%     -33.1%      43635   2%  perf-c2c.HITM.total
      5043  31%     -57.9%       2123  25%  sched_debug.cfs_rq:/.load_avg.max
      1423  38%     -51.9%     683.87  30%  sched_debug.cfs_rq:/.load_avg.stddev
     45.04  17%     -47.5%      23.63  41%  sched_debug.cfs_rq:/.removed.load_avg.avg
    141.61   8%     -28.5%     101.19  22%  sched_debug.cfs_rq:/.removed.load_avg.stddev
      1399   8%     -15.2%       1186   4%  sched_debug.cfs_rq:/.runnable_avg.max
      1269   4%     -12.2%       1114   4%  sched_debug.cfs_rq:/.util_avg.max
      1.30           -23.4%       1.00   2%  perf-stat.i.MPKI
 5.757e+09           -17.7%  4.736e+09        perf-stat.i.branch-instructions
      0.65   3%      +0.1        0.70        perf-stat.i.branch-miss-rate%
  38695005   3%      -7.7%   35708627        perf-stat.i.branch-misses
     38.60            -9.7       28.94        perf-stat.i.cache-miss-rate%
  31607382           -38.6%   19404517        perf-stat.i.cache-misses
  82723252           -17.5%   68236401        perf-stat.i.cache-references
      2935   7%     -20.5%       2332   5%  perf-stat.i.context-switches
      9.32           +25.5%      11.70        perf-stat.i.cpi
      7126           +64.0%      11684        perf-stat.i.cycles-between-cache-misses
 2.442e+10           -19.3%   1.97e+10        perf-stat.i.instructions
      0.12           -19.0%       0.10   2%  perf-stat.i.ipc
      1.30           -23.8%       0.99   2%  perf-stat.overall.MPKI
      0.66   3%      +0.1        0.74        perf-stat.overall.branch-miss-rate%
     38.06            -9.8       28.29        perf-stat.overall.cache-miss-rate%
      9.27           +24.2%      11.51        perf-stat.overall.cpi
      7157           +63.0%      11670        perf-stat.overall.cycles-between-cache-misses
      0.11           -19.4%       0.09        perf-stat.overall.ipc
 5.645e+09           -17.7%  4.643e+09        perf-stat.ps.branch-instructions
  37338101   3%      -7.7%   34453073        perf-stat.ps.branch-misses
  31016005           -38.6%   19050425        perf-stat.ps.cache-misses
  81505741           -17.4%   67356950        perf-stat.ps.cache-references
      2878   8%     -20.9%       2275   5%  perf-stat.ps.context-switches
 2.394e+10           -19.3%  1.931e+10        perf-stat.ps.instructions
 1.469e+12           -19.6%  1.182e+12        perf-stat.total.instructions
     70.47           -11.9       58.54        perf-profile.calltrace.cycles-pp.handle_to_path.do_handle_open.do_syscall_64.entry_SYSCALL_64_after_hwframe.open_by_handle_at
     67.22           -11.7       55.47        perf-profile.calltrace.cycles-pp._raw_spin_lock.ilookup5_nowait.ilookup5.shmem_fh_to_dentry.exportfs_decode_fh_raw
     70.16           -11.7       58.44        perf-profile.calltrace.cycles-pp.exportfs_decode_fh_raw.exportfs_decode_fh.handle_to_path.do_handle_open.do_syscall_64
     70.16           -11.7       58.44        perf-profile.calltrace.cycles-pp.exportfs_decode_fh.handle_to_path.do_handle_open.do_syscall_64.entry_SYSCALL_64_after_hwframe
     68.66           -11.7       56.94        perf-profile.calltrace.cycles-pp.ilookup5.shmem_fh_to_dentry.exportfs_decode_fh_raw.exportfs_decode_fh.handle_to_path
     70.15           -11.7       58.44        perf-profile.calltrace.cycles-pp.shmem_fh_to_dentry.exportfs_decode_fh_raw.exportfs_decode_fh.handle_to_path.do_handle_open
     67.16           -11.7       55.44        perf-profile.calltrace.cycles-pp.native_queued_spin_lock_slowpath._raw_spin_lock.ilookup5_nowait.ilookup5.shmem_fh_to_dentry
     68.64           -11.7       56.94        perf-profile.calltrace.cycles-pp.ilookup5_nowait.ilookup5.shmem_fh_to_dentry.exportfs_decode_fh_raw.exportfs_decode_fh
     76.88            -8.8       68.10        perf-profile.calltrace.cycles-pp.open_by_handle_at
     76.73            -8.8       67.98        perf-profile.calltrace.cycles-pp.do_syscall_64.entry_SYSCALL_64_after_hwframe.open_by_handle_at
     76.69            -8.7       67.96        perf-profile.calltrace.cycles-pp.do_handle_open.do_syscall_64.entry_SYSCALL_64_after_hwframe.open_by_handle_at
     76.79            -8.7       68.07        perf-profile.calltrace.cycles-pp.entry_SYSCALL_64_after_hwframe.open_by_handle_at
      9.29            -0.1        9.17        perf-profile.calltrace.cycles-pp.native_queued_spin_lock_slowpath._raw_spin_lock.lockref_get_not_dead.__legitimize_path.try_to_unlazy
      1.42            +0.0        1.46        perf-profile.calltrace.cycles-pp.find_inode.ilookup5_nowait.ilookup5.shmem_fh_to_dentry.exportfs_decode_fh_raw
      1.39            +0.1        1.45        perf-profile.calltrace.cycles-pp._raw_spin_lock.find_inode.ilookup5_nowait.ilookup5.shmem_fh_to_dentry
      1.40            +0.1        1.46        perf-profile.calltrace.cycles-pp.native_queued_spin_lock_slowpath._raw_spin_lock.lockref_get.do_dentry_open.do_open
      1.44            +0.1        1.52        perf-profile.calltrace.cycles-pp.native_queued_spin_lock_slowpath._raw_spin_lock.dput.__fput.__x64_sys_close
      1.45            +0.1        1.53        perf-profile.calltrace.cycles-pp.native_queued_spin_lock_slowpath._raw_spin_lock.dput.path_put.do_handle_open
      1.36            +0.1        1.44        perf-profile.calltrace.cycles-pp.native_queued_spin_lock_slowpath._raw_spin_lock.find_inode.ilookup5_nowait.ilookup5
      1.42            +0.1        1.50        perf-profile.calltrace.cycles-pp.native_queued_spin_lock_slowpath._raw_spin_lock.dput.terminate_walk.path_openat
      1.41            +0.1        1.50        perf-profile.calltrace.cycles-pp._raw_spin_lock.lockref_get.do_dentry_open.do_open.path_openat
      1.46            +0.1        1.56        perf-profile.calltrace.cycles-pp._raw_spin_lock.dput.__fput.__x64_sys_close.do_syscall_64
      1.46            +0.1        1.57        perf-profile.calltrace.cycles-pp._raw_spin_lock.dput.path_put.do_handle_open.do_syscall_64
      1.43            +0.1        1.55        perf-profile.calltrace.cycles-pp._raw_spin_lock.dput.terminate_walk.path_openat.do_file_open_root
      1.47            +0.7        2.19        perf-profile.calltrace.cycles-pp.path_init.path_openat.do_file_open_root.file_open_root.do_handle_open
      1.86            +0.7        2.59        perf-profile.calltrace.cycles-pp.__close
      1.79            +0.7        2.52        perf-profile.calltrace.cycles-pp.do_syscall_64.entry_SYSCALL_64_after_hwframe.__close
      1.45            +0.7        2.18        perf-profile.calltrace.cycles-pp.lockref_get.path_init.path_openat.do_file_open_root.file_open_root
      1.78            +0.7        2.52        perf-profile.calltrace.cycles-pp.__x64_sys_close.do_syscall_64.entry_SYSCALL_64_after_hwframe.__close
      1.82            +0.8        2.57        perf-profile.calltrace.cycles-pp.entry_SYSCALL_64_after_hwframe.__close
      0.00            +0.8        0.77        perf-profile.calltrace.cycles-pp.lockref_put_return.dput.path_put.do_handle_open.do_syscall_64
      0.00            +0.8        0.78        perf-profile.calltrace.cycles-pp.lockref_put_return.dput.terminate_walk.path_openat.do_file_open_root
      1.64            +0.8        2.42        perf-profile.calltrace.cycles-pp.do_open.path_openat.do_file_open_root.file_open_root.do_handle_open
      1.67            +0.8        2.48        perf-profile.calltrace.cycles-pp.__fput.__x64_sys_close.do_syscall_64.entry_SYSCALL_64_after_hwframe.__close
      0.00            +0.8        0.81   2%  perf-profile.calltrace.cycles-pp.lockref_put_return.dput.__fput.__x64_sys_close.do_syscall_64
      1.58            +0.8        2.38        perf-profile.calltrace.cycles-pp.do_dentry_open.do_open.path_openat.do_file_open_root.file_open_root
      1.44            +0.8        2.28        perf-profile.calltrace.cycles-pp.lockref_get.do_dentry_open.do_open.path_openat.do_file_open_root
      1.48            +0.9        2.35        perf-profile.calltrace.cycles-pp.dput.path_put.do_handle_open.do_syscall_64.entry_SYSCALL_64_after_hwframe
      1.48            +0.9        2.35        perf-profile.calltrace.cycles-pp.path_put.do_handle_open.do_syscall_64.entry_SYSCALL_64_after_hwframe.open_by_handle_at
      1.47            +0.9        2.34        perf-profile.calltrace.cycles-pp.dput.terminate_walk.path_openat.do_file_open_root.file_open_root
      1.47            +0.9        2.34        perf-profile.calltrace.cycles-pp.terminate_walk.path_openat.do_file_open_root.file_open_root.do_handle_open
      1.50            +0.9        2.38        perf-profile.calltrace.cycles-pp.dput.__fput.__x64_sys_close.do_syscall_64.entry_SYSCALL_64_after_hwframe
      4.73            +2.3        7.06        perf-profile.calltrace.cycles-pp.do_file_open_root.file_open_root.do_handle_open.do_syscall_64.entry_SYSCALL_64_after_hwframe
      4.73            +2.3        7.06        perf-profile.calltrace.cycles-pp.file_open_root.do_handle_open.do_syscall_64.entry_SYSCALL_64_after_hwframe.open_by_handle_at
      4.67            +2.3        7.00        perf-profile.calltrace.cycles-pp.path_openat.do_file_open_root.file_open_root.do_handle_open.do_syscall_64
     10.36            +4.2       14.50        perf-profile.calltrace.cycles-pp.user_path_at_empty.__x64_sys_name_to_handle_at.do_syscall_64.entry_SYSCALL_64_after_hwframe.name_to_handle_at
      9.93            +4.2       14.14        perf-profile.calltrace.cycles-pp.filename_lookup.user_path_at_empty.__x64_sys_name_to_handle_at.do_syscall_64.entry_SYSCALL_64_after_hwframe
      9.90            +4.2       14.12        perf-profile.calltrace.cycles-pp.path_lookupat.filename_lookup.user_path_at_empty.__x64_sys_name_to_handle_at.do_syscall_64
      9.63            +4.4       14.03        perf-profile.calltrace.cycles-pp.complete_walk.path_lookupat.filename_lookup.user_path_at_empty.__x64_sys_name_to_handle_at
      9.63            +4.4       14.02        perf-profile.calltrace.cycles-pp.try_to_unlazy.complete_walk.path_lookupat.filename_lookup.user_path_at_empty
      9.62            +4.4       14.02        perf-profile.calltrace.cycles-pp.__legitimize_path.try_to_unlazy.complete_walk.path_lookupat.filename_lookup
      9.59            +4.4       14.01        perf-profile.calltrace.cycles-pp.lockref_get_not_dead.__legitimize_path.try_to_unlazy.complete_walk.path_lookupat
      9.69            +4.4       14.14        perf-profile.calltrace.cycles-pp.path_put.__x64_sys_name_to_handle_at.do_syscall_64.entry_SYSCALL_64_after_hwframe.name_to_handle_at
      9.69            +4.4       14.14        perf-profile.calltrace.cycles-pp.dput.path_put.__x64_sys_name_to_handle_at.do_syscall_64.entry_SYSCALL_64_after_hwframe
      0.00            +4.6        4.55   2%  perf-profile.calltrace.cycles-pp.lockref_put_return.dput.path_put.__x64_sys_name_to_handle_at.do_syscall_64
     20.70            +8.4       29.07        perf-profile.calltrace.cycles-pp.name_to_handle_at
     20.45            +8.4       28.90        perf-profile.calltrace.cycles-pp.do_syscall_64.entry_SYSCALL_64_after_hwframe.name_to_handle_at
     20.42            +8.5       28.88        perf-profile.calltrace.cycles-pp.__x64_sys_name_to_handle_at.do_syscall_64.entry_SYSCALL_64_after_hwframe.name_to_handle_at
     20.52            +8.5       28.99        perf-profile.calltrace.cycles-pp.entry_SYSCALL_64_after_hwframe.name_to_handle_at
     70.47           -11.9       58.54        perf-profile.children.cycles-pp.handle_to_path
     70.16           -11.7       58.44        perf-profile.children.cycles-pp.exportfs_decode_fh_raw
     70.16           -11.7       58.44        perf-profile.children.cycles-pp.exportfs_decode_fh
     68.66           -11.7       56.94        perf-profile.children.cycles-pp.ilookup5
     70.15           -11.7       58.44        perf-profile.children.cycles-pp.shmem_fh_to_dentry
     68.65           -11.7       56.94        perf-profile.children.cycles-pp.ilookup5_nowait
     95.73           -11.6       84.14        perf-profile.children.cycles-pp.native_queued_spin_lock_slowpath
     96.10           -11.2       84.88        perf-profile.children.cycles-pp._raw_spin_lock
     76.90            -8.8       68.11        perf-profile.children.cycles-pp.open_by_handle_at
     76.69            -8.7       67.96        perf-profile.children.cycles-pp.do_handle_open
      0.42   2%      -0.3        0.14  10%  perf-profile.children.cycles-pp.open64
      0.38   2%      -0.3        0.11   8%  perf-profile.children.cycles-pp.__x64_sys_openat
      0.38   3%      -0.3        0.11   8%  perf-profile.children.cycles-pp.do_sys_openat2
      0.33   3%      -0.2        0.09  13%  perf-profile.children.cycles-pp.do_filp_open
      0.20   3%      -0.1        0.07   8%  perf-profile.children.cycles-pp.getname_flags
      0.35   4%      -0.1        0.23  11%  perf-profile.children.cycles-pp.do_sys_name_to_handle
      0.14   3%      -0.1        0.03  70%  perf-profile.children.cycles-pp.alloc_empty_file
      0.16   3%      -0.1        0.06   9%  perf-profile.children.cycles-pp.clear_bhb_loop
      0.14   3%      -0.1        0.05        perf-profile.children.cycles-pp.__check_object_size
      0.12   4%      -0.1        0.03  70%  perf-profile.children.cycles-pp.strncpy_from_user
      0.14   2%      -0.1        0.05   7%  perf-profile.children.cycles-pp.link_path_walk
      1.43            +0.0        1.46        perf-profile.children.cycles-pp.find_inode
      0.28   2%      +0.1        0.35        perf-profile.children.cycles-pp.putname
     99.41            +0.1       99.56        perf-profile.children.cycles-pp.do_syscall_64
     99.57            +0.2       99.81        perf-profile.children.cycles-pp.entry_SYSCALL_64_after_hwframe
      1.86            +0.6        2.50        perf-profile.children.cycles-pp.do_open
      1.57            +0.7        2.22        perf-profile.children.cycles-pp.path_init
      1.70            +0.7        2.41        perf-profile.children.cycles-pp.do_dentry_open
      1.87            +0.7        2.59        perf-profile.children.cycles-pp.__close
      1.78            +0.7        2.52        perf-profile.children.cycles-pp.__x64_sys_close
      1.67            +0.8        2.48        perf-profile.children.cycles-pp.__fput
      1.51            +0.8        2.34        perf-profile.children.cycles-pp.terminate_walk
      2.91            +1.6        4.46        perf-profile.children.cycles-pp.lockref_get
      5.00            +2.1        7.09        perf-profile.children.cycles-pp.path_openat
      4.73            +2.3        7.06        perf-profile.children.cycles-pp.do_file_open_root
      4.73            +2.3        7.06        perf-profile.children.cycles-pp.file_open_root
     10.36            +4.1       14.51        perf-profile.children.cycles-pp.user_path_at_empty
      9.93            +4.2       14.14        perf-profile.children.cycles-pp.filename_lookup
      9.90            +4.2       14.12        perf-profile.children.cycles-pp.path_lookupat
      9.69            +4.4       14.05        perf-profile.children.cycles-pp.complete_walk
      9.68            +4.4       14.04        perf-profile.children.cycles-pp.try_to_unlazy
      9.67            +4.4       14.04        perf-profile.children.cycles-pp.__legitimize_path
      9.63            +4.4       14.02        perf-profile.children.cycles-pp.lockref_get_not_dead
     11.18            +5.3       16.49        perf-profile.children.cycles-pp.path_put
      0.28            +6.6        6.91   2%  perf-profile.children.cycles-pp.lockref_put_return
     14.16            +7.0       21.20        perf-profile.children.cycles-pp.dput
     20.73            +8.4       29.08        perf-profile.children.cycles-pp.name_to_handle_at
     20.42            +8.5       28.89        perf-profile.children.cycles-pp.__x64_sys_name_to_handle_at
     95.48           -11.5       83.94        perf-profile.self.cycles-pp.native_queued_spin_lock_slowpath
      0.16   3%      -0.1        0.06   9%  perf-profile.self.cycles-pp.clear_bhb_loop
      0.09   5%      -0.0        0.07   5%  perf-profile.self.cycles-pp.do_dentry_open
      0.11   5%      +0.0        0.15  13%  perf-profile.self.cycles-pp.do_sys_name_to_handle
      0.27            +0.1        0.35        perf-profile.self.cycles-pp.putname
      0.16   4%      +0.1        0.25   4%  perf-profile.self.cycles-pp.entry_SYSCALL_64_after_hwframe
      0.00            +0.1        0.10  12%  perf-profile.self.cycles-pp.dput
      0.37   2%      +0.4        0.74        perf-profile.self.cycles-pp._raw_spin_lock
      0.08            +1.4        1.53        perf-profile.self.cycles-pp.lockref_get
      0.27   2%      +4.3        4.61   2%  perf-profile.self.cycles-pp.lockref_get_not_dead
      0.28            +6.6        6.90   2%  perf-profile.self.cycles-pp.lockref_put_return





Disclaimer:
Results have been estimated based on internal Intel analysis and are provided
for informational purposes only. Any difference in system hardware or software
design or configuration may affect actual performance.


-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki

.

Date: Thu, 27 Jun 2024 10:49:13 +0800
From: kernel test robot <oliver.sang@intel.com>
To: Mateusz Guzik <mjguzik@gmail.com>
CC: <oe-lkp@lists.linux.dev>, <lkp@intel.com>, Linux Memory Management List
	<linux-mm@kvack.org>, Christian Brauner <brauner@kernel.org>,
	<linux-kernel@vger.kernel.org>, <ying.huang@intel.com>,
	<feng.tang@intel.com>, <fengwei.yin@intel.com>, <oliver.sang@intel.com>
Subject: [linux-next:master] [vfs]  bdf6091183:  stress-ng.full.ops_per_sec
 633.4% improvement
Message-ID: <202406270909.adb09955-oliver.sang@intel.com>
Content-Type: text/plain; charset="iso-8859-1"
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1260411 org.kvack.linux-mm:201572
Newsgroups: org.kernel.vger.linux-kernel,dev.linux.lists.oe-lkp,org.kvack.linux-mm
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail



Hello,

kernel test robot noticed a 633.4% improvement of stress-ng.full.ops_per_sec on:


commit: bdf609118326e7c15f1c7efbc629bd9f7f307231 ("vfs: move d_lockref out of the area used by RCU lookup")
https://git.kernel.org/cgit/linux/kernel/git/next/linux-next.git master

testcase: stress-ng
test machine: 256 threads 2 sockets GENUINE INTEL(R) XEON(R) (Sierra Forest) with 128G memory
parameters:

	nr_threads: 100%
	testtime: 60s
	test: full
	cpufreq_governor: performance






Details are as below:
-------------------------------------------------------------------------------------------------->


The kernel config and materials to reproduce are available at:
https://download.01.org/0day-ci/archive/20240627/202406270909.adb09955-oliver.sang@intel.com

=========================================================================================
compiler/cpufreq_governor/kconfig/nr_threads/rootfs/tbox_group/test/testcase/testtime:
  gcc-13/performance/x86_64-rhel-8.3/100%/debian-12-x86_64-20240206.cgz/lkp-srf-2sp1/full/stress-ng/60s

commit: 
  d042dae6ad ("lockref: speculatively spin waiting for the lock to be released")
  bdf6091183 ("vfs: move d_lockref out of the area used by RCU lookup")

d042dae6ad74df8a bdf609118326e7c15f1c7efbc62 
---------------- --------------------------- 
         %stddev     %change         %stddev
             \          |                \  
      0.24  14%      +0.3        0.51   6%  mpstat.cpu.all.usr%
    783327   4%     +12.4%     880472   4%  numa-numastat.node1.local_node
    516588   9%     +15.0%     594316   6%  vmstat.system.in
      8759  73%    +110.7%      18455  41%  numa-meminfo.node1.PageTables
    841412  11%     +18.1%     993556   7%  numa-meminfo.node1.Shmem
      2183  72%    +111.9%       4626  41%  numa-vmstat.node1.nr_page_table_pages
    210196  11%     +18.2%     248382   6%  numa-vmstat.node1.nr_shmem
    782967   4%     +12.4%     879991   4%  numa-vmstat.node1.numa_local
    244258   5%     +21.1%     295853   9%  sched_debug.cfs_rq:/.avg_vruntime.stddev
    456627  76%     -94.3%      26089   6%  sched_debug.cfs_rq:/.load.max
    244258   5%     +21.1%     295853   9%  sched_debug.cfs_rq:/.min_vruntime.stddev
   7656655  11%    +633.4%   56155706        stress-ng.full.ops
    127609  11%    +633.4%     935926        stress-ng.full.ops_per_sec
     59946            +6.6%      63873   4%  stress-ng.time.involuntary_context_switches
      5.96  11%    +597.3%      41.59        stress-ng.time.user_time
      1558   7%     -86.6%     208.33   6%  perf-c2c.DRAM.local
     15021   4%     +59.5%      23957   3%  perf-c2c.DRAM.remote
     15399   2%    +102.6%      31205   3%  perf-c2c.HITM.local
      9938   3%    +103.4%      20217   4%  perf-c2c.HITM.remote
     25337   2%    +102.9%      51422   3%  perf-c2c.HITM.total
     16172  32%    +162.6%      42464  13%  proc-vmstat.numa_hint_faults
     14655  34%     +82.4%      26726  24%  proc-vmstat.numa_hint_faults_local
   1428439            +5.2%    1502110        proc-vmstat.numa_hit
   1164410            +6.5%    1240512        proc-vmstat.numa_local
    169794  14%     +32.8%     225458  14%  proc-vmstat.numa_pte_updates
    185208            +5.9%     196095   4%  proc-vmstat.pgactivate
   1510415            +4.9%    1584896        proc-vmstat.pgalloc_normal
 7.553e+09  11%     +42.2%  1.074e+10   7%  perf-stat.i.branch-instructions
  20529685  22%     +58.4%   32511073  12%  perf-stat.i.branch-misses
     18.77   9%      +9.6       28.36   6%  perf-stat.i.cache-miss-rate%
   5757124  11%     +71.2%    9853953   8%  perf-stat.i.cache-misses
  27469874   9%     +23.9%   34036598   7%  perf-stat.i.cache-references
      2575   2%      +6.1%       2732   2%  perf-stat.i.context-switches
     16.75   8%     -24.4%      12.66   4%  perf-stat.i.cpi
    335.17   2%      +5.4%     353.20        perf-stat.i.cpu-migrations
    119311  12%     -44.0%      66812   5%  perf-stat.i.cycles-between-cache-misses
 3.106e+10  11%     +49.4%   4.64e+10   7%  perf-stat.i.instructions
      0.19   4%     +15.2%       0.22        perf-stat.overall.MPKI
     21.65   2%      +8.2       29.84   2%  perf-stat.overall.cache-miss-rate%
     18.46           -28.3%      13.23        perf-stat.overall.cpi
     98417   4%     -37.9%      61109        perf-stat.overall.cycles-between-cache-misses
      0.05           +39.5%       0.08        perf-stat.overall.ipc
 7.648e+09   9%     +39.7%  1.069e+10   6%  perf-stat.ps.branch-instructions
  20972501  19%     +52.4%   31965991  10%  perf-stat.ps.branch-misses
   5909643   9%     +69.3%   10006290   7%  perf-stat.ps.cache-misses
  27252734   7%     +23.0%   33515970   6%  perf-stat.ps.cache-references
      2461            +6.3%       2615        perf-stat.ps.context-switches
    323.20            +4.6%     338.19        perf-stat.ps.cpu-migrations
 3.146e+10   9%     +46.7%  4.616e+10   6%  perf-stat.ps.instructions
 2.154e+12           +38.9%  2.992e+12        perf-stat.total.instructions
     24.75           -24.7        0.00        perf-profile.calltrace.cycles-pp.dput.terminate_walk.path_openat.do_filp_open.do_sys_openat2
     24.75           -24.7        0.00        perf-profile.calltrace.cycles-pp.terminate_walk.path_openat.do_filp_open.do_sys_openat2.__x64_sys_openat
     24.74           -24.7        0.00        perf-profile.calltrace.cycles-pp.__legitimize_path.try_to_unlazy.complete_walk.do_open.path_openat
     24.74           -24.7        0.00        perf-profile.calltrace.cycles-pp.complete_walk.do_open.path_openat.do_filp_open.do_sys_openat2
     24.74           -24.7        0.00        perf-profile.calltrace.cycles-pp.try_to_unlazy.complete_walk.do_open.path_openat.do_filp_open
     24.74           -24.7        0.00        perf-profile.calltrace.cycles-pp.lockref_get_not_dead.__legitimize_path.try_to_unlazy.complete_walk.do_open
     24.73           -24.7        0.00        perf-profile.calltrace.cycles-pp.dput.__fput.__x64_sys_close.do_syscall_64.entry_SYSCALL_64_after_hwframe
     24.71           -24.7        0.00        perf-profile.calltrace.cycles-pp.lockref_get.do_dentry_open.do_open.path_openat.do_filp_open
     24.84           -24.2        0.65   9%  perf-profile.calltrace.cycles-pp.__fput.__x64_sys_close.do_syscall_64.entry_SYSCALL_64_after_hwframe.__close
     24.85           -24.2        0.69   8%  perf-profile.calltrace.cycles-pp.do_syscall_64.entry_SYSCALL_64_after_hwframe.__close
     24.85           -24.2        0.69   8%  perf-profile.calltrace.cycles-pp.entry_SYSCALL_64_after_hwframe.__close
     24.84           -24.2        0.68   9%  perf-profile.calltrace.cycles-pp.__x64_sys_close.do_syscall_64.entry_SYSCALL_64_after_hwframe.__close
     24.85           -24.1        0.72   8%  perf-profile.calltrace.cycles-pp.__close
     23.68           -23.7        0.00        perf-profile.calltrace.cycles-pp._raw_spin_lock.dput.terminate_walk.path_openat.do_filp_open
     23.67           -23.7        0.00        perf-profile.calltrace.cycles-pp._raw_spin_lock.lockref_get_not_dead.__legitimize_path.try_to_unlazy.complete_walk
     23.67           -23.7        0.00        perf-profile.calltrace.cycles-pp._raw_spin_lock.lockref_get.do_dentry_open.do_open.path_openat
     23.67           -23.7        0.00        perf-profile.calltrace.cycles-pp._raw_spin_lock.dput.__fput.__x64_sys_close.do_syscall_64
     23.63           -23.6        0.00        perf-profile.calltrace.cycles-pp.native_queued_spin_lock_slowpath._raw_spin_lock.dput.terminate_walk.path_openat
     23.62           -23.6        0.00        perf-profile.calltrace.cycles-pp.native_queued_spin_lock_slowpath._raw_spin_lock.lockref_get_not_dead.__legitimize_path.try_to_unlazy
     23.62           -23.6        0.00        perf-profile.calltrace.cycles-pp.native_queued_spin_lock_slowpath._raw_spin_lock.lockref_get.do_dentry_open.do_open
     23.62           -23.6        0.00        perf-profile.calltrace.cycles-pp.native_queued_spin_lock_slowpath._raw_spin_lock.dput.__fput.__x64_sys_close
     74.50           +23.3       97.82        perf-profile.calltrace.cycles-pp.__x64_sys_openat.do_syscall_64.entry_SYSCALL_64_after_hwframe.open64
     74.50           +23.3       97.82        perf-profile.calltrace.cycles-pp.do_sys_openat2.__x64_sys_openat.do_syscall_64.entry_SYSCALL_64_after_hwframe.open64
     74.52           +23.3       97.84        perf-profile.calltrace.cycles-pp.do_syscall_64.entry_SYSCALL_64_after_hwframe.open64
     74.52           +23.3       97.84        perf-profile.calltrace.cycles-pp.entry_SYSCALL_64_after_hwframe.open64
     74.41           +23.3       97.74        perf-profile.calltrace.cycles-pp.path_openat.do_filp_open.do_sys_openat2.__x64_sys_openat.do_syscall_64
     74.41           +23.3       97.75        perf-profile.calltrace.cycles-pp.do_filp_open.do_sys_openat2.__x64_sys_openat.do_syscall_64.entry_SYSCALL_64_after_hwframe
     74.52           +23.4       97.88        perf-profile.calltrace.cycles-pp.open64
     49.65           +47.5       97.18        perf-profile.calltrace.cycles-pp.do_open.path_openat.do_filp_open.do_sys_openat2.__x64_sys_openat
     24.83           +72.0       96.82        perf-profile.calltrace.cycles-pp.do_dentry_open.do_open.path_openat.do_filp_open.do_sys_openat2
      0.00           +96.0       95.99        perf-profile.calltrace.cycles-pp.native_queued_spin_lock_slowpath._raw_spin_lock.chrdev_open.do_dentry_open.do_open
      0.00           +96.2       96.18        perf-profile.calltrace.cycles-pp._raw_spin_lock.chrdev_open.do_dentry_open.do_open.path_openat
      0.00           +96.3       96.34        perf-profile.calltrace.cycles-pp.chrdev_open.do_dentry_open.do_open.path_openat.do_filp_open
     49.48           -48.8        0.65  13%  perf-profile.children.cycles-pp.dput
     24.71           -24.5        0.22  12%  perf-profile.children.cycles-pp.lockref_get
     24.74           -24.4        0.31  10%  perf-profile.children.cycles-pp.lockref_get_not_dead
     24.74           -24.4        0.32  10%  perf-profile.children.cycles-pp.__legitimize_path
     24.74           -24.4        0.32  10%  perf-profile.children.cycles-pp.complete_walk
     24.74           -24.4        0.32  10%  perf-profile.children.cycles-pp.try_to_unlazy
     24.75           -24.4        0.34  12%  perf-profile.children.cycles-pp.terminate_walk
     24.84           -24.2        0.65   9%  perf-profile.children.cycles-pp.__fput
     24.84           -24.2        0.68   9%  perf-profile.children.cycles-pp.__x64_sys_close
     24.85           -24.1        0.73   8%  perf-profile.children.cycles-pp.__close
      2.13   6%      -1.5        0.65  13%  perf-profile.children.cycles-pp.lockref_put_return
     99.79            -0.4       99.40        perf-profile.children.cycles-pp.do_syscall_64
     99.80            -0.4       99.42        perf-profile.children.cycles-pp.entry_SYSCALL_64_after_hwframe
      0.23   2%      +0.0        0.25        perf-profile.children.cycles-pp.ksys_write
      0.08   5%      +0.0        0.13   2%  perf-profile.children.cycles-pp.apparmor_file_free_security
      0.08   5%      +0.0        0.13   2%  perf-profile.children.cycles-pp.security_file_free
      0.00            +0.1        0.05        perf-profile.children.cycles-pp.stress_full
      0.02 141%      +0.1        0.07        perf-profile.children.cycles-pp.__x64_sys_pread64
      0.26            +0.1        0.32   2%  perf-profile.children.cycles-pp.write
      0.02  99%      +0.1        0.09   4%  perf-profile.children.cycles-pp.__do_sys_newfstatat
      0.02 141%      +0.1        0.08        perf-profile.children.cycles-pp.ksys_read
      0.08   5%      +0.1        0.15   2%  perf-profile.children.cycles-pp.vfs_read
      0.05            +0.1        0.12   3%  perf-profile.children.cycles-pp.__libc_pread
      0.05            +0.1        0.13   2%  perf-profile.children.cycles-pp.read
      0.05            +0.1        0.13   2%  perf-profile.children.cycles-pp.fstatat64
      0.00            +0.1        0.08   4%  perf-profile.children.cycles-pp.mas_rev_awalk
      0.08   6%      +0.1        0.17   4%  perf-profile.children.cycles-pp.apparmor_file_open
      0.08   6%      +0.1        0.18   4%  perf-profile.children.cycles-pp.security_file_open
      0.00            +0.1        0.10        perf-profile.children.cycles-pp.iov_iter_zero
      0.00            +0.1        0.10   3%  perf-profile.children.cycles-pp.read_iter_zero
      0.00            +0.1        0.11   3%  perf-profile.children.cycles-pp.ioctl
      0.00            +0.1        0.12   4%  perf-profile.children.cycles-pp.mas_empty_area_rev
      0.00            +0.1        0.14        perf-profile.children.cycles-pp.entry_SYSRETQ_unsafe_stack
      0.00            +0.1        0.15   3%  perf-profile.children.cycles-pp.apparmor_file_alloc_security
      0.00            +0.1        0.15   4%  perf-profile.children.cycles-pp.kobject_get_unless_zero
      0.00            +0.2        0.16   3%  perf-profile.children.cycles-pp.security_file_alloc
      0.00            +0.2        0.16   2%  perf-profile.children.cycles-pp.init_file
      0.00            +0.2        0.17   2%  perf-profile.children.cycles-pp.entry_SYSCALL_64
      0.00            +0.2        0.17   2%  perf-profile.children.cycles-pp.vm_unmapped_area
      0.00            +0.2        0.18  10%  perf-profile.children.cycles-pp.cdev_put
      0.00            +0.2        0.18  10%  perf-profile.children.cycles-pp.kobject_put
      0.00            +0.2        0.19        perf-profile.children.cycles-pp.alloc_empty_file
      0.00            +0.2        0.19        perf-profile.children.cycles-pp.arch_get_unmapped_area_topdown_vmflags
      0.00            +0.2        0.20   2%  perf-profile.children.cycles-pp.thp_get_unmapped_area_vmflags
      0.00            +0.2        0.20        perf-profile.children.cycles-pp.__get_unmapped_area
      0.00            +0.2        0.21   2%  perf-profile.children.cycles-pp.do_mmap
      0.02  99%      +0.3        0.29        perf-profile.children.cycles-pp.vm_mmap_pgoff
      0.02  99%      +0.3        0.31        perf-profile.children.cycles-pp.ksys_mmap_pgoff
      0.06   9%      +0.3        0.40        perf-profile.children.cycles-pp.__mmap
     94.70            +1.5       96.19        perf-profile.children.cycles-pp._raw_spin_lock
     94.51            +1.5       96.01        perf-profile.children.cycles-pp.native_queued_spin_lock_slowpath
     74.50           +23.3       97.82        perf-profile.children.cycles-pp.__x64_sys_openat
     74.50           +23.3       97.82        perf-profile.children.cycles-pp.do_sys_openat2
     74.41           +23.3       97.74        perf-profile.children.cycles-pp.path_openat
     74.41           +23.3       97.75        perf-profile.children.cycles-pp.do_filp_open
     74.52           +23.4       97.89        perf-profile.children.cycles-pp.open64
     49.65           +47.5       97.18        perf-profile.children.cycles-pp.do_open
     24.83           +72.0       96.82        perf-profile.children.cycles-pp.do_dentry_open
      0.00           +96.3       96.34        perf-profile.children.cycles-pp.chrdev_open
      2.12   6%      -1.5        0.64  13%  perf-profile.self.cycles-pp.lockref_put_return
      1.04   7%      -0.8        0.22  12%  perf-profile.self.cycles-pp.lockref_get
      1.06   6%      -0.7        0.31  10%  perf-profile.self.cycles-pp.lockref_get_not_dead
      0.08   5%      +0.0        0.13   2%  perf-profile.self.cycles-pp.apparmor_file_free_security
      0.00            +0.1        0.05        perf-profile.self.cycles-pp.stress_full
      0.00            +0.1        0.07        perf-profile.self.cycles-pp.mas_rev_awalk
      0.00            +0.1        0.08   4%  perf-profile.self.cycles-pp.entry_SYSCALL_64
      0.00            +0.1        0.09        perf-profile.self.cycles-pp.do_dentry_open
      0.08   6%      +0.1        0.17   4%  perf-profile.self.cycles-pp.apparmor_file_open
      0.00            +0.1        0.10        perf-profile.self.cycles-pp.iov_iter_zero
      0.00            +0.1        0.14        perf-profile.self.cycles-pp.entry_SYSRETQ_unsafe_stack
      0.00            +0.1        0.15   3%  perf-profile.self.cycles-pp.apparmor_file_alloc_security
      0.00            +0.1        0.15   4%  perf-profile.self.cycles-pp.kobject_get_unless_zero
      0.00            +0.2        0.18  10%  perf-profile.self.cycles-pp.kobject_put
     94.04            +1.5       95.52        perf-profile.self.cycles-pp.native_queued_spin_lock_slowpath




Disclaimer:
Results have been estimated based on internal Intel analysis and are provided
for informational purposes only. Any difference in system hardware or software
design or configuration may affect actual performance.


-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki

.

From: Ma Ke <make24@iscas.ac.cn>
To: patrik.r.jakobsson@gmail.com,
	maarten.lankhorst@linux.intel.com,
	mripard@kernel.org,
	tzimmermann@suse.de,
	airlied@gmail.com,
	daniel@ffwll.ch,
	alan@linux.intel.com,
	airlied@redhat.com
Cc: dri-devel@lists.freedesktop.org,
	linux-kernel@vger.kernel.org,
	Ma Ke <make24@iscas.ac.cn>,
	stable@vger.kernel.org
Subject: [PATCH v2] drm/gma500: fix null pointer dereference in psb_intel_lvds_get_modes
Date: Thu, 27 Jun 2024 10:50:33 +0800
Message-Id: <20240627025033.2981966-1-make24@iscas.ac.cn>
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1260412
Newsgroups: org.kernel.vger.linux-kernel,org.freedesktop.lists.dri-devel,org.kernel.vger.stable
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

In psb_intel_lvds_get_modes(), the return value of drm_mode_duplicate() is
assigned to mode, which will lead to a possible NULL pointer dereference
on failure of drm_mode_duplicate(). Add a check to avoid npd.

Cc: stable@vger.kernel.org
Fixes: 89c78134cc54 ("gma500: Add Poulsbo support")
Signed-off-by: Ma Ke <make24@iscas.ac.cn>
---
Changes in v2:
- modified the patch according to suggestions;
- added Fixes line;
- added Cc stable.
---
 drivers/gpu/drm/gma500/psb_intel_lvds.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/drivers/gpu/drm/gma500/psb_intel_lvds.c b/drivers/gpu/drm/gma500/psb_intel_lvds.c
index 8486de230ec9..8d1be94a443b 100644
--- a/drivers/gpu/drm/gma500/psb_intel_lvds.c
+++ b/drivers/gpu/drm/gma500/psb_intel_lvds.c
@@ -504,6 +504,9 @@ static int psb_intel_lvds_get_modes(struct drm_connector *connector)
 	if (mode_dev->panel_fixed_mode != NULL) {
 		struct drm_display_mode *mode =
 		    drm_mode_duplicate(dev, mode_dev->panel_fixed_mode);
+		if (!mode)
+			return 0;
+
 		drm_mode_probed_add(connector, mode);
 		return 1;
 	}
-- 
2.25.1

.

Return-Path: <linux-riscv-bounces+linux-riscv=archiver.kernel.org@lists.infradead.org>
From: zhouquan@iscas.ac.cn
To: linux-riscv@lists.infradead.org,
	linux-kernel@vger.kernel.org,
	linux-kselftest@vger.kernel.org
Cc: oleg@redhat.com,
	paul.walmsley@sifive.com,
	palmer@dabbelt.com,
	aou@eecs.berkeley.edu,
	andy.chiu@sifive.com,
	shuah@kernel.org,
	charlie@rivosinc.com,
	zhouquan@iscas.ac.cn
Subject: [PATCH v1 0/2] riscv: Expose orig_a0 to userspace for ptrace to set the actual a0
Date: Thu, 27 Jun 2024 11:02:21 +0800
Message-Id: <cover.1719408040.git.zhouquan@iscas.ac.cn>
MIME-Version: 1.0
X-BeenThere: linux-riscv@lists.infradead.org
X-Mailman-Version: 2.1.34
List-Id: <linux-riscv.lists.infradead.org>
List-Unsubscribe: <http://lists.infradead.org/mailman/options/linux-riscv>,
 <mailto:linux-riscv-request@lists.infradead.org?subject=unsubscribe>
List-Archive: <http://lists.infradead.org/pipermail/linux-riscv/>
List-Post: <mailto:linux-riscv@lists.infradead.org>
List-Help: <mailto:linux-riscv-request@lists.infradead.org?subject=help>
List-Subscribe: <http://lists.infradead.org/mailman/listinfo/linux-riscv>,
 <mailto:linux-riscv-request@lists.infradead.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: "linux-riscv" <linux-riscv-bounces@lists.infradead.org>
Errors-To: linux-riscv-bounces+linux-riscv=archiver.kernel.org@lists.infradead.org
Xref: photonic.trudheim.com org.infradead.lists.linux-riscv:79086 org.kernel.vger.linux-kernel:1260414
Newsgroups: org.infradead.lists.linux-riscv,org.kernel.vger.linux-kernel,org.kernel.vger.linux-kselftest
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

From: Quan Zhou <zhouquan@iscas.ac.cn>

Due to the path that modifies a0 in syscall_enter_from_user_mode before the
actual execution of syscall_handler [1], the kernel currently saves a0 to
orig_a0 at the entry point of do_trap_ecall_u as an original copy of a0.
Once the syscall is interrupted and later resumed, the restarted syscall
will use orig_a0 to continue execution.

The above rules generally apply except for ptrace(PTRACE_SETREGSET,),
where the kernel will ignore the tracer's setting of tracee/a0 and
will restart with the tracee/orig_a0. For the current kernel implementation
of ptrace, projects like CRIU/Proot will encounter issues where the a0
setting becomes ineffective when performing ptrace(PTRACE_SETREGSET,).

Here is a suggested solution, expose orig_a0 to userspace so that ptrace
can choose whether to set orig_a0 based on the actual scenario. In fact,
x86/orig_eax and loongArch/orig_a0 have adopted similar solutions.

[1] link:
https://lore.kernel.org/lkml/20230403-crisping-animosity-04ed8a45c625@spud/T/

---
Changes from RFC->v1:
- Rebased on Linux 6.10-rc5.
- Updated the patch description.
- Adjust MAX_REG_OFFSET to match the new bottom of pt_regs (Charlie).
- Simplify selftest to verify if a0 can be set (Charlie).
- Fix .gitignore error (Charlie).

---
RFC link:
https://lore.kernel.org/all/cover.1718693532.git.zhouquan@iscas.ac.cn/

Quan Zhou (2):
  riscv: Expose orig_a0 in the user_regs_struct structure
  riscv: selftests: Add a ptrace test to verify syscall parameter
    modification

 arch/riscv/include/asm/ptrace.h              |   7 +-
 arch/riscv/include/uapi/asm/ptrace.h         |   2 +
 tools/testing/selftests/riscv/Makefile       |   2 +-
 tools/testing/selftests/riscv/abi/.gitignore |   1 +
 tools/testing/selftests/riscv/abi/Makefile   |  12 ++
 tools/testing/selftests/riscv/abi/ptrace.c   | 124 +++++++++++++++++++
 6 files changed, 144 insertions(+), 4 deletions(-)
 create mode 100644 tools/testing/selftests/riscv/abi/.gitignore
 create mode 100644 tools/testing/selftests/riscv/abi/Makefile
 create mode 100644 tools/testing/selftests/riscv/abi/ptrace.c


base-commit: f2661062f16b2de5d7b6a5c42a9a5c96326b8454
-- 
2.34.1


_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv
.

Date: Thu, 27 Jun 2024 03:41:19 +0000
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
Mime-Version: 1.0
Message-ID: <20240627034119.3938050-1-aniketmaurya@google.com>
Subject: [PATCH] i3c: dw: Remove ibi_capable property
From: Aniket <aniketmaurya@google.com>
To: Alexandre Belloni <alexandre.belloni@bootlin.com>, Jeremy Kerr <jk@codeconstruct.com.au>, 
	Joel Stanley <joel@jms.id.au>, Billy Tsai <billy_tsai@aspeedtech.com>
Cc: linux-i3c@lists.infradead.org, linux-kernel@vger.kernel.org, 
	Krzysztof Kozlowski <krzysztof.kozlowski+dt@linaro.org>, Aniket <aniketmaurya@google.com>
Content-Type: text/plain; charset="UTF-8"
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1260430
Newsgroups: org.kernel.vger.linux-kernel,org.infradead.lists.linux-i3c
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

Since DW I3C IP master role always supports IBI, we don't need
to keep two variants of master ops and select one using this
property. Hence remove the code.

Signed-off-by: Aniket <aniketmaurya@google.com>
---
 drivers/i3c/master/ast2600-i3c-master.c |  1 -
 drivers/i3c/master/dw-i3c-master.c      | 23 ++---------------------
 drivers/i3c/master/dw-i3c-master.h      |  1 -
 3 files changed, 2 insertions(+), 23 deletions(-)

diff --git a/drivers/i3c/master/ast2600-i3c-master.c b/drivers/i3c/master/ast2600-i3c-master.c
index 01a47d3dd499..84942dbb6f80 100644
--- a/drivers/i3c/master/ast2600-i3c-master.c
+++ b/drivers/i3c/master/ast2600-i3c-master.c
@@ -156,7 +156,6 @@ static int ast2600_i3c_probe(struct platform_device *pdev)
 			i3c->sda_pullup);
 
 	i3c->dw.platform_ops = &ast2600_i3c_ops;
-	i3c->dw.ibi_capable = true;
 	return dw_i3c_common_probe(&i3c->dw, pdev);
 }
 
diff --git a/drivers/i3c/master/dw-i3c-master.c b/drivers/i3c/master/dw-i3c-master.c
index 77a2a1c3fd1d..9aae5c8dba8d 100644
--- a/drivers/i3c/master/dw-i3c-master.c
+++ b/drivers/i3c/master/dw-i3c-master.c
@@ -1404,21 +1404,6 @@ static const struct i3c_master_controller_ops dw_mipi_i3c_ops = {
 	.attach_i2c_dev = dw_i3c_master_attach_i2c_dev,
 	.detach_i2c_dev = dw_i3c_master_detach_i2c_dev,
 	.i2c_xfers = dw_i3c_master_i2c_xfers,
-};
-
-static const struct i3c_master_controller_ops dw_mipi_i3c_ibi_ops = {
-	.bus_init = dw_i3c_master_bus_init,
-	.bus_cleanup = dw_i3c_master_bus_cleanup,
-	.attach_i3c_dev = dw_i3c_master_attach_i3c_dev,
-	.reattach_i3c_dev = dw_i3c_master_reattach_i3c_dev,
-	.detach_i3c_dev = dw_i3c_master_detach_i3c_dev,
-	.do_daa = dw_i3c_master_daa,
-	.supports_ccc_cmd = dw_i3c_master_supports_ccc_cmd,
-	.send_ccc_cmd = dw_i3c_master_send_ccc_cmd,
-	.priv_xfers = dw_i3c_master_priv_xfers,
-	.attach_i2c_dev = dw_i3c_master_attach_i2c_dev,
-	.detach_i2c_dev = dw_i3c_master_detach_i2c_dev,
-	.i2c_xfers = dw_i3c_master_i2c_xfers,
 	.request_ibi = dw_i3c_master_request_ibi,
 	.free_ibi = dw_i3c_master_free_ibi,
 	.enable_ibi = dw_i3c_master_enable_ibi,
@@ -1456,7 +1441,6 @@ static void dw_i3c_hj_work(struct work_struct *work)
 int dw_i3c_common_probe(struct dw_i3c_master *master,
 			struct platform_device *pdev)
 {
-	const struct i3c_master_controller_ops *ops;
 	int ret, irq;
 
 	if (!master->platform_ops)
@@ -1506,12 +1490,9 @@ int dw_i3c_common_probe(struct dw_i3c_master *master,
 	master->maxdevs = ret >> 16;
 	master->free_pos = GENMASK(master->maxdevs - 1, 0);
 
-	ops = &dw_mipi_i3c_ops;
-	if (master->ibi_capable)
-		ops = &dw_mipi_i3c_ibi_ops;
-
 	INIT_WORK(&master->hj_work, dw_i3c_hj_work);
-	ret = i3c_master_register(&master->base, &pdev->dev, ops, false);
+	ret = i3c_master_register(&master->base, &pdev->dev,
+				  &dw_mipi_i3c_ops, false);
 	if (ret)
 		goto err_assert_rst;
 
diff --git a/drivers/i3c/master/dw-i3c-master.h b/drivers/i3c/master/dw-i3c-master.h
index 8cb617b8147e..7e76ca381d9f 100644
--- a/drivers/i3c/master/dw-i3c-master.h
+++ b/drivers/i3c/master/dw-i3c-master.h
@@ -38,7 +38,6 @@ struct dw_i3c_master {
 	struct clk *core_clk;
 	char version[5];
 	char type[5];
-	bool ibi_capable;
 	u32 sir_rej_mask;
 	/*
 	 * Per-device hardware data, used to manage the device address table
-- 
2.45.2.741.gdbec12cfda-goog

.

From: Dev Jain <dev.jain@arm.com>
To: shuah@kernel.org,
	oleg@redhat.com
Cc: mingo@kernel.org,
	tglx@linutronix.de,
	mark.rutland@arm.com,
	ryan.roberts@arm.com,
	broonie@kernel.org,
	suzuki.poulose@arm.com,
	Anshuman.Khandual@arm.com,
	DeepakKumar.Mishra@arm.com,
	aneesh.kumar@kernel.org,
	linux-kselftest@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	Dev Jain <dev.jain@arm.com>
Subject: [PATCH v4 0/2] Add test to distinguish between thread's signal mask and ucontext_t
Date: Thu, 27 Jun 2024 09:22:13 +0530
Message-Id: <20240627035215.1527279-1-dev.jain@arm.com>
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1260431
Newsgroups: org.kernel.vger.linux-kernel,org.kernel.vger.linux-kselftest
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

This patch series is motivated by the following observation:

Raise a signal, jump to signal handler. The ucontext_t structure dumped
by kernel to userspace has a uc_sigmask field having the mask of blocked
signals. If you run a fresh minimalistic program doing this, this field
is empty, even if you block some signals while registering the handler
with sigaction().

Here is what the man-pages have to say:

sigaction(2): "sa_mask specifies a mask of signals which should be blocked
(i.e., added to the signal mask of the thread in which the signal handler
is invoked) during execution of the signal handler. In addition, the
signal which triggered the handler will be blocked, unless the SA_NODEFER
flag is used."

signal(7): Under "Execution of signal handlers", (1.3) implies:

"The thread's current signal mask is accessible via the ucontext_t
object that is pointed to by the third argument of the signal handler."

But, (1.4) states:

"Any signals specified in act->sa_mask when registering the handler with
sigprocmask(2) are added to the thread's signal mask.  The signal being
delivered is also added to the signal mask, unless SA_NODEFER was
specified when registering the handler.  These signals are thus blocked
while the handler executes."

There clearly is no distinction being made in the man pages between
"Thread's signal mask" and ucontext_t; this logically should imply
that a signal blocked by populating struct sigaction should be visible
in ucontext_t.

Here is what the kernel code does (for Aarch64):

do_signal() -> handle_signal() -> sigmask_to_save(), which returns
&current->blocked, is passed to setup_rt_frame() -> setup_sigframe() ->
__copy_to_user(). Hence, &current->blocked is copied to ucontext_t
exposed to userspace. Returning back to handle_signal(),
signal_setup_done() -> signal_delivered() -> sigorsets() and
set_current_blocked() are responsible for using information from
struct ksignal ksig, which was populated through the sigaction()
system call in kernel/signal.c:
copy_from_user(&new_sa.sa, act, sizeof(new_sa.sa)),
to update &current->blocked; hence, the set of blocked signals for the
current thread is updated AFTER the kernel dumps ucontext_t to
userspace.

Assuming that the above is indeed the intended behaviour, because it
semantically makes sense, since the signals blocked using sigaction()
remain blocked only till the execution of the handler, and not in the
context present before jumping to the handler (but nothing can be
confirmed from the man-pages), the series introduces a test for
mangling with uc_sigmask. I will send a separate series to fix the
man-pages.

The proposed selftest has been tested out on Aarch32, Aarch64 and x86_64.

v3->v4:
 - Allocate sigsets as automatic variables to avoid malloc()

v2->v3:
 - ucontext describes current state -> ucontext describes interrupted context
 - Add a comment for blockage of USR2 even after return from handler
 - Describe blockage of signals in a better way

v1->v2:
 - Replace all occurrences of SIGPIPE with SIGSEGV
 - Fixed a mismatch between code comment and ksft log
 - Add a testcase: Raise the same signal again; it must not be queued
 - Remove unneeded <assert.h>, <unistd.h>
 - Give a detailed test description in the comments; also describe the
   exact meaning of delivered and blocked
 - Handle errors for all libc functions/syscalls
 - Mention tests in Makefile and .gitignore in alphabetical order

v1:
 - https://lore.kernel.org/all/20240607122319.768640-1-dev.jain@arm.com/

Dev Jain (2):
  selftests: Rename sigaltstack to generic signal
  selftests: Add a test mangling with uc_sigmask

 tools/testing/selftests/Makefile              |   2 +-
 .../{sigaltstack => signal}/.gitignore        |   3 +-
 .../{sigaltstack => signal}/Makefile          |   3 +-
 .../current_stack_pointer.h                   |   0
 .../selftests/signal/mangle_uc_sigmask.c      | 186 ++++++++++++++++++
 .../sas.c => signal/sigaltstack.c}            |   0
 6 files changed, 191 insertions(+), 3 deletions(-)
 rename tools/testing/selftests/{sigaltstack => signal}/.gitignore (57%)
 rename tools/testing/selftests/{sigaltstack => signal}/Makefile (53%)
 rename tools/testing/selftests/{sigaltstack => signal}/current_stack_pointer.h (100%)
 create mode 100644 tools/testing/selftests/signal/mangle_uc_sigmask.c
 rename tools/testing/selftests/{sigaltstack/sas.c => signal/sigaltstack.c} (100%)

-- 
2.34.1

.

From: Chris Packham <chris.packham@alliedtelesis.co.nz>
To: tglx@linutronix.de,
	robh@kernel.org,
	krzk+dt@kernel.org,
	conor+dt@kernel.org,
	tsbogend@alpha.franken.de,
	daniel.lezcano@linaro.org,
	paulburton@kernel.org,
	peterz@infradead.org,
	mail@birger-koblitz.de,
	bert@biot.com,
	john@phrozen.org,
	sander@svanheule.net
Cc: linux-kernel@vger.kernel.org,
	devicetree@vger.kernel.org,
	linux-mips@vger.kernel.org,
	kabel@kernel.org,
	ericwouds@gmail.com,
	Chris Packham <chris.packham@alliedtelesis.co.nz>
Subject: [PATCH v3 0/9] mips: Support for RTL9302C
Date: Thu, 27 Jun 2024 16:33:08 +1200
Message-ID: <20240627043317.3751996-1-chris.packham@alliedtelesis.co.nz>
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Content-Transfer-Encoding: quoted-printable
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1260441
Newsgroups: org.kernel.vger.linux-kernel,org.kernel.vger.linux-devicetree,org.kernel.vger.linux-mips
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

This series adds basic support for the RTL9302C reference board. Currentl=
y the
focus is on the CPU block stuff. I hope to get around to the DSA switch d=
river
eventually but this is a small start that lets me boot a mainline kernel =
on the
board I have. I initialiy started with code from openwrt but have paired =
it
down to just the clocksource driver and devicetree.

The first two patches in this series are fixing some complaints from make
dtbs_check for some existing realtek dts files. They can be applied on th=
eir
own if desired.

Chris Packham (9):
  mips: dts: realtek: use "serial" instead of "uart" in node name
  mips: dts: realtek: add device_type property to cpu node
  dt-bindings: vendor-prefixes: Add Cameo Communications
  dt-bindings: mips: realtek: Add rtl930x-soc compatible
  dt-bindings: timer: Add schema for realtek,otto-timer
  dt-bindings: interrupt-controller: realtek,rtl-intc: Add rtl9300-intc
  clocksource: realtek: Add timer driver for rtl-otto platforms
  mips: generic: add fdt fixup for Realtek reference board
  mips: dts: realtek: Add RTL9302C board

 .../realtek,rtl-intc.yaml                     |  18 +-
 .../devicetree/bindings/mips/realtek-rtl.yaml |   4 +
 .../bindings/timer/realtek,otto-timer.yaml    |  63 ++++
 .../devicetree/bindings/vendor-prefixes.yaml  |   2 +
 arch/mips/boot/dts/realtek/Makefile           |   1 +
 .../cameo-rtl9302c-2x-rtl8224-2xge.dts        |  73 +++++
 arch/mips/boot/dts/realtek/rtl838x.dtsi       |   1 +
 arch/mips/boot/dts/realtek/rtl83xx.dtsi       |   4 +-
 arch/mips/boot/dts/realtek/rtl930x.dtsi       |  79 +++++
 arch/mips/generic/Makefile                    |   1 +
 arch/mips/generic/board-realtek.c             |  81 +++++
 drivers/clocksource/Kconfig                   |  10 +
 drivers/clocksource/Makefile                  |   1 +
 drivers/clocksource/timer-rtl-otto.c          | 287 ++++++++++++++++++
 include/linux/cpuhotplug.h                    |   1 +
 15 files changed, 623 insertions(+), 3 deletions(-)
 create mode 100644 Documentation/devicetree/bindings/timer/realtek,otto-=
timer.yaml
 create mode 100644 arch/mips/boot/dts/realtek/cameo-rtl9302c-2x-rtl8224-=
2xge.dts
 create mode 100644 arch/mips/boot/dts/realtek/rtl930x.dtsi
 create mode 100644 arch/mips/generic/board-realtek.c
 create mode 100644 drivers/clocksource/timer-rtl-otto.c

--=20
2.45.2

.

Date: Wed, 26 Jun 2024 22:43:34 -0600
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
Mime-Version: 1.0
Message-ID: <20240627044335.2698578-1-yuzhao@google.com>
Subject: [PATCH mm-unstable v1] mm/hugetlb_vmemmap: fix race with speculative
 PFN walkers
From: Yu Zhao <yuzhao@google.com>
To: Andrew Morton <akpm@linux-foundation.org>, Muchun Song <muchun.song@linux.dev>
Cc: David Hildenbrand <david@redhat.com>, Frank van der Linden <fvdl@google.com>, 
	"Matthew Wilcox (Oracle)" <willy@infradead.org>, Peter Xu <peterx@redhat.com>, 
	Yang Shi <yang@os.amperecomputing.com>, linux-mm@kvack.org, 
	linux-kernel@vger.kernel.org, Yu Zhao <yuzhao@google.com>
Content-Type: text/plain; charset="UTF-8"
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1260447 org.kvack.linux-mm:201577
Newsgroups: org.kernel.vger.linux-kernel,org.kvack.linux-mm
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

While investigating HVO for THPs [1], it turns out that speculative
PFN walkers like compaction can race with vmemmap modifications, e.g.,

  CPU 1 (vmemmap modifier)         CPU 2 (speculative PFN walker)
  -------------------------------  ------------------------------
  Allocates an LRU folio page1
                                   Sees page1
  Frees page1

  Allocates a hugeTLB folio page2
  (page1 being a tail of page2)

  Updates vmemmap mapping page1
                                   get_page_unless_zero(page1)

Even though page1->_refcount is zero after HVO, get_page_unless_zero()
can still try to modify this read-only field, resulting in a crash.

An independent report [2] confirmed this race.

There are two discussed approaches to fix this race:
1. Make RO vmemmap RW so that get_page_unless_zero() can fail without
   triggering a PF.
2. Use RCU to make sure get_page_unless_zero() either sees zero
   page->_refcount through the old vmemmap or non-zero page->_refcount
   through the new one.

The second approach is preferred here because:
1. It can prevent illegal modifications to struct page[] that has been
   HVO'ed;
2. It can be generalized, in a way similar to ZERO_PAGE(), to fix
   similar races in other places, e.g., arch_remove_memory() on x86
   [3], which frees vmemmap mapping offlined struct page[].

While adding synchronize_rcu(), the goal is to be surgical, rather
than optimized. Specifically, calls to synchronize_rcu() on the error
handling paths can be coalesced, but it is not done for the sake of
Simplicity: noticeably, this fix removes ~50% more lines than it adds.

[1] https://lore.kernel.org/20240229183436.4110845-4-yuzhao@google.com/
[2] https://lore.kernel.org/917FFC7F-0615-44DD-90EE-9F85F8EA9974@linux.dev/
[3] https://lore.kernel.org/be130a96-a27e-4240-ad78-776802f57cad@redhat.com/

Signed-off-by: Yu Zhao <yuzhao@google.com>
---
 include/linux/page_ref.h |  8 +++++-
 mm/hugetlb.c             | 53 ++++++----------------------------------
 mm/hugetlb_vmemmap.c     | 16 ++++++++++++
 3 files changed, 30 insertions(+), 47 deletions(-)

diff --git a/include/linux/page_ref.h b/include/linux/page_ref.h
index 490d0ad6e56d..8c236c651d1d 100644
--- a/include/linux/page_ref.h
+++ b/include/linux/page_ref.h
@@ -230,7 +230,13 @@ static inline int folio_ref_dec_return(struct folio *folio)
 
 static inline bool page_ref_add_unless(struct page *page, int nr, int u)
 {
-	bool ret = atomic_add_unless(&page->_refcount, nr, u);
+	bool ret = false;
+
+	rcu_read_lock();
+	/* avoid writing to the vmemmap area being remapped */
+	if (!page_is_fake_head(page) && page_ref_count(page) != u)
+		ret = atomic_add_unless(&page->_refcount, nr, u);
+	rcu_read_unlock();
 
 	if (page_ref_tracepoint_active(page_ref_mod_unless))
 		__page_ref_mod_unless(page, nr, ret);
diff --git a/mm/hugetlb.c b/mm/hugetlb.c
index 9691624fcb79..1ddaf25737da 100644
--- a/mm/hugetlb.c
+++ b/mm/hugetlb.c
@@ -1629,13 +1629,10 @@ static inline void destroy_compound_gigantic_folio(struct folio *folio,
  * folio appears as just a compound page.  Otherwise, wait until after
  * allocating vmemmap to clear the flag.
  *
- * A reference is held on the folio, except in the case of demote.
- *
  * Must be called with hugetlb lock held.
  */
-static void __remove_hugetlb_folio(struct hstate *h, struct folio *folio,
-							bool adjust_surplus,
-							bool demote)
+static void remove_hugetlb_folio(struct hstate *h, struct folio *folio,
+							bool adjust_surplus)
 {
 	int nid = folio_nid(folio);
 
@@ -1657,6 +1654,7 @@ static void __remove_hugetlb_folio(struct hstate *h, struct folio *folio,
 		h->surplus_huge_pages_node[nid]--;
 	}
 
+	folio_clear_hugetlb_freed(folio);
 	/*
 	 * We can only clear the hugetlb flag after allocating vmemmap
 	 * pages.  Otherwise, someone (memory error handling) may try to write
@@ -1665,33 +1663,13 @@ static void __remove_hugetlb_folio(struct hstate *h, struct folio *folio,
 	if (!folio_test_hugetlb_vmemmap_optimized(folio))
 		__folio_clear_hugetlb(folio);
 
-	 /*
-	  * In the case of demote we do not ref count the page as it will soon
-	  * be turned into a page of smaller size.
-	 */
-	if (!demote)
-		folio_ref_unfreeze(folio, 1);
-
 	h->nr_huge_pages--;
 	h->nr_huge_pages_node[nid]--;
 }
 
-static void remove_hugetlb_folio(struct hstate *h, struct folio *folio,
-							bool adjust_surplus)
-{
-	__remove_hugetlb_folio(h, folio, adjust_surplus, false);
-}
-
-static void remove_hugetlb_folio_for_demote(struct hstate *h, struct folio *folio,
-							bool adjust_surplus)
-{
-	__remove_hugetlb_folio(h, folio, adjust_surplus, true);
-}
-
 static void add_hugetlb_folio(struct hstate *h, struct folio *folio,
 			     bool adjust_surplus)
 {
-	int zeroed;
 	int nid = folio_nid(folio);
 
 	VM_BUG_ON_FOLIO(!folio_test_hugetlb_vmemmap_optimized(folio), folio);
@@ -1715,21 +1693,6 @@ static void add_hugetlb_folio(struct hstate *h, struct folio *folio,
 	 */
 	folio_set_hugetlb_vmemmap_optimized(folio);
 
-	/*
-	 * This folio is about to be managed by the hugetlb allocator and
-	 * should have no users.  Drop our reference, and check for others
-	 * just in case.
-	 */
-	zeroed = folio_put_testzero(folio);
-	if (unlikely(!zeroed))
-		/*
-		 * It is VERY unlikely soneone else has taken a ref
-		 * on the folio.  In this case, we simply return as
-		 * free_huge_folio() will be called when this other ref
-		 * is dropped.
-		 */
-		return;
-
 	arch_clear_hugetlb_flags(folio);
 	enqueue_hugetlb_folio(h, folio);
 }
@@ -1783,6 +1746,8 @@ static void __update_and_free_hugetlb_folio(struct hstate *h,
 		spin_unlock_irq(&hugetlb_lock);
 	}
 
+	folio_ref_unfreeze(folio, 1);
+
 	/*
 	 * Non-gigantic pages demoted from CMA allocated gigantic pages
 	 * need to be given back to CMA in free_gigantic_folio.
@@ -3106,11 +3071,8 @@ static int alloc_and_dissolve_hugetlb_folio(struct hstate *h,
 
 free_new:
 	spin_unlock_irq(&hugetlb_lock);
-	if (new_folio) {
-		/* Folio has a zero ref count, but needs a ref to be freed */
-		folio_ref_unfreeze(new_folio, 1);
+	if (new_folio)
 		update_and_free_hugetlb_folio(h, new_folio, false);
-	}
 
 	return ret;
 }
@@ -3965,7 +3927,7 @@ static int demote_free_hugetlb_folio(struct hstate *h, struct folio *folio)
 
 	target_hstate = size_to_hstate(PAGE_SIZE << h->demote_order);
 
-	remove_hugetlb_folio_for_demote(h, folio, false);
+	remove_hugetlb_folio(h, folio, false);
 	spin_unlock_irq(&hugetlb_lock);
 
 	/*
@@ -3979,7 +3941,6 @@ static int demote_free_hugetlb_folio(struct hstate *h, struct folio *folio)
 		if (rc) {
 			/* Allocation of vmemmmap failed, we can not demote folio */
 			spin_lock_irq(&hugetlb_lock);
-			folio_ref_unfreeze(folio, 1);
 			add_hugetlb_folio(h, folio, false);
 			return rc;
 		}
diff --git a/mm/hugetlb_vmemmap.c b/mm/hugetlb_vmemmap.c
index fa00d61b6c5a..829112b0a914 100644
--- a/mm/hugetlb_vmemmap.c
+++ b/mm/hugetlb_vmemmap.c
@@ -455,6 +455,8 @@ static int __hugetlb_vmemmap_restore_folio(const struct hstate *h,
 	unsigned long vmemmap_reuse;
 
 	VM_WARN_ON_ONCE_FOLIO(!folio_test_hugetlb(folio), folio);
+	VM_WARN_ON_ONCE_FOLIO(folio_ref_count(folio), folio);
+
 	if (!folio_test_hugetlb_vmemmap_optimized(folio))
 		return 0;
 
@@ -490,6 +492,9 @@ static int __hugetlb_vmemmap_restore_folio(const struct hstate *h,
  */
 int hugetlb_vmemmap_restore_folio(const struct hstate *h, struct folio *folio)
 {
+	/* avoid writes from page_ref_add_unless() while unfolding vmemmap */
+	synchronize_rcu();
+
 	return __hugetlb_vmemmap_restore_folio(h, folio, 0);
 }
 
@@ -514,6 +519,9 @@ long hugetlb_vmemmap_restore_folios(const struct hstate *h,
 	long restored = 0;
 	long ret = 0;
 
+	/* avoid writes from page_ref_add_unless() while unfolding vmemmap */
+	synchronize_rcu();
+
 	list_for_each_entry_safe(folio, t_folio, folio_list, lru) {
 		if (folio_test_hugetlb_vmemmap_optimized(folio)) {
 			ret = __hugetlb_vmemmap_restore_folio(h, folio,
@@ -559,6 +567,8 @@ static int __hugetlb_vmemmap_optimize_folio(const struct hstate *h,
 	unsigned long vmemmap_reuse;
 
 	VM_WARN_ON_ONCE_FOLIO(!folio_test_hugetlb(folio), folio);
+	VM_WARN_ON_ONCE_FOLIO(folio_ref_count(folio), folio);
+
 	if (!vmemmap_should_optimize_folio(h, folio))
 		return ret;
 
@@ -610,6 +620,9 @@ void hugetlb_vmemmap_optimize_folio(const struct hstate *h, struct folio *folio)
 {
 	LIST_HEAD(vmemmap_pages);
 
+	/* avoid writes from page_ref_add_unless() while folding vmemmap */
+	synchronize_rcu();
+
 	__hugetlb_vmemmap_optimize_folio(h, folio, &vmemmap_pages, 0);
 	free_vmemmap_page_list(&vmemmap_pages);
 }
@@ -653,6 +666,9 @@ void hugetlb_vmemmap_optimize_folios(struct hstate *h, struct list_head *folio_l
 
 	flush_tlb_all();
 
+	/* avoid writes from page_ref_add_unless() while folding vmemmap */
+	synchronize_rcu();
+
 	list_for_each_entry(folio, folio_list, lru) {
 		int ret;
 
-- 
2.45.2.803.g4e1b14247a-goog

.

Date: Wed, 26 Jun 2024 21:46:13 -0700
From: Dmitry Torokhov <dmitry.torokhov@gmail.com>
To: Thierry Reding <thierry.reding@gmail.com>
Cc: Russell King <linux@armlinux.org.uk>,
	Jonathan Hunter <jonathanh@nvidia.com>,
	linux-arm-kernel@lists.infradead.org, linux-tegra@vger.kernel.org,
	linux-kernel@vger.kernel.org
Subject: [PATCH] ARM: tegra: paz00: use software nodes to describe GPIOs for
 WiFi rfkill
Message-ID: <ZnzulZBukibZUXKM@google.com>
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1260448
Newsgroups: org.kernel.vger.linux-kernel,org.infradead.lists.linux-arm-kernel,org.kernel.vger.linux-tegra
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

Complete conversion of the WiFi rfkill device to use device
properties/software nodes by utilizing PROPERTY_ENTRY_GPIO() instead of
a lookup table.

Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
---

Compiled only, no real hardware to test.

 arch/arm/mach-tegra/board-paz00.c | 50 ++++++++++++++++++++-----------
 1 file changed, 32 insertions(+), 18 deletions(-)

diff --git a/arch/arm/mach-tegra/board-paz00.c b/arch/arm/mach-tegra/board-paz00.c
index 18d37f90cdfe..3ec810b6f1a7 100644
--- a/arch/arm/mach-tegra/board-paz00.c
+++ b/arch/arm/mach-tegra/board-paz00.c
@@ -8,35 +8,49 @@
  * Copyright (C) 2010 Google, Inc.
  */
 
-#include <linux/property.h>
+#include <linux/err.h>
 #include <linux/gpio/machine.h>
+#include <linux/gpio/property.h>
 #include <linux/platform_device.h>
+#include <linux/printk.h>
+#include <linux/property.h>
 
 #include "board.h"
 
-static struct property_entry wifi_rfkill_prop[] __initdata = {
-	PROPERTY_ENTRY_STRING("name", "wifi_rfkill"),
-	PROPERTY_ENTRY_STRING("type", "wlan"),
-	{ },
+static const struct software_node tegra_gpiochip_node = {
+	.name	= "tegra-gpio",
 };
 
-static struct platform_device wifi_rfkill_device = {
-	.name	= "rfkill_gpio",
-	.id	= -1,
+static const struct property_entry wifi_rfkill_prop[] __initconst = {
+	PROPERTY_ENTRY_STRING("name", "wifi_rfkill"),
+	PROPERTY_ENTRY_STRING("type", "wlan"),
+	PROPERTY_ENTRY_GPIO("reset-gpios",
+			    &tegra_gpiochip_node, 25, GPIO_ACTIVE_HIGH),
+	PROPERTY_ENTRY_GPIO("shutdown-gpios",
+			    &tegra_gpiochip_node, 85, GPIO_ACTIVE_HIGH),
+	{ }
 };
 
-static struct gpiod_lookup_table wifi_gpio_lookup = {
-	.dev_id = "rfkill_gpio",
-	.table = {
-		GPIO_LOOKUP("tegra-gpio", 25, "reset", 0),
-		GPIO_LOOKUP("tegra-gpio", 85, "shutdown", 0),
-		{ },
-	},
+static const struct platform_device_info wifi_rfkill_info __initconst = {
+	.name		= "rfkill_gpio",
+	.id		= PLATFORM_DEVID_NONE,
+	.properties	= wifi_rfkill_prop,
 };
 
 void __init tegra_paz00_wifikill_init(void)
 {
-	device_create_managed_software_node(&wifi_rfkill_device.dev, wifi_rfkill_prop, NULL);
-	gpiod_add_lookup_table(&wifi_gpio_lookup);
-	platform_device_register(&wifi_rfkill_device);
+	struct platform_device *pd;
+	int err;
+
+	err = software_node_register(&tegra_gpiochip_node);
+	if (err) {
+		pr_err("failed to register %s node: %d\n",
+		       tegra_gpiochip_node.name, err);
+		return;
+	}
+
+	pd = platform_device_register_full(&wifi_rfkill_info);
+	err = PTR_ERR_OR_ZERO(pd);
+	if (err)
+		pr_err("failed to register WiFi rfkill device: %d\n", err);
 }
-- 
2.45.2.741.gdbec12cfda-goog


-- 
Dmitry
.

From: Dhruva Gole <d-gole@ti.com>
To: Viresh Kumar <viresh.kumar@linaro.org>,
        "Rafael J . Wysocki"
	<rafael.j.wysocki@intel.com>
CC: <linux-pm@vger.kernel.org>, <linux-kernel@vger.kernel.org>,
        Mario
 Limonciello <mario.limonciello@amd.com>,
        Dhruva Gole <d-gole@ti.com>
Subject: [PATCH V2] cpufreq: make cpufreq_boost_enabled return bool
Date: Thu, 27 Jun 2024 11:31:17 +0530
Message-ID: <20240627060117.1809477-1-d-gole@ti.com>
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1260465
Newsgroups: org.kernel.vger.linux-kernel,org.kernel.vger.linux-pm
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

Since this function is supposed to return boost_enabled which is anyway
a bool type make sure that it's return value is also marked as bool.
This helps maintain better consistency in data types being used.

Signed-off-by: Dhruva Gole <d-gole@ti.com>
---

Changelog:
"return false" instead of 0 as per Mario's suggestion.

Link to previous patch:
https://lore.kernel.org/linux-pm/20240626084354.1762483-1-d-gole@ti.com/

---

 drivers/cpufreq/cpufreq.c | 2 +-
 include/linux/cpufreq.h   | 6 +++---
 2 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/drivers/cpufreq/cpufreq.c b/drivers/cpufreq/cpufreq.c
index 82c500389a40..709e7b1f9826 100644
--- a/drivers/cpufreq/cpufreq.c
+++ b/drivers/cpufreq/cpufreq.c
@@ -2873,7 +2873,7 @@ int cpufreq_enable_boost_support(void)
 }
 EXPORT_SYMBOL_GPL(cpufreq_enable_boost_support);
 
-int cpufreq_boost_enabled(void)
+bool cpufreq_boost_enabled(void)
 {
 	return cpufreq_driver->boost_enabled;
 }
diff --git a/include/linux/cpufreq.h b/include/linux/cpufreq.h
index 20f7e98ee8af..6f57de7de433 100644
--- a/include/linux/cpufreq.h
+++ b/include/linux/cpufreq.h
@@ -785,7 +785,7 @@ ssize_t cpufreq_show_cpus(const struct cpumask *mask, char *buf);
 
 #ifdef CONFIG_CPU_FREQ
 int cpufreq_boost_trigger_state(int state);
-int cpufreq_boost_enabled(void);
+bool cpufreq_boost_enabled(void);
 int cpufreq_enable_boost_support(void);
 bool policy_has_boost_freq(struct cpufreq_policy *policy);
 
@@ -1164,9 +1164,9 @@ static inline int cpufreq_boost_trigger_state(int state)
 {
 	return 0;
 }
-static inline int cpufreq_boost_enabled(void)
+static inline bool cpufreq_boost_enabled(void)
 {
-	return 0;
+	return false;
 }
 
 static inline int cpufreq_enable_boost_support(void)

base-commit: df9574a57d02b265322e77fb8628d4d33641dda9
-- 
2.34.1

.

From: Ekansh Gupta <quic_ekangupt@quicinc.com>
To: <srinivas.kandagatla@linaro.org>, <linux-arm-msm@vger.kernel.org>
CC: <gregkh@linuxfoundation.org>, <quic_bkumar@quicinc.com>,
        <linux-kernel@vger.kernel.org>, <quic_chennak@quicinc.com>,
        <dri-devel@lists.freedesktop.org>, <arnd@arndb.de>,
        stable
	<stable@kernel.org>
Subject: [PATCH v2] misc: fastrpc: Remove user PD initmem size check
Date: Thu, 27 Jun 2024 11:35:18 +0530
Message-ID: <20240627060518.1510124-1-quic_ekangupt@quicinc.com>
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1260467
Newsgroups: org.kernel.vger.linux-kernel,org.kernel.vger.linux-arm-msm
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

For user PD initialization, initmem is allocated and sent to DSP for
initial memory requirements like shell loading. This size is passed
by user space and is checked against a max size. For unsigned PD
offloading, more than 2MB size could be passed by user which would
result in PD initialization failure. Remove the user PD initmem size
check and allow buffer allocation for user passed size. Any additional
memory sent to DSP during PD init is used as the PD heap.

Fixes: 7f1f481263c3 ("misc: fastrpc: check before loading process to the DSP")
Cc: stable <stable@kernel.org>
Signed-off-by: Ekansh Gupta <quic_ekangupt@quicinc.com>
---
Changes in v2:
  - Modified commit text.
  - Removed size check instead of updating max file size.

 drivers/misc/fastrpc.c | 5 -----
 1 file changed, 5 deletions(-)

diff --git a/drivers/misc/fastrpc.c b/drivers/misc/fastrpc.c
index 5204fda51da3..9d064deeac89 100644
--- a/drivers/misc/fastrpc.c
+++ b/drivers/misc/fastrpc.c
@@ -1389,11 +1389,6 @@ static int fastrpc_init_create_process(struct fastrpc_user *fl,
 		goto err;
 	}
 
-	if (init.filelen > INIT_FILELEN_MAX) {
-		err = -EINVAL;
-		goto err;
-	}
-
 	inbuf.pgid = fl->tgid;
 	inbuf.namelen = strlen(current->comm) + 1;
 	inbuf.filelen = init.filelen;
-- 
2.34.1

.

From: Ma Ke <make24@iscas.ac.cn>
To: patrik.r.jakobsson@gmail.com,
	maarten.lankhorst@linux.intel.com,
	mripard@kernel.org,
	tzimmermann@suse.de,
	airlied@gmail.com,
	daniel@ffwll.ch,
	alan@linux.intel.com,
	airlied@redhat.com
Cc: dri-devel@lists.freedesktop.org,
	linux-kernel@vger.kernel.org,
	Ma Ke <make24@iscas.ac.cn>,
	stable@vger.kernel.org
Subject: [PATCH v2] drm/gma500: fix null pointer dereference in cdv_intel_lvds_get_modes
Date: Thu, 27 Jun 2024 14:32:20 +0800
Message-Id: <20240627063220.3013568-1-make24@iscas.ac.cn>
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1260475
Newsgroups: org.kernel.vger.linux-kernel,org.freedesktop.lists.dri-devel,org.kernel.vger.stable
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

In cdv_intel_lvds_get_modes(), the return value of drm_mode_duplicate()
is assigned to mode, which will lead to a NULL pointer dereference on
failure of drm_mode_duplicate(). Add a check to avoid npd.

Cc: stable@vger.kernel.org
Fixes: 6a227d5fd6c4 ("gma500: Add support for Cedarview")
Signed-off-by: Ma Ke <make24@iscas.ac.cn>
---
Changes in v2:
- modified the patch according to suggestions from other patchs;
- added Fixes line;
- added Cc stable;
- Link: https://lore.kernel.org/lkml/20240622072514.1867582-1-make24@iscas.ac.cn/T/
---
 drivers/gpu/drm/gma500/cdv_intel_lvds.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/drivers/gpu/drm/gma500/cdv_intel_lvds.c b/drivers/gpu/drm/gma500/cdv_intel_lvds.c
index f08a6803dc18..3adc2c9ab72d 100644
--- a/drivers/gpu/drm/gma500/cdv_intel_lvds.c
+++ b/drivers/gpu/drm/gma500/cdv_intel_lvds.c
@@ -311,6 +311,9 @@ static int cdv_intel_lvds_get_modes(struct drm_connector *connector)
 	if (mode_dev->panel_fixed_mode != NULL) {
 		struct drm_display_mode *mode =
 		    drm_mode_duplicate(dev, mode_dev->panel_fixed_mode);
+		if (!mode)
+			return 0;
+
 		drm_mode_probed_add(connector, mode);
 		return 1;
 	}
-- 
2.25.1

.

From: Kamel Bouhara <kamel.bouhara@bootlin.com>
To: Dmitry Torokhov <dmitry.torokhov@gmail.com>,
	Rob Herring <robh+dt@kernel.org>,
	Krzysztof Kozlowski <krzysztof.kozlowski+dt@linaro.org>,
	Conor Dooley <conor+dt@kernel.org>,
	Henrik Rydberg <rydberg@bitmath.org>,
	linux-input@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	devicetree@vger.kernel.org,
	Marco Felsch <m.felsch@pengutronix.de>,
	Jeff LaBundy <jeff@labundy.com>
Cc: catalin.popescu@leica-geosystems.com,
	mark.satterthwaite@touchnetix.com,
	Thomas Petazzoni <thomas.petazzoni@bootlin.com>,
	Gregory Clement <gregory.clement@bootlin.com>,
	bsp-development.geo@leica-geosystems.com,
	Kamel Bouhara <kamel.bouhara@bootlin.com>
Subject: [PATCH v15 0/3] Input: Add TouchNetix axiom touchscreen driver
Date: Thu, 27 Jun 2024 08:54:30 +0200
Message-ID: <20240627065434.4915-1-kamel.bouhara@bootlin.com>
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1260484
Newsgroups: org.kernel.vger.linux-kernel,org.kernel.vger.linux-devicetree,org.kernel.vger.linux-input
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

Add a new driver for the TouchNetix's axiom family of touchscreen
controller. This driver only support i2c and can be later adapted for
SPI and USB support.
--
Changes in v15:
 - Fix report ABS_MT_TRACKING_ID after input_mt_slot

Changes in v14:
 - Fix is_report/present as booleans
 - Add a comment to describe the boolean variable insert
 - Remove not needed packed attributed from struct axiom_cmd_header
 - Remove duplicate target event checking
 - Only emit ABS_MT_DISTANCE/ABS_MT_PRESSURE
 - Remove input_report_key() as a mean to indicate firs reported contact
 - Remove EV_REL only need for u46 aka debug data
 - Report only MT_TOOL_FINGER instead of MT_TOOL_MAX
 - Remove unused EV_REL
 - Remove emit BTN_TOUCH as a way to indicate first target report
 - Remove unjustified delay after read access
 - Remove falling back to polling mode when no irq acquired in ACPI/DT
 - Remove handle of u46 report as it's not used
 - Remove touchscreen_report_pos() call as it generates extra dummy events
 - Rebase on v6.10-rc5

Changes in v13:
 - Fix CRC16 not selected reported in:https://lore.kernel.org/oe-kbuild-all/202405311035.5QZSREJv-lkp@intel.com/
 - Rebase on v6.10-rc2

Changes in v12:
 - Fix REGMAP_I2C not selected
 - Rebase on v6.10-rc1

Changes in v11:
 - Fix regulators name to match dt-binding
 - Enable regulators before reset is asserted

Changes in v10:
 - Set regulators as required
 - Enable power supply before reset
 - Fix ref count due to regulator requested twice
 - Rebase on v6.9-rc4

Changes in v9:
 - Fix issue reported in https://lore.kernel.org/oe-kbuild-all/202402201157.BKo97uWl-lkp@intel.com/
 - Rebase on v6.8-rc2

Changes in v8:
 - Fix missing call to input_report_slot_state()
 - Fix issue reported in https://lore.kernel.org/oe-kbuild-all/202402020623.8T1Ah513-lkp@intel.com/

Changes in v7:
 - Remove startup time from dt-binding
 - Fix usage table not correctly populated

Changes in v6:
 - Fix missing unevaluatedProperties.in dt-binding
 - Use __le16 to correctly deal with device endianness
 - Use standart kernel types s/char/u8/
 - Use regmap api as driver might support spi later
 - Use get_unaligned_le16() for the sake of clarity
 - Use devm_regulator_enable_optional()

Changes in v5:
 - Fix wrong message constructed in axiom_i2c_read
 - Delay required between i2c reads is >= 250us
 - Do not split report reading in two phases as we'll
   have to wait 500us
 - Use lower-case in properties names
 - Make regulators properties are required in dt-binding
 - Fix bug report: https://lore.kernel.org/lkml/202312051457.y3N1q3sZ-lkp@intel.com/
 - Fix bug report: https://lore.kernel.org/lkml/6f8e3b64-5b21-4a50-8680-063ef7a93bdb@suswa.mountain/

Changes in v4:
 - Cleanup unused headers and macros
 - Use standard kernel type
 - Namespace structures and functions
 - Use packed struct when possible to avoid bitfield operators
 - Fix missing break when address is found in axiom_populate_target_address()
 - Split reads in two steps for the reports, first length then report
   itself so we only read required bytes
 - Get poll-interval from devicetree
 - Add VDDI/VDDA regulators
 - Add a startup delay of 110 ms required after VDDA/VDDI is applied
 - Remove axiom_i2c_write() as it is no more used

Changes in v3:
 - Remove irq-gpios property in dt-binding
 - Use a generic node name
 - Fix issues reported in https://lore.kernel.org/oe-kbuild-all/202310100300.oAC2M62R-lkp@intel.com/

Changes in v2:
 - Add device tree binding documentation
 - Move core functions in axiom_i2c as we only care about i2c support now
 - Use static function when required
 - Use syntax dev_err_probe()
 - Add an hardware based reset

Kamel Bouhara (3):
  dt-bindings: vendor-prefixes: Add TouchNetix AS
  dt-bindings: input: Add TouchNetix axiom touchscreen
  Input: Add TouchNetix axiom i2c touchscreen driver

 .../input/touchscreen/touchnetix,ax54a.yaml   |  62 ++
 .../devicetree/bindings/vendor-prefixes.yaml  |   2 +
 MAINTAINERS                                   |   8 +
 drivers/input/touchscreen/Kconfig             |  14 +
 drivers/input/touchscreen/Makefile            |   1 +
 drivers/input/touchscreen/touchnetix_axiom.c  | 616 ++++++++++++++++++
 6 files changed, 703 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/input/touchscreen/touchnetix,ax54a.yaml
 create mode 100644 drivers/input/touchscreen/touchnetix_axiom.c

--
2.25.1

.

From: Peter Yin <peteryin.openbmc@gmail.com>
To: patrick@stwcx.xyz,
	amithash@meta.com,
	Rob Herring <robh@kernel.org>,
	Krzysztof Kozlowski <krzk+dt@kernel.org>,
	Conor Dooley <conor+dt@kernel.org>,
	Joel Stanley <joel@jms.id.au>,
	Andrew Jeffery <andrew@codeconstruct.com.au>,
	devicetree@vger.kernel.org,
	linux-arm-kernel@lists.infradead.org,
	linux-aspeed@lists.ozlabs.org,
	linux-kernel@vger.kernel.org
Subject: [PATCH v2 00/10] Revise Meta(Facebook) Harma BMC(AST2600)
Date: Thu, 27 Jun 2024 15:00:02 +0800
Message-Id: <20240627070013.2509150-1-peteryin.openbmc@gmail.com>
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1260494
Newsgroups: org.kernel.vger.linux-kernel,org.infradead.lists.linux-arm-kernel,org.kernel.vger.linux-devicetree
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

Summary:
Revise linux device tree entry related to Meta(Facebook) Harma
specific devices connected to BMC(AST2600) SoC.

Base on: https://lore.kernel.org/all/CAPSyxFRj0twCJG6Lr5UZpznrUHyd_L0Reo=kZSFwCw3FNQ+x+A@mail.gmail.com/

Change log:

v1 -> v2
  - Patch 0007  - add fru device
  - Patch 0008  - add temperature device
  - Patch 0009  - enable mctp controller
  - Patch 00010 - fixed dtb_check warning

v1
  - Patch 0001 - revise hsc chip
  - Patch 0002 - add VR device
  - Patch 0003 - add sgpio name
  - Patch 0004 - add ina238
  - Patch 0005 - add power monitor xdp710
  - Patch 0006 - remove multi-host property
  - Patch 0007 - remove pca9546

Peter Yin (10):
  ARM: dts: aspeed: Harma: revise hsc chip
  ARM: dts: aspeed: Harma: add VR device
  ARM: dts: aspeed: Harma: add sgpio name
  ARM: dts: aspeed: Harma: add ina238
  ARM: dts: aspeed: Harma: add power monitor xdp710
  ARM: dts: aspeed: Harma: remove multi-host property
  ARM: dts: aspeed: Harma: add fru device
  ARM: dts: aspeed: Harma: add temperature device
  ARM: dts: aspeed: Harma: enable mctp controller
  ARM: dts: aspeed: Harma: fixed dtb_check warning

 .../dts/aspeed/aspeed-bmc-facebook-harma.dts  | 146 ++++++++++++++++--
 1 file changed, 132 insertions(+), 14 deletions(-)

-- 
2.25.1

.

From: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
To: Borislav Petkov <bp@alien8.de>
Cc: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>,
	James Morse <james.morse@arm.com>,
	Len Brown <lenb@kernel.org>,
	Tony Luck <tony.luck@intel.com>,
	linux-acpi@vger.kernel.org,
	linux-edac@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	Jonathan Cameron <Jonathan.Cameron@huawei.com>,
	Shiju Jose <shiju.jose@huawei.com>
Subject: [PATCH 0/2] Add other fields to ARM trace event
Date: Thu, 27 Jun 2024 09:01:07 +0200
Message-ID: <cover.1719471257.git.mchehab+huawei@kernel.org>
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Sender: Mauro Carvalho Chehab <mchehab@kernel.org>
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1260507
Newsgroups: org.kernel.vger.linux-kernel,org.kernel.vger.linux-acpi,org.kernel.vger.linux-edac
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

This series was previously sent at:
https://lore.kernel.org/all/20240321-b4-arm-ras-error-vendor-info-v5-rc3-v5-0-850f9bfb97a8@os.amperecomputing.com/

Those patches that fix UEFI 2.6+ implementation of the ARM trace event,
as the original implementation was incomplete.

In summary:
changeset e9279e83ad1f ("trace, ras: add ARM processor error trace event")
was incomplete: it added a trace event that was reporting only some fields
of the CPER record generated for ARM processor from UEFI 2.6 spec.

Those are not enough there to actually parse such events on userspace,
for it to properly report/record the error nor to take appropriate measures
to prevent future problems, like poisoning problematic CPU cores and taking
them offline.

The patch was validated with the help of an ARM EINJ code for QEMU:

	https://github.com/mchehab/rasdaemon/wiki/error-injection

I tested the ghes and cper reports both with and without this change,
using different versions of rasdaemon, with and without support for
the extended trace event. Those are a summary of the test results:

- adding more fields to the trace events didn't break userspace API:
  both versions of rasdaemon handled it;

- the rasdaemon patches to handle the new trace report was missing
  a backward-compatibility logic. I fixed already. With that, rasdaemon
  can handle both old and new trace events.

Btw, rasdaemon has gained support for the extended trace since its
version 0.5.8 (released in 2021). I didn't saw any issues there
complain about troubles on it, so either distros used on ARM servers
are using an old version of rasdaemon, or they're carrying on the trace
event changes as well.

---

- Changes over the original changeset:
  - First patch was simplified to avoid too many #ifdefs;
  - reordered local vars using reverse xmas tree;
  - removed uneeded typecasts;
  - some coding style fixes.

Daniel Ferguson (1):
  RAS: ACPI: APEI: add conditional compilation to ARM error report
    functions

Shengwei Luo (1):
  RAS: Report all ARM processor CPER information to userspace

 drivers/acpi/apei/ghes.c | 14 +++++-------
 drivers/ras/ras.c        | 47 +++++++++++++++++++++++++++++++++++++--
 include/linux/ras.h      | 16 ++++++++++----
 include/ras/ras_event.h  | 48 +++++++++++++++++++++++++++++++++++-----
 4 files changed, 106 insertions(+), 19 deletions(-)

-- 
2.45.2


.

From: Chen-Yu Tsai <wenst@chromium.org>
To: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>,
	Maxime Ripard <mripard@kernel.org>,
	Thomas Zimmermann <tzimmermann@suse.de>,
	David Airlie <airlied@gmail.com>,
	Daniel Vetter <daniel@ffwll.ch>
Cc: Chen-Yu Tsai <wenst@chromium.org>,
	dri-devel@lists.freedesktop.org,
	linux-kernel@vger.kernel.org,
	Luca Ceresoli <luca.ceresoli@bootlin.com>
Subject: [PATCH v2] drm/mipi-dsi: Add OF notifier handler
Date: Thu, 27 Jun 2024 15:19:03 +0800
Message-ID: <20240627071904.4017160-1-wenst@chromium.org>
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1260523
Newsgroups: org.kernel.vger.linux-kernel,org.freedesktop.lists.dri-devel
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

Add OF notifier handler needed for creating/destroying MIPI DSI devices
according to dynamic runtime changes in the DT live tree. This code is
enabled when CONFIG_OF_DYNAMIC is selected.

This is based on existing code for I2C and SPI subsystems.

Signed-off-by: Chen-Yu Tsai <wenst@chromium.org>
---
Changes since v1:
- Added stub mipi_dsi_of_notifier in CONFIG_OF=n section for compilation

 drivers/gpu/drm/drm_mipi_dsi.c | 68 +++++++++++++++++++++++++++++++++-
 1 file changed, 67 insertions(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/drm_mipi_dsi.c b/drivers/gpu/drm/drm_mipi_dsi.c
index a471c46f5ca6..35d6ed1fb587 100644
--- a/drivers/gpu/drm/drm_mipi_dsi.c
+++ b/drivers/gpu/drm/drm_mipi_dsi.c
@@ -118,6 +118,7 @@ static void mipi_dsi_dev_release(struct device *dev)
 {
 	struct mipi_dsi_device *dsi = to_mipi_dsi_device(dev);
 
+	of_node_clear_flag(dev->of_node, OF_POPULATED);
 	of_node_put(dev->of_node);
 	kfree(dsi);
 }
@@ -158,6 +159,7 @@ static struct mipi_dsi_device *
 of_mipi_dsi_device_add(struct mipi_dsi_host *host, struct device_node *node)
 {
 	struct mipi_dsi_device_info info = { };
+	struct mipi_dsi_device *device;
 	int ret;
 	u32 reg;
 
@@ -175,10 +177,72 @@ of_mipi_dsi_device_add(struct mipi_dsi_host *host, struct device_node *node)
 
 	info.channel = reg;
 	info.node = of_node_get(node);
+	of_node_set_flag(node, OF_POPULATED);
 
-	return mipi_dsi_device_register_full(host, &info);
+	device = mipi_dsi_device_register_full(host, &info);
+	if (IS_ERR(device))
+		of_node_clear_flag(node, OF_POPULATED);
+
+	return device;
 }
+
+#if IS_ENABLED(CONFIG_OF_DYNAMIC)
+static int of_mipi_dsi_notify(struct notifier_block *nb, unsigned long action, void *arg)
+{
+	struct of_reconfig_data *rd = arg;
+	struct mipi_dsi_host *host;
+	struct mipi_dsi_device *device;
+
+	switch (of_reconfig_get_state_change(action, rd)) {
+	case OF_RECONFIG_CHANGE_ADD:
+		host = of_find_mipi_dsi_host_by_node(rd->dn->parent);
+		if (!host)
+			return NOTIFY_OK;	/* not for us */
+
+		if (of_node_test_and_set_flag(rd->dn, OF_POPULATED))
+			return NOTIFY_OK;
+
+		/*
+		 * Clear the flag before adding the device so that fw_devlink
+		 * doesn't skip adding consumers to this device.
+		 */
+		rd->dn->fwnode.flags &= ~FWNODE_FLAG_NOT_DEVICE;
+		device = of_mipi_dsi_device_add(host, rd->dn);
+		if (IS_ERR(device)) {
+			dev_err(host->dev, "failed to create device for '%pOF'\n", rd->dn);
+			of_node_clear_flag(rd->dn, OF_POPULATED);
+			return notifier_from_errno(PTR_ERR(device));
+		}
+		break;
+	case OF_RECONFIG_CHANGE_REMOVE:
+		/* already depopulated? */
+		if (!of_node_check_flag(rd->dn, OF_POPULATED))
+			return NOTIFY_OK;
+
+		/* find our device by node */
+		device = of_find_mipi_dsi_device_by_node(rd->dn);
+		if (!device)
+			return NOTIFY_OK;	/* no? not meant for us */
+
+		/* unregister takes one ref away */
+		mipi_dsi_device_unregister(device);
+
+		/* and put the reference of the find */
+		put_device(&device->dev);
+		break;
+	}
+
+	return NOTIFY_OK;
+}
+
+static struct notifier_block mipi_dsi_of_notifier = {
+	.notifier_call = of_mipi_dsi_notify,
+};
+#else
+static struct notifier_block mipi_dsi_of_notifier __always_unused;
+#endif
 #else
+static struct notifier_block mipi_dsi_of_notifier __always_unused;
 static struct mipi_dsi_device *
 of_mipi_dsi_device_add(struct mipi_dsi_host *host, struct device_node *node)
 {
@@ -1703,6 +1767,8 @@ EXPORT_SYMBOL(mipi_dsi_driver_unregister);
 
 static int __init mipi_dsi_bus_init(void)
 {
+	if (IS_ENABLED(CONFIG_OF_DYNAMIC))
+		WARN_ON(of_reconfig_notifier_register(&mipi_dsi_of_notifier));
 	return bus_register(&mipi_dsi_bus_type);
 }
 postcore_initcall(mipi_dsi_bus_init);
-- 
2.45.2.741.gdbec12cfda-goog

.

From: Ma Ke <make24@iscas.ac.cn>
To: kherbst@redhat.com,
	lyude@redhat.com,
	dakr@redhat.com,
	airlied@gmail.com,
	daniel@ffwll.ch,
	bskeggs@redhat.com,
	airlied@redhat.com
Cc: dri-devel@lists.freedesktop.org,
	nouveau@lists.freedesktop.org,
	linux-kernel@vger.kernel.org,
	Ma Ke <make24@iscas.ac.cn>,
	stable@vger.kernel.org
Subject: [PATCH v3] drm/nouveau: fix null pointer dereference in nouveau_connector_get_modes
Date: Thu, 27 Jun 2024 15:42:04 +0800
Message-Id: <20240627074204.3023776-1-make24@iscas.ac.cn>
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1260543
Newsgroups: org.kernel.vger.linux-kernel,org.freedesktop.lists.dri-devel,org.kernel.vger.stable
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

In nouveau_connector_get_modes(), the return value of drm_mode_duplicate()
is assigned to mode, which will lead to a possible NULL pointer
dereference on failure of drm_mode_duplicate(). Add a check to avoid npd.

Cc: stable@vger.kernel.org
Fixes: 6ee738610f41 ("drm/nouveau: Add DRM driver for NVIDIA GPUs")
Signed-off-by: Ma Ke <make24@iscas.ac.cn>
---
Changes in v3:
- added CC stable as suggested, sorry for my negligence.
Changes in v2:
- modified the patch according to suggestions;
- added Fixes line.
---
 drivers/gpu/drm/nouveau/nouveau_connector.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/drivers/gpu/drm/nouveau/nouveau_connector.c b/drivers/gpu/drm/nouveau/nouveau_connector.c
index 856b3ef5edb8..0c71d761d378 100644
--- a/drivers/gpu/drm/nouveau/nouveau_connector.c
+++ b/drivers/gpu/drm/nouveau/nouveau_connector.c
@@ -1001,6 +1001,9 @@ nouveau_connector_get_modes(struct drm_connector *connector)
 		struct drm_display_mode *mode;
 
 		mode = drm_mode_duplicate(dev, nv_connector->native_mode);
+		if (!mode)
+			return 0;
+
 		drm_mode_probed_add(connector, mode);
 		ret = 1;
 	}
-- 
2.25.1

.

Date: Thu, 27 Jun 2024 10:42:37 +0300
From: Matti Vaittinen <mazziesaccount@gmail.com>
To: Matti Vaittinen <mazziesaccount@gmail.com>,
	Matti Vaittinen <matti.vaittinen@fi.rohmeurope.com>
Cc: Lee Jones <lee@kernel.org>, Rob Herring <robh@kernel.org>,
	Krzysztof Kozlowski <krzysztof.kozlowski+dt@linaro.org>,
	Conor Dooley <conor+dt@kernel.org>,
	Liam Girdwood <lgirdwood@gmail.com>,
	Mark Brown <broonie@kernel.org>,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	"Rafael J. Wysocki" <rafael@kernel.org>,
	Matti Vaittinen <mazziesaccount@gmail.com>,
	Wim Van Sebroeck <wim@linux-watchdog.org>,
	Guenter Roeck <linux@roeck-us.net>, devicetree@vger.kernel.org,
	linux-kernel@vger.kernel.org, linux-watchdog@vger.kernel.org
Subject: [PATCH v5 0/6] Support ROHM BD96801 Scalable PMIC
Message-ID: <cover.1719473802.git.mazziesaccount@gmail.com>
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha256;
	protocol="application/pgp-signature"; boundary="naMxCvaYHuQUKU2V"
Content-Disposition: inline
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1260544
Newsgroups: org.kernel.vger.linux-kernel,org.kernel.vger.linux-devicetree,org.kernel.vger.linux-watchdog
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail


--naMxCvaYHuQUKU2V
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable

Support ROHM BD96801 Scalable PMIC

The ROHM BD96801 is automotive grade PMIC, intended to be usable in
multiple solutions. The BD96801 can be used as a stand-alone, or together
with separate 'companion PMICs'. This modular approach aims to make this
PMIC suitable for various use-cases.

This series brings only limited support. The more complete set of
features was sent in the RFC:
https://lore.kernel.org/lkml/cover.1712058690.git.mazziesaccount@gmail.com/

The v3: implemented also support for ERRB interrupt and setting a name
suffix to IRQ domains. That work was postponed and will be continued
after some unrelated changes to irqdomain code are completed as
discussed here:
https://lore.kernel.org/all/87plst28yk.ffs@tglx/

Revision history still tries to summarize changes from the RFC for the
reviewers.

Revision history:
v4 =3D> v5:
	- Drop unintended Makefile change from regulator Makefile

v3 =3D> v4:
	- Drop patches 7 to 10 (inclusive) until preparatory irqdomain changes
	   are done.
	- Cleanups as suggested by Lee.
	- Change the regulator subdevice name. (MFD and regulators).
	- Minor styling in MFD driver

v2 =3D> v3: Mostly based on feedback from Thomas Gleixner
	- Added acks from Krzysztof and Mark
	- Rebased on v6.10-rc2
	- Drop name suffix support for legacy IRQ domains (both
	  irqdomain and regmap)
	- Improve the commit message for patch 7/10

v1 =3D> v2:
	- Add support for setting a name suffix for fwnode backed IRQ domains.
	- Add support for setting a domain name suffix for regmap-IRQ.
	- Add handling of ERRB IRQs.
	- Small fixes based on feedback.

RFCv2 =3D> v1:
	- Drop ERRB IRQ from drivers (but not DT bindings).
	- Drop configuration which requires STBY - state.
	- Fix the register lock race by moving it from the regulator
	  driver to the MFD driver.

RFCv1 =3D> RFCv2:
	- Tidying code based on feedback form Krzysztof Kozlowski and
	  Lee Jones.
	- Documented undocumented watchdog related DT properties.
	- Added usage of the watchdog IRQ.
	- Use irq_domain_update_bus_token() to work-around debugFS name
	  collision for IRQ domains.

---


Matti Vaittinen (6):
  dt-bindings: ROHM BD96801 PMIC regulators
  dt-bindings: mfd: bd96801 PMIC core
  mfd: support ROHM BD96801 PMIC core
  regulator: bd96801: ROHM BD96801 PMIC regulators
  watchdog: ROHM BD96801 PMIC WDG driver
  MAINTAINERS: Add ROHM BD96801 'scalable PMIC' entries

 .../bindings/mfd/rohm,bd96801-pmic.yaml       | 173 ++++
 .../regulator/rohm,bd96801-regulator.yaml     |  63 ++
 MAINTAINERS                                   |   4 +
 drivers/mfd/Kconfig                           |  13 +
 drivers/mfd/Makefile                          |   1 +
 drivers/mfd/rohm-bd96801.c                    | 273 ++++++
 drivers/regulator/Kconfig                     |  12 +
 drivers/regulator/Makefile                    |   1 +
 drivers/regulator/bd96801-regulator.c         | 908 ++++++++++++++++++
 drivers/watchdog/Kconfig                      |  13 +
 drivers/watchdog/Makefile                     |   1 +
 drivers/watchdog/bd96801_wdt.c                | 416 ++++++++
 include/linux/mfd/rohm-bd96801.h              | 215 +++++
 include/linux/mfd/rohm-generic.h              |   1 +
 14 files changed, 2094 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/mfd/rohm,bd96801-pmic=
=2Eyaml
 create mode 100644 Documentation/devicetree/bindings/regulator/rohm,bd9680=
1-regulator.yaml
 create mode 100644 drivers/mfd/rohm-bd96801.c
 create mode 100644 drivers/regulator/bd96801-regulator.c
 create mode 100644 drivers/watchdog/bd96801_wdt.c
 create mode 100644 include/linux/mfd/rohm-bd96801.h


base-commit: 1613e604df0cd359cf2a7fbd9be7a0bcfacfabd0
--=20
2.45.1


--=20
Matti Vaittinen, Linux device drivers
ROHM Semiconductors, Finland SWDC
Kiviharjunlenkki 1E
90220 OULU
FINLAND

~~~ "I don't think so," said Rene Descartes. Just then he vanished ~~~
Simon says - in Latin please.
~~~ "non cogito me" dixit Rene Descarte, deinde evanescavit ~~~
Thanks to Simon Glass for the translation =3D]=20

--naMxCvaYHuQUKU2V
Content-Type: application/pgp-signature; name="signature.asc"

-----BEGIN PGP SIGNATURE-----

iQEzBAEBCAAdFiEEIx+f8wZb28fLKEhTeFA3/03aocUFAmZ9F+kACgkQeFA3/03a
ocWBsAf/QdlhMUwYBpyafmBY6fG6eGmmEc7uX7uQbX85eva1/Ur06PzQakUS0ZHA
bpFnT7uYImxTXf6374aR8tjg0TxVp5dQbliG9DpU+QYTItxzpuIh0VI6pwPn7Cj5
obL85HPfHpm2b7kpXWJG0QsAaUoiwub9ZQa9c/V9Z+nfTcXl9ColK8MxdhS5iW0A
QCaQ9Z6OMDFC2FDzYBwHOWvPSTgdWGwiJl14ShkkKacFbRww5hEGUH3CKAZ59CO/
jovqN0X8SehQM91kg8s/flGcbivT5ZEvf1xDpIfCF6ncyeY6Vq2JFnPZ4tHqhp4D
Sothg/mPj42Dv7LJ62+r2llLDni8Bg==
=JFFx
-----END PGP SIGNATURE-----

--naMxCvaYHuQUKU2V--
.

From: Roman Storozhenko <romeusmeister@gmail.com>
Date: Thu, 27 Jun 2024 09:49:37 +0200
Subject: [PATCH v3] cpupower: Make help command available for custom
 install dir
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit
Message-Id: <20240627-fix-help-issue-v3-1-85318a3974e4@gmail.com>
To: Thomas Renninger <trenn@suse.com>, Shuah Khan <shuah@kernel.org>
Cc: Javier Carrasco <javier.carrasco.cruz@gmail.com>, 
 linux-pm@vger.kernel.org, linux-kernel@vger.kernel.org, 
 Roman Storozhenko <romeusmeister@gmail.com>
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1260555
Newsgroups: org.kernel.vger.linux-kernel,org.kernel.vger.linux-pm
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

When the 'cpupower' utility installed in the custom dir, it fails to
render appropriate help info for a particular subcommand:
$ LD_LIBRARY_PATH=lib64/ bin/cpupower help monitor
with error message like 'No manual entry for cpupower-monitor.1'
The issue is that under the hood it calls 'exec' function with
the following args: 'man cpupower-monitor.1'. In turn, 'man' search
path is defined in '/etc/manpath.config'. Of course it contains only
standard system man paths.
Make subcommands help available for a user by setting up 'MANPATH'
environment variable to the custom installation man pages dir. That
variable value will be prepended to the man pages standard search paths
as described in 'SEARCH PATH' section of MANPATH(5).

Signed-off-by: Roman Storozhenko <romeusmeister@gmail.com>
---
Changes in v3:
- fix: append the previous value of "MANPATH" to a new one instead of
  its replacement
- Link to v2: https://lore.kernel.org/r/20240622-fix-help-issue-v2-1-6c19e28a4ec1@gmail.com

Changes in v2:
- Fixed spelling errors
- Simplified man pages search approach by the 'MANPATH' variable usage
- Link to v1: https://lore.kernel.org/r/20240621-fix-help-issue-v1-1-7906998d46eb@gmail.com
---
 tools/power/cpupower/utils/cpupower.c | 43 ++++++++++++++++++++++++++++++-----
 1 file changed, 37 insertions(+), 6 deletions(-)

diff --git a/tools/power/cpupower/utils/cpupower.c b/tools/power/cpupower/utils/cpupower.c
index 9ec973165af1..a7777e693fa7 100644
--- a/tools/power/cpupower/utils/cpupower.c
+++ b/tools/power/cpupower/utils/cpupower.c
@@ -12,6 +12,8 @@
 #include <unistd.h>
 #include <errno.h>
 #include <sched.h>
+#include <libgen.h>
+#include <limits.h>
 #include <sys/types.h>
 #include <sys/stat.h>
 #include <sys/utsname.h>
@@ -80,14 +82,17 @@ static void print_help(void)
 
 static int print_man_page(const char *subpage)
 {
-	int len;
-	char *page;
+	char *page, *man_path, *exec_dir, *man_env;
+	char exec_path[PATH_MAX];
+	int subpage_len;
 
-	len = 10; /* enough for "cpupower-" */
-	if (subpage != NULL)
-		len += strlen(subpage);
+	if (!subpage)
+		return -EINVAL;
 
-	page = malloc(len);
+	subpage_len = 10; /* enough for "cpupower-" */
+	subpage_len += strlen(subpage);
+
+	page = malloc(subpage_len);
 	if (!page)
 		return -ENOMEM;
 
@@ -97,6 +102,32 @@ static int print_man_page(const char *subpage)
 		strcat(page, subpage);
 	}
 
+	/* Get current process image name full path */
+	if (readlink("/proc/self/exe", exec_path, PATH_MAX) > 0) {
+		exec_dir = strdup(exec_path);
+		if (!exec_dir) {
+			free(page);
+			free(man_path);
+			return -ENOMEM;
+		}
+
+		/* Prepend standard search path for man pages with relative path
+		 * to custom install man directory
+		 */
+		man_env = getenv("MANPATH");
+		if (asprintf(&man_path, "%s/../man:%s",
+			dirname(exec_dir), (man_env ? man_env : "")) > 0) {
+			setenv("MANPATH", man_path, 1);
+			free(exec_dir);
+			free(man_path);
+		} else {
+			free(page);
+			free(exec_dir);
+			free(man_path);
+			return -ENOMEM;
+		}
+	}
+
 	execlp("man", "man", page, NULL);
 
 	/* should not be reached */

---
base-commit: 2102cb0d050d34d50b9642a3a50861787527e922
change-id: 20240619-fix-help-issue-573c40bb6427

Best regards,
-- 
Roman Storozhenko <romeusmeister@gmail.com>

.

From: Shuaidong Chen <lovejimcarreyforever@gmail.com>
To: jikos@kernel.org,
	bentiss@kernel.org
Cc: linux-input@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	Shuaidong Chen <lovejimcarreyforever@gmail.com>
Subject: [PATCH] HID: core: Remove extra spaces
Date: Thu, 27 Jun 2024 15:52:10 +0800
Message-Id: <20240627075210.3619255-1-lovejimcarreyforever@gmail.com>
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1260563
Newsgroups: org.kernel.vger.linux-kernel,org.kernel.vger.linux-input
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

Remove extra spaces to eliminate inconsistent indentation

Signed-off-by: Shuaidong Chen <lovejimcarreyforever@gmail.com>
---
 drivers/hid/hid-core.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/hid/hid-core.c b/drivers/hid/hid-core.c
index 6e09a918c849..e0e7c7b18f0d 100644
--- a/drivers/hid/hid-core.c
+++ b/drivers/hid/hid-core.c
@@ -2777,10 +2777,10 @@ int hid_add_device(struct hid_device *hdev)
 	/*
 	 * Check for the mandatory transport channel.
 	 */
-	 if (!hdev->ll_driver->raw_request) {
+	if (!hdev->ll_driver->raw_request) {
 		hid_err(hdev, "transport driver missing .raw_request()\n");
 		return -EINVAL;
-	 }
+	}
 
 	/*
 	 * Read the device report descriptor once and use as template
-- 
2.25.1

.

Date: Thu, 27 Jun 2024 09:59:03 +0200
Message-ID: <871q4iizp4.wl-tiwai@suse.de>
From: Takashi Iwai <tiwai@suse.de>
To: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Mark Brown <broonie@kernel.org>, Liam Girdwood <lgirdwood@gmail.com>,
 Linux Sound Mailing List <linux-sound@vger.kernel.org>, Linux Kernel
 Mailing List <linux-kernel@vger.kernel.org>
Subject: [GIT PULL] sound fixes for 6.10-rc6
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0 (generated by SEMI-EPG 1.14.7 - "Harue")
Content-Type: text/plain; charset=ISO-8859-2
Content-Transfer-Encoding: 8bit
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1260573
Newsgroups: org.kernel.vger.linux-kernel,org.kernel.vger.linux-sound
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

Linus,

please pull sound fixes for v6.10-rc6 from:

  git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound.git tags/sound-6.10-rc6

The topmost commit is 4b3e3810738376b3292d1bf29996640843fbd9a0

----------------------------------------------------------------

sound fixes for 6.10-rc6

This became bigger than usual, as it receives a pile of pending
ASoC fixes.  Most of changes are for device-specific issues while
there are a few core fixes that are all rather trivial.

- DMA-engine sync fixes
- Continued MIDI2 conversion fixes
- Various ASoC Intel SOF fixes
- A series of ASoC topology fixes for memory handling
- AMD ACP fix, curing a recent regression, too
- Platform / codec-specific fixes for mediatek, atmel, realtek, etc

----------------------------------------------------------------

Aivaz Latypov (1):
      ALSA: hda/relatek: Enable Mute LED on HP Laptop 15-gw0xxx

Alibek Omarov (1):
      ASoC: rockchip: i2s-tdm: Fix trcm mode by setting clock on right mclk

Amadeusz Sawiski (5):
      ASoC: topology: Fix references to freed memory
      ASoC: Intel: avs: Fix route override
      ASoC: topology: Do not assign fields that are already set
      ASoC: topology: Clean up route loading
      ASoC: topology: Fix route memory corruption

Andrei Simion (1):
      ASoC: atmel: atmel-classd: Re-add dai_link->platform to fix card init

Bard Liao (2):
      ASoC: SOF: Intel: hda-dai: skip tlv for dspless mode
      ASoC: SOF: Intel: hda-dai: remove skip_tlv label

Chen-Yu Tsai (1):
      ASoC: mediatek: mt8195: Add platform entry for ETDM1_OUT_BE dai link

Dirk Su (1):
      ALSA: hda/realtek: fix mute/micmute LEDs don't work for EliteBook 645/665 G11.

Dmitry Baryshkov (1):
      MAINTAINERS: copy linux-arm-msm for sound/qcom changes

Elinor Montmasson (1):
      ASoC: fsl-asoc-card: set priv->pdev before using it

Hsin-Te Yuan (1):
      ASoC: mediatek: mt8183-da7219-max98357: Fix kcontrol name collision

Jack Yu (3):
      ASoC: rt722-sdca-sdw: add silence detection register as volatile
      ASoC: rt722-sdca-sdw: add debounce time for type detection
      ASoC: rt5645: fix issue of random interrupt from push-button

Jai Luthra (2):
      ALSA: dmaengine: Synchronize dma channel after drop()
      ASoC: ti: davinci-mcasp: Set min period size using FIFO config

Jeff Johnson (3):
      ASoC: mxs: add missing MODULE_DESCRIPTION() macro
      ASoC: fsl: add missing MODULE_DESCRIPTION() macro
      ASoC: qcom: add missing MODULE_DESCRIPTION() macro

Maciej Strozek (1):
      ASoC: cs42l43: Increase default type detect time and button delay

Peter Ujfalusi (1):
      ASoC: SOF: sof-audio: Skip unprepare for in-use widgets on error rollback

Primoz Fiser (1):
      ASoC: ti: omap-hdmi: Fix too long driver name

Richard Fitzgerald (1):
      ASoC: cs35l56: Disconnect ASP1 TX sources when ASP1 DAI is hooked up

Shengjiu Wang (1):
      ALSA: dmaengine_pcm: terminate dmaengine before synchronize

Shuming Fan (1):
      ASoC: Intel: soc-acpi: mtl: fix speaker no sound on Dell SKU 0C64

Srinivas Kandagatla (1):
      ASoC: q6apm-lpass-dai: close graph on prepare errors

Takashi Iwai (4):
      ALSA: seq: Fix missing channel at encoding RPN/NRPN MIDI2 messages
      ALSA: PCM: Allow resume only for suspended streams
      ALSA: hda/realtek: Fix conflicting quirk for PCI SSID 17aa:3820
      ALSA: seq: Fix missing MSB in MIDI2 SPP conversion

Thomas GENTY (1):
      bytcr_rt5640 : inverse jack detect for Archos 101 cesium

Vijendar Mukunda (3):
      ASoC: amd: acp: add a null check for chip_pdev structure
      ASoC: amd: acp: remove i2s configuration check in acp_i2s_probe()
      ASoC: amd: acp: move chip->flag variable assignment

Vyacheslav Frantsishko (1):
      ASoC: amd: yc: Fix non-functional mic on ASUS M5602RA

Zhang Yi (1):
      ASoC: codecs: ES8326: Solve headphone detection issue

---
 MAINTAINERS                                        |  1 +
 include/sound/dmaengine_pcm.h                      |  1 +
 sound/core/pcm_dmaengine.c                         | 22 +++++++++++++
 sound/core/pcm_native.c                            |  2 ++
 sound/core/seq/seq_ump_convert.c                   | 10 +++---
 sound/pci/hda/patch_realtek.c                      | 25 ++++++++++++++-
 sound/soc/amd/acp/acp-i2s.c                        |  8 -----
 sound/soc/amd/acp/acp-pci.c                        | 12 ++++---
 sound/soc/amd/yc/acp6x-mach.c                      |  7 ++++
 sound/soc/atmel/atmel-classd.c                     |  7 ++--
 sound/soc/codecs/cs35l56-shared.c                  |  4 +++
 sound/soc/codecs/cs42l43-jack.c                    |  4 +--
 sound/soc/codecs/es8326.c                          |  8 +++--
 sound/soc/codecs/rt5645.c                          | 24 ++++++++++----
 sound/soc/codecs/rt5645.h                          |  6 ++++
 sound/soc/codecs/rt722-sdca-sdw.c                  |  4 ++-
 sound/soc/fsl/fsl-asoc-card.c                      |  3 +-
 sound/soc/fsl/imx-pcm-dma.c                        |  1 +
 sound/soc/intel/avs/topology.c                     | 19 ++++++++---
 sound/soc/intel/boards/bytcr_rt5640.c              | 11 +++++++
 sound/soc/intel/common/soc-acpi-intel-mtl-match.c  |  2 +-
 sound/soc/mediatek/mt8183/mt8183-da7219-max98357.c | 10 +++---
 sound/soc/mediatek/mt8195/mt8195-mt6359.c          |  1 +
 sound/soc/mxs/mxs-pcm.c                            |  1 +
 sound/soc/qcom/qdsp6/q6apm-lpass-dais.c            | 32 ++++++++++++-------
 sound/soc/qcom/sdw.c                               |  1 +
 sound/soc/rockchip/rockchip_i2s_tdm.c              | 13 ++++++--
 sound/soc/soc-generic-dmaengine-pcm.c              |  8 +++++
 sound/soc/soc-topology.c                           | 37 ++++++++++------------
 sound/soc/sof/intel/hda-dai.c                      |  6 ++--
 sound/soc/sof/sof-audio.c                          |  2 +-
 sound/soc/ti/davinci-mcasp.c                       |  9 ++++--
 sound/soc/ti/omap-hdmi.c                           |  6 +---
 33 files changed, 221 insertions(+), 86 deletions(-)

.

From: Chengming Zhou <chengming.zhou@linux.dev>
To: minchan@kernel.org,
	senozhatsky@chromium.org,
	akpm@linux-foundation.org
Cc: linux-mm@kvack.org,
	linux-kernel@vger.kernel.org,
	chengming.zhou@linux.dev
Subject: [PATCH 1/2] mm/zsmalloc: fix class per-fullness zspage counts
Date: Thu, 27 Jun 2024 15:59:58 +0800
Message-Id: <20240627075959.611783-1-chengming.zhou@linux.dev>
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1260576 org.kvack.linux-mm:201588
Newsgroups: org.kernel.vger.linux-kernel,org.kvack.linux-mm
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

We always use insert_zspage() and remove_zspage() to update zspage's
fullness location, which will account correctly.

But this special async free path use "splice" instead of remove_zspage(),
so the per-fullness zspage count for ZS_INUSE_RATIO_0 won't decrease.

Fix it by decreasing when iterate over the zspage free list.

Signed-off-by: Chengming Zhou <chengming.zhou@linux.dev>
---
 mm/zsmalloc.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/mm/zsmalloc.c b/mm/zsmalloc.c
index fec1a39e5bbe..7fc25fa4e6b3 100644
--- a/mm/zsmalloc.c
+++ b/mm/zsmalloc.c
@@ -1883,6 +1883,7 @@ static void async_free_zspage(struct work_struct *work)
 
 		class = zspage_class(pool, zspage);
 		spin_lock(&class->lock);
+		class_stat_dec(class, ZS_INUSE_RATIO_0, 1);
 		__free_zspage(pool, class, zspage);
 		spin_unlock(&class->lock);
 	}
-- 
2.20.1

.

From: Jinjie Ruan <ruanjinjie@huawei.com>
To: <catalin.marinas@arm.com>, <will@kernel.org>, <oleg@redhat.com>,
	<tglx@linutronix.de>, <peterz@infradead.org>, <luto@kernel.org>,
	<kees@kernel.org>, <wad@chromium.org>, <ruanjinjie@huawei.com>,
	<rostedt@goodmis.org>, <arnd@arndb.de>, <ardb@kernel.org>,
	<broonie@kernel.org>, <mark.rutland@arm.com>, <rick.p.edgecombe@intel.com>,
	<leobras@redhat.com>, <linux-kernel@vger.kernel.org>,
	<linux-arm-kernel@lists.infradead.org>
Subject: [PATCH v2 0/3] arm64: entry: Convert to generic entry
Date: Thu, 27 Jun 2024 16:12:06 +0800
Message-ID: <20240627081209.3511918-1-ruanjinjie@huawei.com>
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1260581
Newsgroups: org.kernel.vger.linux-kernel,org.infradead.lists.linux-arm-kernel
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

Currently, x86, Riscv, Loongarch use the generic entry. Convert arm64
to use the generic entry infrastructure from kernel/entry/*. The generic
entry makes maintainers' work easier and codes more elegant, which aslo
removed a lot of duplicate code.

Changes in v2:
- Add tested-by.
- Fix a bug that not call arch_post_report_syscall_entry() in
  syscall_trace_enter() if ptrace_report_syscall_entry() return not zero.
- Refactor report_syscall().
- Add comment for arch_prepare_report_syscall_exit().
- Adjust entry-common.h header file inclusion to alphabetical order.
- Update the commit message.

Jinjie Ruan (3):
  entry: Add some arch funcs to support arm64 to use generic entry
  arm64: Prepare to switch to generic entry
  arm64: entry: Convert to generic entry

 arch/arm64/Kconfig                    |   1 +
 arch/arm64/include/asm/entry-common.h |  60 +++++
 arch/arm64/include/asm/ptrace.h       |   5 +
 arch/arm64/include/asm/stacktrace.h   |   5 +-
 arch/arm64/include/asm/syscall.h      |   6 +-
 arch/arm64/include/asm/thread_info.h  |  23 +-
 arch/arm64/kernel/entry-common.c      | 355 ++++++--------------------
 arch/arm64/kernel/ptrace.c            |  81 +++---
 arch/arm64/kernel/signal.c            |   3 +-
 arch/arm64/kernel/syscall.c           |  18 +-
 include/linux/entry-common.h          |  51 ++++
 kernel/entry/common.c                 |  48 +++-
 12 files changed, 294 insertions(+), 362 deletions(-)
 create mode 100644 arch/arm64/include/asm/entry-common.h

-- 
2.34.1

.

From: Pengfei Li <pengfei.li_1@nxp.com>
To: krzk+dt@kernel.org,
	robh@kernel.org,
	abelvesa@kernel.org,
	mturquette@baylibre.com,
	sboyd@kernel.org,
	conor+dt@kernel.org,
	shawnguo@kernel.org,
	s.hauer@pengutronix.de,
	ping.bai@nxp.com,
	ye.li@nxp.com,
	peng.fan@nxp.com,
	aisheng.dong@nxp.com,
	frank.li@nxp.com
Cc: kernel@pengutronix.de,
	festevam@gmail.com,
	linux-clk@vger.kernel.org,
	imx@lists.linux.dev,
	devicetree@vger.kernel.org,
	linux-arm-kernel@lists.infradead.org,
	linux-kernel@vger.kernel.org
Subject: [PATCH v2 0/2] clk: imx93: Move IMX93_CLK_END macro to clk driver
Date: Thu, 27 Jun 2024 16:24:24 +0800
Message-Id: <20240627082426.394937-1-pengfei.li_1@nxp.com>
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1260598
Newsgroups: org.kernel.vger.linux-kernel,dev.linux.lists.imx,org.infradead.lists.linux-arm-kernel,org.kernel.vger.linux-clk,org.kernel.vger.linux-devicetree
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

'IMX93_CLK_END' macro was previously defined in imx93-clock.h to
indicate the number of clocks, but it is not part of the ABI, so
it should be moved to clk driver.

---
Change for v2:
- Use pre-processor define to simplify code.
- link to v1: https://lore.kernel.org/all/20240625175147.94985-1-pengfei.li_1@nxp.com/

Pengfei Li (2):
  clk: imx93: Move IMX93_CLK_END macro to clk driver
  dt-bindings: clock: imx93: Drop IMX93_CLK_END macro definition

 drivers/clk/imx/clk-imx93.c             | 2 ++
 include/dt-bindings/clock/imx93-clock.h | 1 -
 2 files changed, 2 insertions(+), 1 deletion(-)

-- 
2.34.1

.

From: Elinor Montmasson <elinor.montmasson@savoirfairelinux.com>
To: Liam Girdwood <lgirdwood@gmail.com>,
	Mark Brown <broonie@kernel.org>,
	Rob Herring <robh@kernel.org>,
	Krzysztof Kozlowski <krzk+dt@kernel.org>,
	Conor Dooley <conor+dt@kernel.org>,
	Shawn Guo <shawnguo@kernel.org>,
	Sascha Hauer <s.hauer@pengutronix.de>,
	Fabio Estevam <festevam@gmail.com>,
	Russell King <linux@armlinux.org.uk>,
	Catalin Marinas <catalin.marinas@arm.com>,
	Will Deacon <will@kernel.org>,
	Jaroslav Kysela <perex@perex.cz>,
	Takashi Iwai <tiwai@suse.com>,
	Shengjiu Wang <shengjiu.wang@gmail.com>,
	Xiubo Li <Xiubo.Lee@gmail.com>,
	Nicolin Chen <nicoleotsuka@gmail.com>
Cc: Pengutronix Kernel Team <kernel@pengutronix.de>,
	linux-sound@vger.kernel.org,
	devicetree@vger.kernel.org,
	imx@lists.linux.dev,
	linux-arm-kernel@lists.infradead.org,
	linux-kernel@vger.kernel.org,
	alsa-devel@alsa-project.org,
	linuxppc-dev@lists.ozlabs.org,
	Elinor Montmasson <elinor.montmasson@savoirfairelinux.com>,
	Philip-Dylan <philip-dylan.gleonec@savoirfairelinux.com>
Subject: [PATCH v6 0/7] ASoC: fsl-asoc-card: add S/PDIF controller support
Date: Thu, 27 Jun 2024 10:30:57 +0200
Message-Id: <20240627083104.123357-1-elinor.montmasson@savoirfairelinux.com>
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=quoted-printable
Content-Transfer-Encoding: quoted-printable
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1260604
Newsgroups: org.kernel.vger.linux-kernel,dev.linux.lists.imx,org.infradead.lists.linux-arm-kernel,org.kernel.vger.linux-devicetree,org.kernel.vger.linux-sound,org.ozlabs.lists.linuxppc-dev
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

Hello,

This is the v6 of the series of patches aiming to make the machine
driver `fsl-asoc-card` compatible with S/PDIF controllers on imx boards.
The main goal is to allow the use of S/PDIF controllers with ASRC
modules.

The `imx-spdif` machine driver already has specific support for S/PDIF
controllers but doesn't support using an ASRC with it. However, the
`fsl-asoc-card` machine driver has the necessary code to create a sound
card which can use an ASRC module.
It is then possible to extend the support for S/PDIF audio cards by
merging the `imx-spdif` driver into `fsl-asoc-card`.

The first three patches adapt the `fsl-asoc-card` driver to support
multiple codec use cases.
The driver can get 2 codec phandles from the device tree, and
codec-related variables are doubled.
`for_each_codecs` macros are also used when possible to ease adding
other multi-codec use cases in the future.
It makes possible to use the two S/PDIF dummy codec drivers
`spdif_receiver` and `spdif_transmitter` instead of `snd-soc-dummy`,
which was used in `imx-spdif`.

The fourth patch merges the S/PDIF support from `imx-spdif` to
`fsl-asoc-card`.
`fsl-asoc-card` offers the same functionalities as `imx-spdif` did, but
this merge also extends the S/PDIF support with the possibility of using
an ASRC.
Compatible "fsl,imx-audio-spdif" is kept, but `fsl-asoc-card` uses
different DT properties compared to `imx-spdif`:
* The "spdif-controller" property from `imx-spdif` is named "audio-cpu"
  in `fsl-asoc-card`.
* `fsl-asoc-card` uses codecs explicitly declared in DT with
  "audio-codec". With an S/PDIF, codec drivers `spdif_transmitter` and
  `spdif_receiver` should be used. Driver `imx-spdif` used instead the
  dummy codec and a pair of boolean properties, "spdif-in" and
  "spdif-out".
Backward compatibility is therefore implemented in `fsl-asoc-card`.
However, it is recommended to use the new properties when needed.
Especially, declaring and using S/PDIF transmitter and/or receiver nodes
is better than using the dummy codec.

The last three patches update the device tree bindings of
`fsl-asoc-card` and update all in-tree device trees to use the
`fsl-asoc-card` properties.
Note that as the old properties are still supported:
* previous versions of in-tree device trees are still supported.
* out-of-tree device trees are still supported.

This series of patches was successfully built for arm64 and x86 on top
of the latest=C2=A0"for-next" branch of the ASoC git tree on the 26th of Ju=
ne
2024.
These modifications have also been tested on an i.MX8MN evaluation board
with a linux kernel RT v6.1.26-rt8.

If you have any questions or remarks about these commits, don't hesitate
to reply to this message.

Best regards,
Elinor Montmasson


Changelog:
v5 -> v6:
* Remove applied patch "ASoC: fsl-asoc-card: set priv->pdev before using
  it".
* Add backward compatibility with `imx-spdif` DT properties.
* Squash removal of `imx-spdif.yaml` into patch updating
  `fsl-asoc-card.yaml`.
* `fsl-asoc-card.yaml`: fix indentation, document use of compatible
  "fsl,imx-audio-spdif" only with "fsl,imx-sabreauto-spdif" or
  "fsl,imx6sx-sdb-spdif".
* Explain better in commit messages why there are new DT properties that
  can be used with "fsl,imx-audio-spdif" and what are the benefits to
  use them.=20
* v5 patch series at :
https://lore.kernel.org/all/20240620132511.4291-1-elinor.montmasson@savoirf=
airelinux.com/

v4 -> v5:
* Focus the contribution to bringing S/PDIF / ASRC support.
* Instead of creating a new compatible for the S/PDIF `fsl-asoc-card`
  support, merge the driver `imx-spdif` into `fsl-asoc-card`, and keep
  the compatible. It preserves the base S/PDIF audio card support but also
  extends it with the possibility to use an ASRC. It also reduces code and
  driver duplication.
* Following driver merge, adapt device trees using "fsl,imx-audio-spdif"
  compatible.=20
* Use more `for_each_codecs` macros in `fsl-asoc-card` when adding
  multi-codec support.
* Remove patches about new device-tree bindings that were not relevant
  for an S/PDIF specific support.
* Improve DT schema changes.
* Move `priv->pdev` assignment earlier in "fsl_asoc_card_probe()" to fix
  a NULL pointer dereference in "fsl_asoc_card_audmux_init()".
* v4 patch series at :
https://lore.kernel.org/all/20240515135411.343333-1-elinor.montmasson@savoi=
rfairelinux.com/

v3 -> v4:
* Use the standard TDM bidings, as defined in "tdm-slot.txt", for the
  new optional DT bindings setting the TDM slots number and width.
* Use the clock DT bindings to optionally specify the CPU DAI system
  clock frequency, instead of a dedicated new binding.
* Rename the new DT binding "cpu-sysclk-dir-out" to
  "cpu-system-clock-direction-out" to better follow the style of the
  simple-card driver.
* Merge TX an RX bindings for CPU DAI system-clock, to better follow the
  style of the simple-card driver, and also as there was no use case in
  fsl-asoc-card where TX and RX settings had to be different.
* Add the documentation for the new bindings in the new DT schema
  bindings documentation. Also add an example with the generic codec.
* v3 patch series at :
https://lore.kernel.org/alsa-devel/20231218124058.2047167-1-elinor.montmass=
on@savoirfairelinux.com/

v2 -> v3:
* When the bitmaster or framemaster are retrieved from the device tree,
  the driver will now compare them with the two codecs possibly given in
  device tree, and not just the first codec.
* Improve driver modifications to use multiple codecs for better
  integration of future multi-codec use cases:
  * Use `for_each_codec` macros when possible.
  * `fsl_asoc_card_priv` struct now has 2 `codec_priv` as the driver
    can currently retrieve 2 codec phandles from the device tree.
* Fix subject of patch 10/10 to follow the style of the subsystem
* v2 patch series at:
https://lore.kernel.org/alsa-devel/20231027144734.3654829-1-elinor.montmass=
on@savoirfairelinux.com/

v1 -> v2:
* Replace use of the dummy codec by the pair of codecs spdif_receiver /
  spdif_transmitter.
* Adapt how dai links codecs are used to take into account the
  possibility for multiple codecs per link.
* Change compatible name.
* Adapt driver to be able to register two codecs given in the device
  tree.
* v1 patch series at:
https://lore.kernel.org/alsa-devel/20230901144550.520072-1-elinor.montmasso=
n@savoirfairelinux.com/


Elinor Montmasson (7):
  ASoC: fsl-asoc-card: add support for dai links with multiple codecs
  ASoC: fsl-asoc-card: add second dai link component for codecs
  ASoC: fsl-asoc-card: add compatibility to use 2 codecs in dai-links
  ASoC: fsl-asoc-card: merge spdif support from imx-spdif.c
  ASoC: dt-bindings: update fsl-asoc-card bindings after imx-spdif merge
  arm64: dts: imx8m: update spdif sound card node properties
  ARM: dts: imx6: update spdif sound card node properties

 .../bindings/sound/fsl,imx-audio-spdif.yaml   |  66 ---
 .../bindings/sound/fsl-asoc-card.yaml         |  53 ++-
 arch/arm/boot/dts/nxp/imx/imx6q-cm-fx6.dts    |  15 +-
 arch/arm/boot/dts/nxp/imx/imx6q-prti6q.dts    |  15 +-
 arch/arm/boot/dts/nxp/imx/imx6q-tbs2910.dts   |   9 +-
 arch/arm/boot/dts/nxp/imx/imx6qdl-apalis.dtsi |  15 +-
 .../arm/boot/dts/nxp/imx/imx6qdl-apf6dev.dtsi |   9 +-
 .../arm/boot/dts/nxp/imx/imx6qdl-colibri.dtsi |  15 +-
 .../arm/boot/dts/nxp/imx/imx6qdl-cubox-i.dtsi |   9 +-
 .../dts/nxp/imx/imx6qdl-hummingboard.dtsi     |   9 +-
 .../boot/dts/nxp/imx/imx6qdl-sabreauto.dtsi   |   9 +-
 .../boot/dts/nxp/imx/imx6qdl-wandboard.dtsi   |   9 +-
 .../arm/boot/dts/nxp/imx/imx6sx-sabreauto.dts |   9 +-
 arch/arm/boot/dts/nxp/imx/imx6sx-sdb.dtsi     |   9 +-
 arch/arm/configs/imx_v6_v7_defconfig          |   1 -
 arch/arm64/boot/dts/freescale/imx8mm-evk.dtsi |  15 +-
 arch/arm64/boot/dts/freescale/imx8mn-evk.dtsi |  15 +-
 arch/arm64/boot/dts/freescale/imx8mq-evk.dts  |  24 +-
 arch/arm64/configs/defconfig                  |   1 -
 sound/soc/fsl/Kconfig                         |  10 +-
 sound/soc/fsl/Makefile                        |   2 -
 sound/soc/fsl/fsl-asoc-card.c                 | 383 ++++++++++++------
 sound/soc/fsl/imx-spdif.c                     | 103 -----
 23 files changed, 453 insertions(+), 352 deletions(-)
 delete mode 100644 Documentation/devicetree/bindings/sound/fsl,imx-audio-s=
pdif.yaml
 delete mode 100644 sound/soc/fsl/imx-spdif.c

--=20
2.34.1

.

From: Ram Prakash Gupta <quic_rampraka@quicinc.com>
To: "James E.J. Bottomley" <James.Bottomley@HansenPartnership.com>,
        "Martin K. Petersen" <martin.petersen@oracle.com>,
        Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
Cc: Alim Akhtar <alim.akhtar@samsung.com>, Avri Altman <avri.altman@wdc.com>,
        Bart Van Assche <bvanassche@acm.org>, linux-scsi@vger.kernel.org,
        linux-kernel@vger.kernel.org, linux-arm-msm@vger.kernel.org,
        quic_cang@quicinc.com, quic_nguyenb@quicinc.com,
        quic_rampraka@quicinc.com, quic_pragalla@quicinc.com,
        quic_nitirawa@quicinc.com
Subject: [PATCH V2 0/2] Suspend clk scaling when there is no request
Date: Thu, 27 Jun 2024 14:07:54 +0530
Message-Id: <20240627083756.25340-1-quic_rampraka@quicinc.com>
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1260608
Newsgroups: org.kernel.vger.linux-kernel,org.kernel.vger.linux-arm-msm,org.kernel.vger.linux-scsi
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

Currently ufs clk scaling is getting suspended only when the
clks are scaled down, but next when high load is generated its
adding a huge amount of latency in scaling up the clk and complete
the request post that.

Now if the scaling is suspended in its existing state, and when high
load is generated it is helping improve the random performance KPI by
28%. So suspending the scaling when there is no request. And the clk
would be put in low scaled state when the actual request load is low.

Making this change as optional for other vendor by having the check
enabled using vops as for some vendor suspending without bringing the
clk in low scaled state might have impact on power consumption on the
SoC.

Changes since V1:
	- Address minor review comment.

Ram Prakash Gupta (2):
  scsi: ufs: Suspend clk scaling on no request
  scsi: ufs: qcom: Enable suspending clk scaling on no request

 drivers/ufs/core/ufshcd.c   | 3 ++-
 drivers/ufs/host/ufs-qcom.c | 2 ++
 include/ufs/ufshcd.h        | 1 +
 3 files changed, 5 insertions(+), 1 deletion(-)

-- 
2.17.1

.

From: Paul Gerber <paul.gerber@ew.tq-group.com>
To: Neil Armstrong <neil.armstrong@linaro.org>,
	Jessica Zhang <quic_jesszhan@quicinc.com>,
	Sam Ravnborg <sam@ravnborg.org>,
	Maarten Lankhorst <maarten.lankhorst@linux.intel.com>,
	Maxime Ripard <mripard@kernel.org>,
	Thomas Zimmermann <tzimmermann@suse.de>,
	David Airlie <airlied@gmail.com>,
	Daniel Vetter <daniel@ffwll.ch>,
	Rob Herring <robh@kernel.org>,
	Krzysztof Kozlowski <krzk+dt@kernel.org>,
	Conor Dooley <conor+dt@kernel.org>,
	Thierry Reding <thierry.reding@gmail.com>
Cc: Paul Gerber <paul.gerber@ew.tq-group.com>,
	dri-devel@lists.freedesktop.org,
	devicetree@vger.kernel.org,
	linux-kernel@vger.kernel.org
Subject: [PATCH v2 0/2] Add AUO G104STN01 panel
Date: Thu, 27 Jun 2024 10:44:42 +0200
Message-ID: <20240627084446.3197196-1-paul.gerber@ew.tq-group.com>
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1260614
Newsgroups: org.kernel.vger.linux-kernel,org.kernel.vger.linux-devicetree
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

Changes in v2:
- put explanatory comment for display binding before the list entry
- collected Acked-by and Reviewed-by

Link to v1: https://lore.kernel.org/dri-devel/20240626044727.2330191-1-paul.gerber@ew.tq-group.com/

Paul Gerber (2):
  dt-bindings: display: simple: Add AUO G104STN01 panel
  drm/panel: simple: Add AUO G104STN01 panel entry

 .../bindings/display/panel/panel-simple.yaml  |  2 ++
 drivers/gpu/drm/panel/panel-simple.c          | 27 +++++++++++++++++++
 2 files changed, 29 insertions(+)

-- 
2.44.1

.

From: Ekansh Gupta <quic_ekangupt@quicinc.com>
To: <srinivas.kandagatla@linaro.org>, <linux-arm-msm@vger.kernel.org>
CC: <gregkh@linuxfoundation.org>, <quic_bkumar@quicinc.com>,
        <linux-kernel@vger.kernel.org>, <quic_chennak@quicinc.com>,
        <dri-devel@lists.freedesktop.org>, <arnd@arndb.de>
Subject: [PATCH v2] misc: fastrpc: Move fastrpc driver to misc/fastrpc/
Date: Thu, 27 Jun 2024 14:16:27 +0530
Message-ID: <20240627084628.1590453-1-quic_ekangupt@quicinc.com>
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1260617
Newsgroups: org.kernel.vger.linux-kernel,org.kernel.vger.linux-arm-msm
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

Move fastrpc.c from misc/ to misc/fastrpc/. New C files are planned
to be added for PD notifications and other missing features. Adding
and maintaining new files from within fastrpc directory would be easy.

Example of feature that is being planned to be introduced in a new C
file:
https://lore.kernel.org/all/20240606165939.12950-6-quic_ekangupt@quicinc.com/

Signed-off-by: Ekansh Gupta <quic_ekangupt@quicinc.com>
---
Changes in v2:
  - Updated Kconfig.

 MAINTAINERS                          |  2 +-
 drivers/misc/Kconfig                 | 13 +------------
 drivers/misc/Makefile                |  2 +-
 drivers/misc/fastrpc/Kconfig         | 16 ++++++++++++++++
 drivers/misc/fastrpc/Makefile        |  2 ++
 drivers/misc/{ => fastrpc}/fastrpc.c |  0
 6 files changed, 21 insertions(+), 14 deletions(-)
 create mode 100644 drivers/misc/fastrpc/Kconfig
 create mode 100644 drivers/misc/fastrpc/Makefile
 rename drivers/misc/{ => fastrpc}/fastrpc.c (100%)

diff --git a/MAINTAINERS b/MAINTAINERS
index 0b99543d9c6e..55d0fecd1a74 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -18502,7 +18502,7 @@ L:	linux-arm-msm@vger.kernel.org
 L:	dri-devel@lists.freedesktop.org
 S:	Maintained
 F:	Documentation/devicetree/bindings/misc/qcom,fastrpc.yaml
-F:	drivers/misc/fastrpc.c
+F:	drivers/misc/fastrpc/
 F:	include/uapi/misc/fastrpc.h
 
 QUALCOMM HEXAGON ARCHITECTURE
diff --git a/drivers/misc/Kconfig b/drivers/misc/Kconfig
index faf983680040..630e8ccd8669 100644
--- a/drivers/misc/Kconfig
+++ b/drivers/misc/Kconfig
@@ -276,18 +276,6 @@ config QCOM_COINCELL
 	  to maintain PMIC register and RTC state in the absence of
 	  external power.
 
-config QCOM_FASTRPC
-	tristate "Qualcomm FastRPC"
-	depends on ARCH_QCOM || COMPILE_TEST
-	depends on RPMSG
-	select DMA_SHARED_BUFFER
-	select QCOM_SCM
-	help
-	  Provides a communication mechanism that allows for clients to
-	  make remote method invocations across processor boundary to
-	  applications DSP processor. Say M if you want to enable this
-	  module.
-
 config SGI_GRU
 	tristate "SGI GRU driver"
 	depends on X86_UV && SMP
@@ -602,4 +590,5 @@ source "drivers/misc/cardreader/Kconfig"
 source "drivers/misc/uacce/Kconfig"
 source "drivers/misc/pvpanic/Kconfig"
 source "drivers/misc/mchp_pci1xxxx/Kconfig"
+source "drivers/misc/fastrpc/Kconfig"
 endmenu
diff --git a/drivers/misc/Makefile b/drivers/misc/Makefile
index 153a3f4837e8..f83d73844ea5 100644
--- a/drivers/misc/Makefile
+++ b/drivers/misc/Makefile
@@ -16,7 +16,6 @@ obj-$(CONFIG_TIFM_CORE)       	+= tifm_core.o
 obj-$(CONFIG_TIFM_7XX1)       	+= tifm_7xx1.o
 obj-$(CONFIG_PHANTOM)		+= phantom.o
 obj-$(CONFIG_QCOM_COINCELL)	+= qcom-coincell.o
-obj-$(CONFIG_QCOM_FASTRPC)	+= fastrpc.o
 obj-$(CONFIG_SENSORS_BH1770)	+= bh1770glc.o
 obj-$(CONFIG_SENSORS_APDS990X)	+= apds990x.o
 obj-$(CONFIG_ENCLOSURE_SERVICES) += enclosure.o
@@ -69,3 +68,4 @@ obj-$(CONFIG_TMR_INJECT)	+= xilinx_tmr_inject.o
 obj-$(CONFIG_TPS6594_ESM)	+= tps6594-esm.o
 obj-$(CONFIG_TPS6594_PFSM)	+= tps6594-pfsm.o
 obj-$(CONFIG_NSM)		+= nsm.o
+obj-y				+= fastrpc/
diff --git a/drivers/misc/fastrpc/Kconfig b/drivers/misc/fastrpc/Kconfig
new file mode 100644
index 000000000000..7179a44eda84
--- /dev/null
+++ b/drivers/misc/fastrpc/Kconfig
@@ -0,0 +1,16 @@
+# SPDX-License-Identifier: GPL-2.0-only
+#
+# Qualcomm FastRPC devices
+#
+
+config QCOM_FASTRPC
+	tristate "Qualcomm FastRPC"
+	depends on ARCH_QCOM || COMPILE_TEST
+	depends on RPMSG
+	select DMA_SHARED_BUFFER
+	select QCOM_SCM
+	help
+	  Provides a communication mechanism that facilitate high-speed
+	  Remote Procedure Call (RPC) mechanisms between the host CPU and
+	  offload processors Qualcomm Digital Signal Processors (DSPs).
+	  Say M if you want to enable this module.
\ No newline at end of file
diff --git a/drivers/misc/fastrpc/Makefile b/drivers/misc/fastrpc/Makefile
new file mode 100644
index 000000000000..77fd2b763b6b
--- /dev/null
+++ b/drivers/misc/fastrpc/Makefile
@@ -0,0 +1,2 @@
+# SPDX-License-Identifier: GPL-2.0
+obj-$(CONFIG_QCOM_FASTRPC)	+= fastrpc.o
diff --git a/drivers/misc/fastrpc.c b/drivers/misc/fastrpc/fastrpc.c
similarity index 100%
rename from drivers/misc/fastrpc.c
rename to drivers/misc/fastrpc/fastrpc.c
-- 
2.34.1

.

From: Daniel Lezcano <daniel.lezcano@linaro.org>
To: daniel.lezcano@linaro.org,
	rafael@kernel.org
Cc: linux-pm@vger.kernel.org,
	Zhang Rui <rui.zhang@intel.com>,
	Lukasz Luba <lukasz.luba@arm.com>,
	Rob Herring <robh@kernel.org>,
	Krzysztof Kozlowski <krzk+dt@kernel.org>,
	Conor Dooley <conor+dt@kernel.org>,
	devicetree@vger.kernel.org (open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS),
	linux-kernel@vger.kernel.org (open list)
Subject: [PATCH] thermal/core: Introduce user trip points
Date: Thu, 27 Jun 2024 10:54:50 +0200
Message-ID: <20240627085451.3813989-1-daniel.lezcano@linaro.org>
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1260622
Newsgroups: org.kernel.vger.linux-kernel,org.kernel.vger.linux-devicetree,org.kernel.vger.linux-pm
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

Currently the thermal framework has 4 trip point types:

- active : basically for fans (or anything requiring energy to cool
  down)

- passive : a performance limiter

- hot : for a last action before reaching critical

- critical : a without return threshold leading to a system shutdown

A thermal zone monitors the temperature regarding these trip
points. The old way to do that is actively polling the temperature
which is very bad for embedded systems, especially mobile and it is
even worse today as we can have more than fifty thermal zones. The
modern way is to rely on the driver to send an interrupt when the trip
points are crossed, so the system can sleep while the temperature
monitoring is offloaded to a dedicated hardware.

However, the thermal aspect is also managed from userspace to protect
the user, especially tracking down the skin temperature sensor. The
logic is more complex than what we found in the kernel because it
needs multiple sources indicating the thermal situation of the entire
system.

For this reason it needs to setup trip points at different levels in
order to get informed about what is going on with some thermal zones
when running some specific application.

For instance, the skin temperature must be limited to 43°C on a long
run but can go to 48°C for 10 minutes, or 60°C for 1 minute.

The thermal engine must then rely on trip points to monitor those
temperatures. Unfortunately, today there is only 'active' and
'passive' trip points which has a specific meaning for the kernel, not
the userspace. That leads to hacks in different platforms for mobile
and embedded systems where 'active' trip points are used to send
notification to the userspace. This is obviously not right because
these trip are handled by the kernel.

This patch introduces the 'user' trip point type where its semantic is
simple: do nothing at the kernel level, just send a notification to
the user space.

Signed-off-by: Daniel Lezcano <daniel.lezcano@linaro.org>
---
 .../devicetree/bindings/thermal/thermal-zones.yaml        | 1 +
 drivers/thermal/thermal_core.c                            | 8 ++++++++
 drivers/thermal/thermal_of.c                              | 1 +
 drivers/thermal/thermal_trace.h                           | 4 +++-
 drivers/thermal/thermal_trip.c                            | 1 +
 include/uapi/linux/thermal.h                              | 1 +
 6 files changed, 15 insertions(+), 1 deletion(-)

diff --git a/Documentation/devicetree/bindings/thermal/thermal-zones.yaml b/Documentation/devicetree/bindings/thermal/thermal-zones.yaml
index 68398e7e8655..cb9ea54a192e 100644
--- a/Documentation/devicetree/bindings/thermal/thermal-zones.yaml
+++ b/Documentation/devicetree/bindings/thermal/thermal-zones.yaml
@@ -153,6 +153,7 @@ patternProperties:
               type:
                 $ref: /schemas/types.yaml#/definitions/string
                 enum:
+                  - user     # enable user notification
                   - active   # enable active cooling e.g. fans
                   - passive  # enable passive cooling e.g. throttling cpu
                   - hot      # send notification to driver
diff --git a/drivers/thermal/thermal_core.c b/drivers/thermal/thermal_core.c
index 2aa04c46a425..506f880d9aa9 100644
--- a/drivers/thermal/thermal_core.c
+++ b/drivers/thermal/thermal_core.c
@@ -734,6 +734,14 @@ int thermal_bind_cdev_to_trip(struct thermal_zone_device *tz,
 	if (tz != pos1 || cdev != pos2)
 		return -EINVAL;
 
+	/*
+	 * It is not allowed to bind a cooling device with a trip
+	 * point user type because no mitigation should happen from
+	 * the kernel with these trip points
+	 */
+	if (trip->type == THERMAL_TRIP_USER)
+		return -EINVAL;
+
 	/* lower default 0, upper default max_state */
 	lower = lower == THERMAL_NO_LIMIT ? 0 : lower;
 
diff --git a/drivers/thermal/thermal_of.c b/drivers/thermal/thermal_of.c
index aa34b6e82e26..f6daf921a136 100644
--- a/drivers/thermal/thermal_of.c
+++ b/drivers/thermal/thermal_of.c
@@ -60,6 +60,7 @@ static const char * const trip_types[] = {
 	[THERMAL_TRIP_PASSIVE]	= "passive",
 	[THERMAL_TRIP_HOT]	= "hot",
 	[THERMAL_TRIP_CRITICAL]	= "critical",
+	[THERMAL_TRIP_USER]	= "user",
 };
 
 /**
diff --git a/drivers/thermal/thermal_trace.h b/drivers/thermal/thermal_trace.h
index df8f4edd6068..739228ecc2e2 100644
--- a/drivers/thermal/thermal_trace.h
+++ b/drivers/thermal/thermal_trace.h
@@ -15,13 +15,15 @@ TRACE_DEFINE_ENUM(THERMAL_TRIP_CRITICAL);
 TRACE_DEFINE_ENUM(THERMAL_TRIP_HOT);
 TRACE_DEFINE_ENUM(THERMAL_TRIP_PASSIVE);
 TRACE_DEFINE_ENUM(THERMAL_TRIP_ACTIVE);
+TRACE_DEFINE_ENUM(THERMAL_TRIP_USER);
 
 #define show_tzt_type(type)					\
 	__print_symbolic(type,					\
 			 { THERMAL_TRIP_CRITICAL, "CRITICAL"},	\
 			 { THERMAL_TRIP_HOT,      "HOT"},	\
 			 { THERMAL_TRIP_PASSIVE,  "PASSIVE"},	\
-			 { THERMAL_TRIP_ACTIVE,   "ACTIVE"})
+			 { THERMAL_TRIP_ACTIVE,   "ACTIVE"}),	\
+			 { THERMAL_TRIP_USER,     "USER"})
 
 TRACE_EVENT(thermal_temperature,
 
diff --git a/drivers/thermal/thermal_trip.c b/drivers/thermal/thermal_trip.c
index 2a876d3b93aa..a0780bb4ff0d 100644
--- a/drivers/thermal/thermal_trip.c
+++ b/drivers/thermal/thermal_trip.c
@@ -10,6 +10,7 @@
 #include "thermal_core.h"
 
 static const char *trip_type_names[] = {
+	[THERMAL_TRIP_USER] = "user",
 	[THERMAL_TRIP_ACTIVE] = "active",
 	[THERMAL_TRIP_PASSIVE] = "passive",
 	[THERMAL_TRIP_HOT] = "hot",
diff --git a/include/uapi/linux/thermal.h b/include/uapi/linux/thermal.h
index fc78bf3aead7..84e556ace5f5 100644
--- a/include/uapi/linux/thermal.h
+++ b/include/uapi/linux/thermal.h
@@ -14,6 +14,7 @@ enum thermal_trip_type {
 	THERMAL_TRIP_PASSIVE,
 	THERMAL_TRIP_HOT,
 	THERMAL_TRIP_CRITICAL,
+	THERMAL_TRIP_USER,
 };
 
 /* Adding event notification support elements */
-- 
2.43.0

.

From: Jan Henrik Weinstock <jan@mwa.re>
To: tytso@mit.edu,
	adilger.kernel@dilger.ca
Cc: linux-ext4@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	lukas@mwa.re,
	simon@mwa.re,
	Jan Henrik Weinstock <jan@mwa.re>
Subject: [PATCH] ext4: fix kernel segfault after iterator overflow
Date: Thu, 27 Jun 2024 10:56:01 +0200
Message-ID: <20240627085601.24321-1-jan@mwa.re>
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1260623
Newsgroups: org.kernel.vger.linux-kernel,org.kernel.vger.linux-ext4
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

When search_buf gets placed at the end of the virtual address space
        de = (struct ext4_dir_entry_2 *) ((char *) de + de_len);
might overflow to zero and a subsequent loop iteration will crash.

Observed on a simulated riscv32 system using 2GB of memory and a rootfs
on MMC.

Signed-off-by: Jan Henrik Weinstock <jan@mwa.re>
---
 fs/ext4/namei.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/fs/ext4/namei.c b/fs/ext4/namei.c
index a630b27a4..030a11412 100644
--- a/fs/ext4/namei.c
+++ b/fs/ext4/namei.c
@@ -1537,7 +1537,8 @@ int ext4_search_dir(struct buffer_head *bh, char *search_buf, int buf_size,
 
 	de = (struct ext4_dir_entry_2 *)search_buf;
 	dlimit = search_buf + buf_size;
-	while ((char *) de < dlimit - EXT4_BASE_DIR_LEN) {
+	while ((char *) de < dlimit - EXT4_BASE_DIR_LEN &&
+	       (char *) de >= search_buf) {
 		/* this code is executed quadratically often */
 		/* do minimal checking `by hand' */
 		if (de->name + de->name_len <= dlimit &&
-- 
2.45.2

.

From: Li Lingfeng <lilingfeng@huaweicloud.com>
To: tj@kernel.org,
	josef@toxicpanda.com,
	hch@lst.de,
	axboe@kernel.dk
Cc: longman@redhat.com,
	ming.lei@redhat.com,
	cgroups@vger.kernel.org,
	linux-block@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	yangerkun@huawei.com,
	yukuai1@huaweicloud.com,
	houtao1@huawei.com,
	yi.zhang@huawei.com,
	lilingfeng@huaweicloud.com,
	lilingfeng3@huawei.com
Subject: [PATCH] blk-cgroup: don't clear stat in blkcg_reset_stats()
Date: Thu, 27 Jun 2024 17:08:56 +0800
Message-Id: <20240627090856.2345018-1-lilingfeng@huaweicloud.com>
X-Mailing-List: linux-block@vger.kernel.org
List-Id: <linux-block.vger.kernel.org>
List-Subscribe: <mailto:linux-block+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-block+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Xref: photonic.trudheim.com org.kernel.vger.linux-block:93540 org.kernel.vger.linux-kernel:1260624
Newsgroups: org.kernel.vger.linux-block,org.kernel.vger.cgroups,org.kernel.vger.linux-kernel
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

From: Li Lingfeng <lilingfeng3@huawei.com>

The list corruption described in commit 6da668063279 ("blk-cgroup: fix
list corruption from resetting io stat") has no effect. It's unnecessary
to fix it.

As for cgroup v1, it does not use iostat any more after commit
ad7c3b41e86b("blk-throttle: Fix io statistics for cgroup v1"), so using
memset to clear iostat has no real effect.
As for cgroup v2, it will not call blkcg_reset_stats() to corrupt the
list.

The list of root cgroup can be used by both cgroup v1 and v2 while
non-root cgroup can't since it must be removed before switch between
cgroup v1 and v2.
So it may has effect if the list of root used by cgroup v2 was corrupted
after switching to cgroup v1, and switch back to cgroup v2 to use the
corrupted list again.
However, the root cgroup will not use the list any more after commit
ef45fe470e1e("blk-cgroup: show global disk stats in root cgroup io.stat").

Although this has no negative effect, it is not necessary. Remove the
related code.

Fixes: 6da668063279 ("blk-cgroup: fix list corruption from resetting io stat")
Signed-off-by: Li Lingfeng <lilingfeng3@huawei.com>
---
 block/blk-cgroup.c | 24 ------------------------
 1 file changed, 24 deletions(-)

diff --git a/block/blk-cgroup.c b/block/blk-cgroup.c
index 37e6cc91d576..1113c398a742 100644
--- a/block/blk-cgroup.c
+++ b/block/blk-cgroup.c
@@ -629,29 +629,6 @@ static void blkg_iostat_set(struct blkg_iostat *dst, struct blkg_iostat *src)
 	}
 }
 
-static void __blkg_clear_stat(struct blkg_iostat_set *bis)
-{
-	struct blkg_iostat cur = {0};
-	unsigned long flags;
-
-	flags = u64_stats_update_begin_irqsave(&bis->sync);
-	blkg_iostat_set(&bis->cur, &cur);
-	blkg_iostat_set(&bis->last, &cur);
-	u64_stats_update_end_irqrestore(&bis->sync, flags);
-}
-
-static void blkg_clear_stat(struct blkcg_gq *blkg)
-{
-	int cpu;
-
-	for_each_possible_cpu(cpu) {
-		struct blkg_iostat_set *s = per_cpu_ptr(blkg->iostat_cpu, cpu);
-
-		__blkg_clear_stat(s);
-	}
-	__blkg_clear_stat(&blkg->iostat);
-}
-
 static int blkcg_reset_stats(struct cgroup_subsys_state *css,
 			     struct cftype *cftype, u64 val)
 {
@@ -668,7 +645,6 @@ static int blkcg_reset_stats(struct cgroup_subsys_state *css,
 	 * anyway.  If you get hit by a race, retry.
 	 */
 	hlist_for_each_entry(blkg, &blkcg->blkg_list, blkcg_node) {
-		blkg_clear_stat(blkg);
 		for (i = 0; i < BLKCG_MAX_POLS; i++) {
 			struct blkcg_policy *pol = blkcg_policy[i];
 
-- 
2.31.1

.

From: Alex Vdovydchenko <keromvp@gmail.com>
To: Rob Herring <robh@kernel.org>,
	Krzysztof Kozlowski <krzk+dt@kernel.org>,
	Conor Dooley <conor+dt@kernel.org>,
	Sean Anderson <sean.anderson@linux.dev>,
	Guenter Roeck <linux@roeck-us.net>,
	Jean Delvare <jdelvare@suse.com>,
	Jonathan Corbet <corbet@lwn.net>,
	Delphine CC Chiu <Delphine_CC_Chiu@Wiwynn.com>
Cc: devicetree@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	linux-hwmon@vger.kernel.org,
	linux-doc@vger.kernel.org,
	linux-i2c@vger.kernel.org,
	Alex Vdovydchenko <xzeol@yahoo.com>
Subject: [PATCH v2 0/2] Add MPS MP5920 Host-Swap controller
Date: Thu, 27 Jun 2024 12:01:06 +0300
Message-ID: <20240627090113.391730-1-xzeol@yahoo.com>
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1260625
Newsgroups: org.kernel.vger.linux-kernel,org.kernel.vger.linux-devicetree,org.kernel.vger.linux-doc,org.kernel.vger.linux-hwmon,org.kernel.vger.linux-i2c
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

This series of patches adds the MP5920 Host-swap controller, which is used
as a protection and control IC for devices that are being inserted into a live
backplane. MP5920 acts as a voltage regulator (MP5911 etc) supervisor. IC
utilizes pmbus and provides monitoring, statistics and limits to electrical and
thermal characteristics such as:
- input and output voltage
- output current
- output power
- IC temperature

One must take into account the nonlinear character of readings, so there will be
a statistical error in the range 5–10 percents, depending on current passing
through. In order to use the IC, make sure to specify a valid I2C address
(consult to datasheet and dts-bindings)
MP5920 datasheet: https://www.monolithicpower.com/en/mp5920.html

Changes in v2:
  -  fixed typos

Alex Vdovydchenko (2):
  dt-bindings: hwmon: Add MPS mp5920
  hwmon: add MP5920 driver

 .../devicetree/bindings/trivial-devices.yaml  |  2 +
 Documentation/hwmon/index.rst                 |  1 +
 Documentation/hwmon/mp5920.rst                | 91 ++++++++++++++++++
 drivers/hwmon/pmbus/Kconfig                   |  9 ++
 drivers/hwmon/pmbus/Makefile                  |  1 +
 drivers/hwmon/pmbus/mp5920.c                  | 93 +++++++++++++++++++
 6 files changed, 197 insertions(+)
 create mode 100644 Documentation/hwmon/mp5920.rst
 create mode 100644 drivers/hwmon/pmbus/mp5920.c

-- 
2.43.0

.

From: Herve Codina <herve.codina@bootlin.com>
To: Andy Shevchenko <andy.shevchenko@gmail.com>,
	Simon Horman <horms@kernel.org>,
	Herve Codina <herve.codina@bootlin.com>,
	Rob Herring <robh@kernel.org>,
	Krzysztof Kozlowski <krzk+dt@kernel.org>,
	Conor Dooley <conor+dt@kernel.org>,
	Lee Jones <lee@kernel.org>,
	Arnd Bergmann <arnd@arndb.de>,
	UNGLinuxDriver@microchip.com,
	Saravana Kannan <saravanak@google.com>,
	Bjorn Helgaas <bhelgaas@google.com>,
	Philipp Zabel <p.zabel@pengutronix.de>,
	Lars Povlsen <lars.povlsen@microchip.com>,
	Steen Hegelund <Steen.Hegelund@microchip.com>,
	Daniel Machon <daniel.machon@microchip.com>
Cc: "David S. Miller" <davem@davemloft.net>,
	Eric Dumazet <edumazet@google.com>,
	Jakub Kicinski <kuba@kernel.org>,
	Paolo Abeni <pabeni@redhat.com>,
	Horatiu Vultur <horatiu.vultur@microchip.com>,
	Andrew Lunn <andrew@lunn.ch>,
	linux-kernel@vger.kernel.org,
	devicetree@vger.kernel.org,
	netdev@vger.kernel.org,
	linux-pci@vger.kernel.org,
	linux-arm-kernel@lists.infradead.org,
	Allan Nielsen <allan.nielsen@microchip.com>,
	Steen Hegelund <steen.hegelund@microchip.com>,
	Luca Ceresoli <luca.ceresoli@bootlin.com>,
	Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Subject: [PATCH v3 0/7] Add support for the LAN966x PCI device using a DT overlay
Date: Thu, 27 Jun 2024 11:11:29 +0200
Message-ID: <20240627091137.370572-1-herve.codina@bootlin.com>
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1260631 org.kernel.vger.linux-pci:144578 org.kernel.vger.netdev:355153
Newsgroups: org.kernel.vger.linux-kernel,org.kernel.vger.linux-devicetree,org.kernel.vger.linux-pci,org.kernel.vger.netdev
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

Hi,

This series adds support for the LAN966x chip when used as a PCI
device.

For reference, the LAN996x chip is a System-on-chip that integrates an
Ethernet switch and a number of other traditional hardware blocks such
as a GPIO controller, I2C controllers, SPI controllers, etc. The
LAN996x can be used in two different modes:

- With Linux running on its Linux built-in ARM cores.
  This mode is already supported by the upstream Linux kernel, with the
  LAN996x described as a standard ARM Device Tree in
  arch/arm/boot/dts/microchip/lan966x.dtsi. Thanks to this support,
  all hardware blocks in the LAN996x already have drivers in the
  upstream Linux kernel.

- As a PCI device, thanks to its built-in PCI endpoint controller.
  In this case, the LAN996x ARM cores are not used, but all peripherals
  of the LAN996x can be accessed by the PCI host using memory-mapped
  I/O through the PCI BARs.

This series aims at supporting this second use-case. As all peripherals
of the LAN996x already have drivers in the Linux kernel, our goal is to
re-use them as-is to support this second use-case.

Therefore, this patch series introduces a PCI driver that binds on the
LAN996x PCI VID/PID, and when probed, instantiates all devices that are
accessible through the PCI BAR. As the list and characteristics of such
devices are non-discoverable, this PCI driver loads a Device Tree
overlay that allows to teach the kernel about which devices are
available, and allows to probe the relevant drivers in kernel, re-using
all existing drivers with no change.

This patch series for now adds a Device Tree overlay that describes an
initial subset of the devices available over PCI in the LAN996x, and
follow-up patch series will add support for more once this initial
support has landed.

In order to add this PCI driver, a number of preparation changes are
needed:

 - Patches 1 to 5 allow the reset driver used for the LAN996x to be
   built as a module. Indeed, in the case where Linux runs on the ARM
   cores, it is common to have the reset driver built-in. However, when
   the LAN996x is used as a PCI device, it makes sense that all its
   drivers can be loaded as modules.

 - Patches 6 and 7 introduce the LAN996x PCI driver itself, together
   with its DT bindings.

We believe all items from the above list can be merged separately, with
no build dependencies. We expect:

 - Patches 1 to 5 to be taken by reset maintainers

 - Patch 6 and 7 by the MFD maintainers

Additionally, we also believe all preparation items in this patch series
can be taken even before there's a final agreement on the last part of
the series (the MFD driver itself).

[1] https://lore.kernel.org/all/CAL_Jsq+je7+9ATR=B6jXHjEJHjn24vQFs4Tvi9=vhDeK9n42Aw@mail.gmail.com/

Compare to the previous iteration:
  https://lore.kernel.org/lkml/20240614173232.1184015-1-herve.codina@bootlin.com/
this v3 series mainly:
  - Suppress patches as they were applied or extracted and handled in
    dedicated series.
  - Update the LAN966x PCI device driver.

Best regards,
Hervé

Changes v2 -> v3
  - Patches 1 and 5
    No changes

  - Patch 6 (v2 patch 18)
    Add a blank line in the commit log to split paragraphs
    Remove unneeded header file inclusion
    Use IRQ_RETVAL()
    Remove blank line
    Use dev_of_node()
    Use pci_{set,get}_drvdata()
    Remove unneeded pci_clear_master() call
    Move { 0, } to { }
    Remove the unneeded pci_dev member from the lan966x_pci structure
    Use PCI_VENDOR_ID_EFAR instead of the hardcoded 0x1055 PCI Vendor ID
    Add a comment related to the of_node check.

  - Patch 7 (v2 patch 19)
    No changes

  Patches removed in v3
    - Patches 6 and 7
      Extracted and sent separately
      https://lore.kernel.org/lkml/20240620120126.412323-1-herve.codina@bootlin.com/

    - Patches 9
      Already applied

    - Patches 8, 10 to 12
      Extracted, reworked and sent separately
      https://lore.kernel.org/lkml/20240614173232.1184015-1-herve.codina@bootlin.com/

    - Patches 13 to 14
      Already applied

Changes v1 -> v2
  - Patch 1
    Fix a typo in syscon.h (s/intline/inline/)

  - Patches 2..5
    No changes

  - Patch 6
    Improve the reset property description

  - Patch 7
    Fix a wrong reverse x-mass tree declaration

  - Patch 8 removed (sent alone to net)
    https://lore.kernel.org/lkml/20240513111853.58668-1-herve.codina@bootlin.com/

  - Patch 8 (v1 patch 9)
    Add 'Reviewed-by: Rob Herring (Arm) <robh@kernel.org>'

  - Patch 9 (v1 patch 10)
    Rephrase and ident parameters descriptions

  - Patch 10 (v1 patch 11)
    No changes

  - Patch 11 (v1 patch 12)
    Fix a missing ret value assignment before a goto in .probe()
    Limit lines to 80 columns
    Use indices in register offset definitions

  - Patch 13 and 14 (new patches in v2)
    Add new test cases for existing of_changeset_add_prop_*()

  - Patch 15 (v1 patch 14)
    No changes

  - Patch 16 (new patches in v2)
    Add tests for of_changeset_add_prop_bool()

  - Patch 17 (v1 patch 15)
    Update commit subject
    Rewrap a paragraph in commit log

  - Patch 18 (v1 patch 16)
    Use PCI_IRQ_INTX instead of PCI_IRQ_LEGACY

  - Patch 19 (v1 patch 17)
    No changes

Clément Léger (5):
  mfd: syscon: Add reference counting and device managed support
  reset: mchp: sparx5: Remove dependencies and allow building as a
    module
  reset: mchp: sparx5: Release syscon when not use anymore
  reset: core: add get_device()/put_device on rcdev
  reset: mchp: sparx5: set the dev member of the reset controller

Herve Codina (2):
  mfd: Add support for LAN966x PCI device
  MAINTAINERS: Add the Microchip LAN966x PCI driver entry

 MAINTAINERS                            |   6 +
 drivers/mfd/Kconfig                    |  24 +++
 drivers/mfd/Makefile                   |   4 +
 drivers/mfd/lan966x_pci.c              | 229 +++++++++++++++++++++++++
 drivers/mfd/lan966x_pci.dtso           | 167 ++++++++++++++++++
 drivers/mfd/syscon.c                   | 145 +++++++++++++++-
 drivers/pci/quirks.c                   |   1 +
 drivers/reset/Kconfig                  |   3 +-
 drivers/reset/core.c                   |   2 +
 drivers/reset/reset-microchip-sparx5.c |  11 +-
 include/linux/mfd/syscon.h             |  18 ++
 11 files changed, 593 insertions(+), 17 deletions(-)
 create mode 100644 drivers/mfd/lan966x_pci.c
 create mode 100644 drivers/mfd/lan966x_pci.dtso

-- 
2.45.0

.

From: Daniel Hejduk <danielhejduk@disroot.org>
To: trenn@suse.com
Cc: shuah@kernel.org,
	linux-pm@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	danielhejduk@disroot.org
Subject: [PATCH] Correcting all needs work translations, Adding some transaltion and changing maintainer of the cpupower tool
Date: Thu, 27 Jun 2024 11:21:56 +0200
Message-ID: <20240627092159.7724-1-danielhejduk@disroot.org>
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1260641
Newsgroups: org.kernel.vger.linux-kernel,org.kernel.vger.linux-pm
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

Signed-off-by: Daniel Hejduk <danielhejduk@disroot.org>
---
 tools/power/cpupower/po/cs.mo | Bin 0 -> 12805 bytes
 tools/power/cpupower/po/cs.po | 172 ++++++++++++++++++----------------
 2 files changed, 91 insertions(+), 81 deletions(-)
 create mode 100644 tools/power/cpupower/po/cs.mo

diff --git a/tools/power/cpupower/po/cs.mo b/tools/power/cpupower/po/cs.mo
new file mode 100644
index 0000000000000000000000000000000000000000..e82a23760d4f26a628d9402f84c20bfda1df4263
GIT binary patch
literal 12805
zcmcJVTWlQHdB?}s*c<0!r%lt`dhA*@DRWmOtx7g!-Aq}R*pg`7>RPpp*_}h~aA#-M
zb6ILP2I?RI5};5T2M7|!iBX~`Py->1^sxYqqAT_x4@J@T&4?dV1PIVR1V(DKPwnqJ
zXJ&RuE+soiS6KdcX6Kyqo$vd9m-DUOyYKezIlM0N{vz*dw>r+tU~mV2cujxIaXt&q
zfOFu<{QB$Q39f$#ehRz}{x0}FcprGzU5@ir@C)E+@cZCA_zUn5IC;0@{5jYJSHNF`
z(_m0>oFm|m!CCM<um;}yamRTUJOZ8rzY87%e*u0M+<lMZyauj=N5He6u+M!5JjnIG
z=Xn1otvoM*-{$@rDDytSCPcn(gEQd2fPVnq{%Obg68Io^FZd+*1@Hn`1v?;9J8y!Y
z0e=Gi5%~9@jQ;=>ReqMi&)kBJLD7%TpBKSbK+*5J;BN4JQ0Dm(fA)hj;O~Jx_#MW7
z4P4^-K9v0}un)@mw=v1H;JqNKbQ++@+s^UNa(oRGx&8{2c?aO{fbZt`s~qp(OS%8~
z9QS|^aeWMAOHK=v^<Dulg8u~mA^70u9A^SN3Ci`$pzQN|;N#%0LAL1Be&1dn1?yaY
z6_kCw2MQ05f8KGRqSF9nKa1c?U<bS({Achs@O`k4UOoUtzLy#NB=`eR=6RPtr@{XQ
zMIXm8CL%b`fvC=T8SI1K1fK(M{j%d6055~H;P=5FgFgdfu!-{ag71Qd!A~p8+l3sz
z2A+2u=WoFmz&jE41n7Zpf<FO&1U~%$oCALeJ_GJTS@K*A3a|eT6nXv^{0s282OZ~+
z!C!*M!6Un@oZkddnKJ+}f%9_^6FUC|BC>N2N_iA~1ccJgOQ6^_0*`{<0D08;NANcA
zKfwdHIL@y?ROU=!%oo8^pp5$)P<X!%3h({{d<^^_a1xy5&tEhCPr)wNw?5)HKLvZB
zJpag)-N)k~uIIc43ZMQm$Dii-4<M>>{uLDYJ^*E(Uu1E?eK{`VxSZoRK(W)Cpy=V=
z8nFPJ0PEltQ2gv&a1VGVf8=@}*aTfr?DsQJc>3jO8~0{F;b#B_;J<+)-_aS%QxCk0
z>m^XW?|_)j`8g<hy#+F%7Q@9)f+Cyft$0aH5&ab}hB>ErLrY^n(Y^5H6TF4D(9ihO
zJs?{(+!o%VCWnw|WD!0grjg?iD14RI5#CSohDzr3RF1-jGraH4uLYjw{cL_Md=lM@
zzhB7j2^`En&*!)ReuX!bFfY+B>NIv1PT{I1MxF!3w)gXfZpPmLV=vLIyykd|{yxWB
z>>{uI7R=vU`FoPLa36}5uaEKR8Q$Vc^17WjCO0-!puFzj{TcIV_-7v<AI>k2gCFO;
zm-n5#KgHX*TUDELsuTNRs?w&PsHP4&6}j!tsnl<4#Wy<cx`9d~)z)s3#ab;!G51xX
z8&T*bYQoctZWg3!X3`Ap&Z)Xq?T9D4I<7~Ft~jcEwf)d<XKgjVa8WJB`sGZAjh<3f
zrP}V59llwLm?(^5JI~QZ>UZ^=+LhSrC!;7y)%ny-b;4cG-aVgnI#HZzuXwQPPN{0u
zU0l=+?p7O}EK%y1W_yUF6SdOx8%+@_QK8nJY`E!mHG0v0JQTH3?qu_aMij-KA0mXO
z>OGZ2i|LAs3U-S)RZks1_tdi@0E?N=c66v$)Od}stSa`6YM4<6NN#77iM$vs#HA1;
zJCUJTf*kBoRIFNPPX{U=VI|UL4qeZd$|=->5Ft@fmMYJD<A>O~?WTSds>`{VUoavp
zmK!oF$nMNMNk=#QMZYmrm?#oHBs#6BbJ*LDQ8wbmNylyIozy9lmD{&7xLwx|+<Ksu
z8+s~;Tu&QYR~Ka~MvUQBPUv)01T-RqYh-b(!!+orI13Zyrc=soG>qYvc9Mj}MWKZ*
zdAcy_k~(qrlB`_{$~7X0QH#fmuZ+@`MjwWK@*1(*aD!V%CpnFpGJ*K09b5h#F`RMZ
zq!DW!nl;A_xxwRsSz#sc+dfRNuTn&#h=Q(Sgz+xx20^p}{VdViX2z`ThNZZwDVNn)
zyPmNpgzLaLi7TRNW6%|bVIdZ&_Eg7>-L|-@arvs5GHEn%<95T$in$Xr)>8f9M74=X
zzB1M_Pi6tm(uo4U(W@E7L?Txwj_d?hwh_gQQa|upnkX4{eJCg1EmH20v3uM`$2XsJ
zl0@;I-FrH0J>H2+CYmlndx@V>;31L~*zW7MBT`PD4<*BFZEwveS-UY_F<aYL+ayuP
zD9LE8v|g#}p*L-cHde{G^<$YJ)`7&uJm!v4ekADPkvODLZGy20zOiQ_=rBuILM1X~
z;s-c#Dbv{y>62!(qLy^1WAfE}HIa;fqRS9w%x*{XRl#oNIM2YObXghaC#l~^l)tD-
zr!=FpGVDS9t#N#8{t~JbL11ef7min(E1N>shYnoOP#nk)cZ^)Vgutjh)Z|1YYASam
zkvWc{bTYS9Ps9;RnT%|8Tl&6rufpMrr^pMN6M3WQhD!u^V=9wOt%+}xQt{HUxpPiA
z$|htx$ITgHMhy42EsSpYe#opO)g6il)+@#c3-UWQX>8dj#gaUoe`h&AH<EH7V-^rB
zv|90r$)P-L6L3+GlmxfI)~p^ziXfPUtuR^%OIh;7&62LEeH3apaUKOj%Lz9jo#ur{
zgXn8(7wbNgj`442wx%wa*jh5!(9R_8GQ6sW8-`ITQa7S@ow~>~;xk20MNpX#T7+VW
zFZxPDcdXA=8=@d#5E?YP8b0}G%`7UVo)0%zL{{jC*q%hfll>{xI@vEP$;l~oTJD{Y
zKj`Da$-b-x<2#gki~bczZvq8{X=W8{E>~QtRS)&S{E!$jWrUY<M&vK+jS1Pbtvgv<
z7C!hQGN|2Zx;8yMBUdcX<;?W-v|J%ae#MPR(#O%z4SIc%LfF5{o8wlh0_x)w+sM}P
zd}V5>Xpxk*$CfB4$m1hPluwy_a<5Q?gkGh(#MLlTWK2~miRsJY$M>j!Ol(W$xJ|HI
z(&~6wNl*A;BgiBysJax!lcHd@;~=RSI!eNM;b{19inTLy1kftX+I7r~%nYEo-z7D5
zf<>@ahS*DLrs6ym$C!m(CUQdz9uP5$`;>aA+?P7YSSYEf`KaB7wOR%ybCs$(7O7s8
z*%F&f+F?!CliDIlV_R^>{!%kd4y%bI<J+o~jE5%~dCG>OQdKgI**;F}jYKz7phO;%
z*R^+;ffwSQh(**xLUfL15YPAWvS7?3aAs>cJEiLIsjOdzu^sOe*D0gVlu%Ym8hyoW
zcd%JqH(bVvYD?F*fo<q@A{g?yV-}X_n5~#a^2%5##GJM`K3s8*GeVwp<E5-k!lW*8
z<5uC-yYVjSJYy_*3LoZq>%qkc<tG)X+R>CGT&p}Y0w?3Duj8oVoLXe_<tj3ZNi}xT
zA}9>K0$nX}dcg<mIU_Fs-8vsCMFi%djvPotT5~qz20LEN0;Ow9HKW^D%OOv!%0VW<
zGoP{P3(f{v#W@qnnXocbQ)fTKKGlu(`2cbCfr@jsBZnd8bQUQ8Owk9oITFl2y6w)s
zZFlx>y@PKG4@;Nc`n@npz8$&0;5J&~^7Av}ZqAOoIVxH?d{nyf=6>g#(P-|d5}1r;
z#nQVdo#3&XX!LwO_i>Dct~rNY7-3lv+8JchR2oHrM17dKEwe}#5c|1XcxPuUo&14a
z$pfZ*@^DCxm~R+?d%_NuffwQ*TV8qQH8R9fmmv7X1m(?1%rcd_$=FgOs>_izE$7>D
z&zO8s75}`!gJP<!ll=+d$?n|-lb&sjq!dafS6Fu&`UWcBL#xB|Ps)d^gH+3KRCs5_
zx!LqPk94;uG17p|2lhLAXx>For4*(o5a~p0m}uP=rAvC^Fi%*hIHf*`@_rh{bLw)n
z`GUF(q%WvffWSgqJ;5V0ho&wI&K`O}$-m20pJ;4bO)t?{Vg$j68iaGAr)sqtRvEWM
zSBCzU*D10BL98gmhUyL@C(pfiR~!@Gip)Ne^oQ|$a}~8c^%E(#B>s{J90^zAD5Pgl
zNMQtmHjvDd>`Z*`=|miUna)u4lvlmP37PN&y_1S{<m%~U$@i*H5*@1-qB&JrI9olZ
zyS_YDJw~vcQ?t{vd#ls?s<Znkc;@y#{>b#~^mOGJYMJT<ye6U67kfTUH!Dz=q97cs
zt0!7+Hwum<x=)=|YxEECe7Kb1TGb2MZO^IszNVY@gy$!%tgnwqd63kCndxxT!$#24
zr%pdLlzgT(U73%dLdf#H4)Ue?O1h^LxPEv*alDA}!Gjks9Irk$d``q%q(*ouY(!G}
z%&Eufep*=wGLC{(l3<%EChVBY<lv(Rh-322!HMwT!I?>QSWT-rH4z><IIA9dNQF-v
z+$%R{xH)^E@?7<VIa3-fEJWJF6&~f>yq9igwQR4<sY|`iU~OZSj$wv#goD*i)V=nG
zM;fyI)N5DWB<c>{Dv3@x8`D+2_QuBRIvlL2E}qrOLT|8&>L$8_^+q%5bAP0-I#^Ft
zcd*t_L@&^DF@_vW^Oxz(3|2AGngq5MDVAP?)TmY4tJ&c@>ZheF7_72IJKNC~JyvEZ
z&MHcoE~^nA{&#ye=*zMTlvokHk-=&Rzid->Y_IkCWk@hsqtwUGQ3IPNfkrU_F-s7*
zJy;{Qbfaazl-(Z_)Xi3-F4D4lVr$W9ZRe-hom#DDL_})R<<Q@FXJd6#Lslf_YHz%~
z@s1wRhU)g}l%wYC?@1k#AH{Ngt9(z&&Gn@ajHcGLtCC>M0c+=OYsnWz_zmRATNN}#
z9a_dabyz9&tzC0PuA;bARTpN2_$)2!(5*qnjdxrxTjmVpa&D^kf}K<;Tj{E0)Cmol
zq8Ve!Q59T&^@nAldHvNNkV8c}QHI%|jJK~5Wn^23=1(zmVR+$V9oD}ySldacP9!DK
zW*u&8w<gkmRZ0xIJ}PiN%*Z*e<yy$;aXiX8AygdFzqe)4(!YyMf~DcMIXa5@$OFc8
zTnh<D{n_2*!MW^kw(xV``1#H~*Gq$S*=~`h;*GcSMyr%wbQYw~+Ev$IeUlSW+gI1F
z`l%+6yw$$`>W`$>hGi+Sj4f_&zZUX#VwWCi;M%}uI<P`4i4OQXE*qLSf!$@EaqZ4h
zx1}=_tXWRjY*bHNJe1RX_cv<5#!<gXvcTE+Wd~=8B@hs8IYtv{`C!C#KZ<xvRA^^P
zExRqa*oiVBH%BIEu;nZ6M0MLoE~wtk+pm&6H(qx=>B;WJIFdYssdQ+KaN`=Yg%t=!
zh5w}zm|7H|o1)Q}rffcTOmH@O$9XwjFN*|2zU|zORTo=>Rf(i%qOVndu-YQXiQ0!|
zjckjy%TCRX#x-W2kBGjK0;T36dyH%aUF&M#Q<PdKUNw{K)SoSbf48@>`k{k=pBjfU
zLby7vRXaxCrE)%Eyz38J0u#lK-eQNLf=QgcaYg^8z1l(^)1=J<ux-@(5`Ftr8sW7!
z%DiiwvJg1`P0Jo?$;l-VMsoAAUY4Ioiy^)wyKPz6v@y3&vz0}82V|2B{N{|Rhua^C
z%3HoEM4&okL`e>};JLjWW!7s}OOb6Yw5-jj;n&tnT+_bIYbJ6g>LQYv#M;(<U&a*K
zy{L0Wcfm7O94YFge1+g7y3mw%Wqm+gSj7?6Ri6T}4Hi=tq6^z5`pf>tYKpn!H)zwx
zMN#W*1s{o_gSEDFb(QpV7f9NaouQN*lnkM+M@3=|bzaVxEtr@@<%%y7j`ha3RH6!D
z+G^QHCg$%gw@CyIiB<VjM2?E|Z;Pr!neOQ%hgcfiRy%!{lGTLdvXNUBuOqEoJ7eC<
z?QFd6cR07mW~5f`cQfej(eG$ct>`}g*?`UxMi9+kyE<4)0^MfM`7==_A{tT11e;p8
zQ>KNhZrsByTDW;SDt#ie&D_(bAT@fkn^SbZl1_xy5CE@4{6g)O8}@c{HIDXnE6%a9
z@E8)AW8B8uP%cIpBYd6cUc0JOaa+^P%_iBdbaM;ZSSFs)frMEpurYBbk}-yT!}hI6
zOrhQqk7Wh=kTX<r^UYq}WlCw~Zq<eOW-~IKUGlztQp}c@nZ@Ih(mAQ9W+c|5(^l{H
zSjE)$b+Fx&cJFDb2kDEaOmOY0?6K_jnqx;o!oUiH)vim&SALZ;z22`#3Xw`S>dH}P
zq);p4#5&^V)hi?0dBfL?J|9vnaH^31eUM9ydP2=%GL@r4o*kv}JO0rumNICx$fBI4
zFttuyM5=YTIE+=4P@C#y$polvuqG)`h?cUUVv3^NF1H|EW8-=JhYd_h*iNH1p(GCj
zBiq<68~uPY;!u(njiGX%Cx43d^Dsf(7jbHbA}AEQ?N&L(^Uebe;6~0``6*|rB4al*
zXIaAwYj2m|Oh%T?rz!$VS!~(~ZN@H^Go`_ZV62;WiplL1dzEgllbFD=?SM2zYiQ%0
z;<#q~RPto1g<5ZIR=6;>3F|qTO99e=@kng@!~|^9Ctg4!gyR-erB{5Z7gCg%K)YEN
zqiWPd0>w$JXpCd2;`qfXdAE3BsCHepjA`R+?iiOhik577qv#hGH&~KrM}aQB*_OoD
z&GLqC@rb47&QFQAs=6Bt)?h$u*hMx+_)Xswt>o?B6#eAw-wb!Kb)Eetf=Jzt3oP;T
zSSBAh_w)O7z`50MeHTAC(MRGxX|#I$&L%O(j6jXzJ>!OKX+)_Bwv~`W4pjNyXlKlU
zIHRM$TBg}BC%x+DIigE6DH(tBR5`*^^3Wy^sn9box+lu^sq;1hrN0D4elOx&Fd9XQ
z6GAFkY}>1=Nd1i_UQhOuQwe;%DD;+o3@*8~aXl)Vbg#!gI?}(s>GQ)j_LfKUJcIgd
z8%n|$ewgP(`=jTU_)&39IFqK;_@^a~Wy^ex+rUk!<|Uxm+GT@GWq*QekpYTD(Ppvc
z(80vSxeLNQsgfvXI)0JXDvs@G3mK#?Ge6qeAZx!c^V@HxWTX@|1m7vDBoSQZLmOn1
zh#%6%ccXukMl|!%@Rqh;&o;fyA}zQ7|Izin*<yKW#5M99R8*;jr&OF!I}&z!bM(JQ
z*g^4`|H94C8`hl_e%2dWO`K`l58`(9O+Sds!i6xoZ1jjs<I%V>h9mva5On?zMh2ut

literal 0
HcmV?d00001

diff --git a/tools/power/cpupower/po/cs.po b/tools/power/cpupower/po/cs.po
index bfc7e1702..807dabbc1 100644
--- a/tools/power/cpupower/po/cs.po
+++ b/tools/power/cpupower/po/cs.po
@@ -4,49 +4,49 @@
 # Copyright (C) 2007 kavol
 # This file is distributed under the same license as the cpufrequtils package.
 #
-# Karel Volný <kavol@seznam.cz>, 2007, 2008.
+# Daniel Hejduk <danielhejduk@disroot.org>.
 msgid ""
 msgstr ""
 "Project-Id-Version: cs\n"
 "Report-Msgid-Bugs-To: \n"
 "POT-Creation-Date: 2011-03-08 17:03+0100\n"
-"PO-Revision-Date: 2008-06-11 16:26+0200\n"
-"Last-Translator: Karel Volný <kavol@seznam.cz>\n"
+"PO-Revision-Date: 2024-06-27 10:49+0200\n"
+"Last-Translator: Daniel Hejduk <danielhejduk@disroot.org>\n"
 "Language-Team: Czech <diskuze@lists.l10n.cz>\n"
 "Language: cs\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms:  nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
-"X-Generator: KBabel 1.11.4\n"
+"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
+"X-Generator: Poedit 3.4.4\n"
 
 #: utils/idle_monitor/nhm_idle.c:36
 msgid "Processor Core C3"
-msgstr ""
+msgstr "Procesor Core C3"
 
 #: utils/idle_monitor/nhm_idle.c:43
 msgid "Processor Core C6"
-msgstr ""
+msgstr "Procesor Core C6"
 
 #: utils/idle_monitor/nhm_idle.c:51
 msgid "Processor Package C3"
-msgstr ""
+msgstr "Procesorový balíček C3"
 
 #: utils/idle_monitor/nhm_idle.c:58 utils/idle_monitor/amd_fam14h_idle.c:70
 msgid "Processor Package C6"
-msgstr ""
+msgstr "Procesorový balíček C6"
 
 #: utils/idle_monitor/snb_idle.c:33
 msgid "Processor Core C7"
-msgstr ""
+msgstr "Procesor Core C7"
 
 #: utils/idle_monitor/snb_idle.c:40
 msgid "Processor Package C2"
-msgstr ""
+msgstr "Procesorový balíček C2"
 
 #: utils/idle_monitor/snb_idle.c:47
 msgid "Processor Package C7"
-msgstr ""
+msgstr "Procesorový balíček C7"
 
 #: utils/idle_monitor/amd_fam14h_idle.c:56
 msgid "Package in sleep state (PC1 or deeper)"
@@ -54,7 +54,7 @@ msgstr ""
 
 #: utils/idle_monitor/amd_fam14h_idle.c:63
 msgid "Processor Package C1"
-msgstr ""
+msgstr "Procesorový balíček C1"
 
 #: utils/idle_monitor/amd_fam14h_idle.c:77
 msgid "North Bridge P1 boolean counter (returns 0 or 1)"
@@ -62,15 +62,15 @@ msgstr ""
 
 #: utils/idle_monitor/mperf_monitor.c:35
 msgid "Processor Core not idle"
-msgstr ""
+msgstr "Procesor Core není v klidovém stavu"
 
 #: utils/idle_monitor/mperf_monitor.c:42
 msgid "Processor Core in an idle state"
-msgstr ""
+msgstr "Procesor Core je v klidovém stavu"
 
 #: utils/idle_monitor/mperf_monitor.c:50
 msgid "Average Frequency (including boost) in MHz"
-msgstr ""
+msgstr "Průměrná frekvence (včetně boostu) v MHz"
 
 #: utils/idle_monitor/cpupower-monitor.c:66
 #, c-format
@@ -78,6 +78,8 @@ msgid ""
 "cpupower monitor: [-h] [ [-t] | [-l] | [-m <mon1>,[<mon2>] ] ] [-i "
 "interval_sec | -c command ...]\n"
 msgstr ""
+"cpupower monitor: [-h] [ [-t] | [-l] | [-m <mon1>,[<mon2>] ] ] [-i "
+"interní_sekundy | -c příkaz ...]\n"
 
 #: utils/idle_monitor/cpupower-monitor.c:69
 #, c-format
@@ -85,21 +87,23 @@ msgid ""
 "cpupower monitor: [-v] [-h] [ [-t] | [-l] | [-m <mon1>,[<mon2>] ] ] [-i "
 "interval_sec | -c command ...]\n"
 msgstr ""
+"cpupower monitor: [-v] [-h] [ [-t] | [-l] | [-m <mon1>,[<mon2>] ] ] [-i "
+"interní_sekundy | -c příkaz ...]\n"
 
 #: utils/idle_monitor/cpupower-monitor.c:71
 #, c-format
 msgid "\t -v: be more verbose\n"
-msgstr ""
+msgstr "\t -v: být víc upovídaný\n"
 
 #: utils/idle_monitor/cpupower-monitor.c:73
 #, c-format
 msgid "\t -h: print this help\n"
-msgstr ""
+msgstr "\t-h, --help: Vypíše tuto nápovědu\n"
 
 #: utils/idle_monitor/cpupower-monitor.c:74
 #, c-format
 msgid "\t -i: time interval to measure for in seconds (default 1)\n"
-msgstr ""
+msgstr "\t -i: časové intervaly pro měření v sekundách (výchozí 1)\n"
 
 #: utils/idle_monitor/cpupower-monitor.c:75
 #, c-format
@@ -217,12 +221,12 @@ msgstr ""
 msgid "Report errors and bugs to %s, please.\n"
 msgstr ""
 "Chyby v programu prosím hlaste na %s (anglicky).\n"
-"Chyby v překladu prosím hlaste na kavol@seznam.cz (česky ;-)\n"
+"Chyby v překladu prosím hlaste na danielhejduk@disroot.org (česky ;-)\n"
 
 #: utils/cpupower.c:114
 #, c-format
 msgid "Error parsing cpu list\n"
-msgstr ""
+msgstr "Chyba v parsování procesorového listu\n"
 
 #: utils/cpupower.c:172
 #, c-format
@@ -259,25 +263,25 @@ msgstr ""
 #: utils/cpufreq-info.c:163
 #, c-format
 msgid "    Supported: %s\n"
-msgstr ""
+msgstr "    Podporováno: %s\n"
 
 #: utils/cpufreq-info.c:163 utils/cpufreq-info.c:164
 msgid "yes"
-msgstr ""
+msgstr "ano"
 
 #: utils/cpufreq-info.c:163 utils/cpufreq-info.c:164
 msgid "no"
-msgstr ""
+msgstr "ne"
 
 #: utils/cpufreq-info.c:164
-#, fuzzy, c-format
+#, c-format
 msgid "    Active: %s\n"
-msgstr "  ovladač: %s\n"
+msgstr "    Aktivní: %s\n"
 
 #: utils/cpufreq-info.c:177
 #, c-format
 msgid "    Boost States: %d\n"
-msgstr ""
+msgstr "    Boostové stavy: %d\n"
 
 #: utils/cpufreq-info.c:178
 #, c-format
@@ -305,14 +309,14 @@ msgid "  driver: %s\n"
 msgstr "  ovladač: %s\n"
 
 #: utils/cpufreq-info.c:219
-#, fuzzy, c-format
+#, c-format
 msgid "  CPUs which run at the same hardware frequency: "
-msgstr "  CPU, které musí měnit frekvenci zároveň: "
+msgstr "  Procesory, které jsou na stejné hardwarové frekvenci: "
 
 #: utils/cpufreq-info.c:230
-#, fuzzy, c-format
+#, c-format
 msgid "  CPUs which need to have their frequency coordinated by software: "
-msgstr "  CPU, které musí měnit frekvenci zároveň: "
+msgstr "  Procesory, které musí mít jejich frekvenci ovládanou softwarem: "
 
 #: utils/cpufreq-info.c:241
 #, c-format
@@ -350,7 +354,7 @@ msgid ""
 "The governor \"%s\" may decide which speed to use\n"
 "                  within this range.\n"
 msgstr ""
-"  Regulátor \"%s\" může rozhodnout jakou frekvenci použít\n"
+"Regulátor \"%s\" může rozhodnout jakou frekvenci použít\n"
 "                    v těchto mezích.\n"
 
 #: utils/cpufreq-info.c:293
@@ -369,9 +373,9 @@ msgid "  cpufreq stats: "
 msgstr "  statistika cpufreq: "
 
 #: utils/cpufreq-info.c:472
-#, fuzzy, c-format
+#, c-format
 msgid "Usage: cpupower freqinfo [options]\n"
-msgstr "Užití: cpufreq-info [přepínače]\n"
+msgstr "Užití: cpupower freqinfo [přepínače]\n"
 
 #: utils/cpufreq-info.c:473 utils/cpufreq-set.c:26 utils/cpupower-set.c:23
 #: utils/cpupower-info.c:22 utils/cpuidle-info.c:148
@@ -380,7 +384,7 @@ msgid "Options:\n"
 msgstr "Přepínače:\n"
 
 #: utils/cpufreq-info.c:474
-#, fuzzy, c-format
+#, c-format
 msgid "  -e, --debug          Prints out debug information [default]\n"
 msgstr "  -e, --debug          Vypíše ladicí informace\n"
 
@@ -427,20 +431,21 @@ msgid "  -g, --governors      Determines available cpufreq governors *\n"
 msgstr "  -g, --governors      Zjistí dostupné regulátory cpufreq *\n"
 
 #: utils/cpufreq-info.c:483
-#, fuzzy, c-format
+#, c-format
 msgid ""
 "  -r, --related-cpus   Determines which CPUs run at the same hardware "
 "frequency *\n"
 msgstr ""
-"  -a, --affected-cpus  Zjistí, které CPU musí měnit frekvenci zároveň *\n"
+"  -r, --related-cpus  Zjistí, které procesory jsou na stejné frekvenci *\n"
 
 #: utils/cpufreq-info.c:484
-#, fuzzy, c-format
+#, c-format
 msgid ""
 "  -a, --affected-cpus  Determines which CPUs need to have their frequency\n"
 "                       coordinated by software *\n"
 msgstr ""
-"  -a, --affected-cpus  Zjistí, které CPU musí měnit frekvenci zároveň *\n"
+"  -a, --affected-cpus  Zjistí, které procesory musí mít svoji frekvenci\n"
+"                       ovládanou softwarem *\n"
 
 #: utils/cpufreq-info.c:486
 #, c-format
@@ -448,13 +453,13 @@ msgid "  -s, --stats          Shows cpufreq statistics if available\n"
 msgstr "  -s, --stats          Zobrazí statistiku cpufreq, je-li dostupná\n"
 
 #: utils/cpufreq-info.c:487
-#, fuzzy, c-format
+#, c-format
 msgid ""
 "  -y, --latency        Determines the maximum latency on CPU frequency "
 "changes *\n"
 msgstr ""
-"  -l, --hwlimits       Zjistí minimální a maximální dostupnou frekvenci CPU "
-"*\n"
+"  -y, --latency        Zjistí maximální latenci na změně procesorové "
+"frekvence *\n"
 
 #: utils/cpufreq-info.c:488
 #, c-format
@@ -468,16 +473,17 @@ msgid ""
 "cpufreq\n"
 "                       interface in 2.4. and early 2.6. kernels\n"
 msgstr ""
-"  -o, --proc           Vypíše informace ve formátu, jaký používalo rozhraní\n"
+"  -o, --proc           Vypíše informace ve formátu, jaký používalo "
+"rozhraní\n"
 "                       /proc/cpufreq v kernelech řady 2.4 a časné 2.6\n"
 
 #: utils/cpufreq-info.c:491
-#, fuzzy, c-format
+#, c-format
 msgid ""
 "  -m, --human          human-readable output for the -f, -w, -s and -y "
 "parameters\n"
 msgstr ""
-"  -m, --human          Výstup parametrů -f, -w a -s v „lidmi čitelném“ "
+"  -m, --human          Výstup parametrů -f, -w a -s a -y v „lidmi čitelném“ "
 "formátu\n"
 
 #: utils/cpufreq-info.c:492 utils/cpuidle-info.c:152
@@ -488,12 +494,14 @@ msgstr "  -h, --help           Vypíše tuto nápovědu\n"
 #: utils/cpufreq-info.c:495
 #, c-format
 msgid ""
-"If no argument or only the -c, --cpu parameter is given, debug output about\n"
+"If no argument or only the -c, --cpu parameter is given, debug output "
+"about\n"
 "cpufreq is printed which is useful e.g. for reporting bugs.\n"
 msgstr ""
 "Není-li zadán žádný parametr nebo je-li zadán pouze přepínač -c, --cpu, "
 "jsou\n"
-"vypsány ladicí informace, což může být užitečné například při hlášení chyb.\n"
+"vypsány ladicí informace, což může být užitečné například při hlášení "
+"chyb.\n"
 
 #: utils/cpufreq-info.c:497
 #, c-format
@@ -509,7 +517,8 @@ msgstr ""
 msgid ""
 "The argument passed to this tool can't be combined with passing a --cpu "
 "argument\n"
-msgstr "Zadaný parametr nemůže být použit zároveň s přepínačem -c nebo --cpu\n"
+msgstr ""
+"Zadaný parametr nemůže být použit zároveň s přepínačem -c nebo --cpu\n"
 
 #: utils/cpufreq-info.c:596
 #, c-format
@@ -537,9 +546,9 @@ msgid "analyzing CPU %d:\n"
 msgstr "analyzuji CPU %d:\n"
 
 #: utils/cpufreq-set.c:25
-#, fuzzy, c-format
+#, c-format
 msgid "Usage: cpupower frequency-set [options]\n"
-msgstr "Užití: cpufreq-set [přepínače]\n"
+msgstr "Užití: cpupower frequency-set [přepínače]\n"
 
 #: utils/cpufreq-set.c:27
 #, c-format
@@ -567,7 +576,8 @@ msgstr "  -g GOV, --governors GOV  Nový regulátor cpufreq\n"
 #: utils/cpufreq-set.c:30
 #, c-format
 msgid ""
-"  -f FREQ, --freq FREQ     specific frequency to be set. Requires userspace\n"
+"  -f FREQ, --freq FREQ     specific frequency to be set. Requires "
+"userspace\n"
 "                           governor to be available and loaded\n"
 msgstr ""
 "  -f FREQ, --freq FREQ     Frekvence, která má být nastavena. Vyžaduje, aby "
@@ -580,21 +590,22 @@ msgid "  -r, --related            Switches all hardware-related CPUs\n"
 msgstr ""
 
 #: utils/cpufreq-set.c:33 utils/cpupower-set.c:28 utils/cpupower-info.c:27
-#, fuzzy, c-format
+#, c-format
 msgid "  -h, --help               Prints out this screen\n"
 msgstr "  -h, --help           Vypíše tuto nápovědu\n"
 
 #: utils/cpufreq-set.c:35
-#, fuzzy, c-format
+#, c-format
 msgid ""
 "Notes:\n"
-"1. Omitting the -c or --cpu argument is equivalent to setting it to \"all\"\n"
+"1. Omitting the -c or --cpu argument is equivalent to setting it to "
+"\"all\"\n"
 msgstr ""
-"Není-li při použití přepínačů označených * zadán parametr -c nebo --cpu,\n"
-"předpokládá se jeho hodnota 0.\n"
+"Poznámky:\n"
+"1. Vynechání -c nebo --cpu přepínače je ekvivalent na nastavení \"all\"\n"
 
 #: utils/cpufreq-set.c:37
-#, fuzzy, c-format
+#, c-format
 msgid ""
 "2. The -f FREQ, --freq FREQ parameter cannot be combined with any other "
 "parameter\n"
@@ -603,12 +614,11 @@ msgid ""
 "   by postfixing the value with the wanted unit name, without any space\n"
 "   (FREQuency in kHz =^ Hz * 0.001 =^ MHz * 1000 =^ GHz * 1000000).\n"
 msgstr ""
-"Poznámky:\n"
-"1. Vynechání parametru -c nebo --cpu je ekvivalentní jeho nastavení na 0\n"
 "2. Přepínač -f nebo --freq nemůže být použit zároveň s žádným jiným vyjma -"
 "c\n"
 "   nebo --cpu\n"
-"3. Frekvence (FREQ) mohou být zadány v Hz, kHz (výchozí), MHz, GHz nebo THz\n"
+"3. Frekvence (FREQ) mohou být zadány v Hz, kHz (výchozí), MHz, GHz nebo "
+"THz\n"
 "   připojením názvu jednotky bez mezery mezi číslem a jednotkou\n"
 "   (FREQ v kHz =^ Hz * 0,001 = ^ MHz * 1000 =^ GHz * 1000000)\n"
 
@@ -659,7 +669,7 @@ msgstr ""
 #: utils/cpufreq-set.c:347
 #, c-format
 msgid "Setting cpu: %d\n"
-msgstr ""
+msgstr "Nastavuji procesor:%d\n"
 
 #: utils/cpupower-set.c:22
 #, c-format
@@ -729,9 +739,9 @@ msgid ""
 msgstr ""
 
 #: utils/cpupower-info.c:25
-#, fuzzy, c-format
+#, c-format
 msgid "  -m, --sched-mc     Gets the kernel's multi core scheduler policy.\n"
-msgstr "  -p, --policy         Zjistí aktuální taktiku cpufreq *\n"
+msgstr "  -m, --sched-mc     Zjistí pravidla pro multi jádrové plánování\n"
 
 #: utils/cpupower-info.c:26
 #, c-format
@@ -783,9 +793,9 @@ msgid "perf-bias: %d\n"
 msgstr ""
 
 #: utils/cpuidle-info.c:28
-#, fuzzy, c-format
+#, c-format
 msgid "Analyzing CPU %d:\n"
-msgstr "analyzuji CPU %d:\n"
+msgstr "Analyzování procesoru %d:\n"
 
 #: utils/cpuidle-info.c:32
 #, c-format
@@ -808,9 +818,9 @@ msgid "Number of idle states: %d\n"
 msgstr ""
 
 #: utils/cpuidle-info.c:48
-#, fuzzy, c-format
+#, c-format
 msgid "Available idle states:"
-msgstr "  dostupné frekvence: "
+msgstr "Dostupné frekvence:"
 
 #: utils/cpuidle-info.c:71
 #, c-format
@@ -820,7 +830,7 @@ msgstr ""
 #: utils/cpuidle-info.c:74
 #, c-format
 msgid "Latency: %lu\n"
-msgstr ""
+msgstr "Latence: %lu\n"
 
 #: utils/cpuidle-info.c:76
 #, c-format
@@ -838,9 +848,9 @@ msgid "Could not determine cpuidle driver\n"
 msgstr ""
 
 #: utils/cpuidle-info.c:94
-#, fuzzy, c-format
+#, c-format
 msgid "CPUidle driver: %s\n"
-msgstr "  ovladač: %s\n"
+msgstr "ovladač: %s\n"
 
 #: utils/cpuidle-info.c:99
 #, c-format
@@ -876,7 +886,7 @@ msgstr ""
 #: utils/cpuidle-info.c:130
 #, c-format
 msgid "states:\t\n"
-msgstr ""
+msgstr "stavy:\t\n"
 
 #: utils/cpuidle-info.c:132
 #, c-format
@@ -904,31 +914,31 @@ msgid "duration[%020Lu] \n"
 msgstr ""
 
 #: utils/cpuidle-info.c:147
-#, fuzzy, c-format
+#, c-format
 msgid "Usage: cpupower idleinfo [options]\n"
-msgstr "Užití: cpufreq-info [přepínače]\n"
+msgstr "Užití: cpupower idleinfo [přepínače]\n"
 
 #: utils/cpuidle-info.c:149
-#, fuzzy, c-format
+#, c-format
 msgid "  -s, --silent         Only show general C-state information\n"
-msgstr "  -e, --debug          Vypíše ladicí informace\n"
+msgstr "  -s, --silent          Ukáže pouze základní informace o C-stavech\n"
 
 #: utils/cpuidle-info.c:150
-#, fuzzy, c-format
+#, c-format
 msgid ""
 "  -o, --proc           Prints out information like provided by the /proc/"
 "acpi/processor/*/power\n"
 "                       interface in older kernels\n"
 msgstr ""
-"  -o, --proc           Vypíše informace ve formátu, jaký používalo rozhraní\n"
-"                       /proc/cpufreq v kernelech řady 2.4 a časné 2.6\n"
+"  -o, --proc           Vypíše informace které jsou obsaženy v /proc/acpi/"
+"processor/*/power\n"
+"                       rozhraní ve starších verzích jádra\n"
 
 #: utils/cpuidle-info.c:209
-#, fuzzy, c-format
+#, c-format
 msgid "You can't specify more than one output-specific argument\n"
 msgstr ""
-"Nelze zadat více než jeden parametr -c nebo --cpu\n"
-"anebo více než jeden parametr určující výstup\n"
+"Nemůžeš specifikovat více jak jeden přepínač pro nastavování vypisování\n"
 
 #~ msgid ""
 #~ "  -c CPU, --cpu CPU    CPU number which information shall be determined "
-- 
2.45.2

.

Date: Thu, 27 Jun 2024 17:35:03 +0800
From: kernel test robot <lkp@intel.com>
To: Jakob Koschel <jkl820.git@gmail.com>
Cc: oe-kbuild-all@lists.linux.dev, linux-kernel@vger.kernel.org,
	Andrew Morton <akpm@linux-foundation.org>,
	Linux Memory Management List <linux-mm@kvack.org>,
	Nathan Chancellor <nathan@kernel.org>,
	Nick Desaulniers <ndesaulniers@google.com>
Subject: vmlinux.o: warning: objtool: leaf_cut_from_buffer+0x2396: stack
 state mismatch: cfa1=4+288 cfa2=4+304
Message-ID: <202406271717.ZT2RKqOf-lkp@intel.com>
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1260649 org.kvack.linux-mm:201596
Newsgroups: org.kernel.vger.linux-kernel,dev.linux.lists.oe-kbuild-all,org.kvack.linux-mm
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head:   afcd48134c58d6af45fb3fdb648f1260b20f2326
commit: 349fde599db65d4827820ef6553e3f9ee75b8c7c arch: enable HAS_LTO_CLANG with KASAN and KCOV
date:   10 months ago
config: x86_64-randconfig-r123-20240626 (https://download.01.org/0day-ci/archive/20240627/202406271717.ZT2RKqOf-lkp@intel.com/config)
compiler: clang version 18.1.5 (https://github.com/llvm/llvm-project 617a15a9eac96088ae5e9134248d8236e34b91b1)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20240627/202406271717.ZT2RKqOf-lkp@intel.com/reproduce)

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202406271717.ZT2RKqOf-lkp@intel.com/

All warnings (new ones prefixed by >>):

   vmlinux.o: warning: objtool: balance_leaf+0x11075: stack state mismatch: cfa1=4+624 cfa2=4+640
>> vmlinux.o: warning: objtool: leaf_cut_from_buffer+0x2396: stack state mismatch: cfa1=4+288 cfa2=4+304
   vmlinux.o: warning: objtool: leaf_copy_items_entirely+0xcf6: stack state mismatch: cfa1=4+240 cfa2=4+232
   vmlinux.o: warning: objtool: balance_internal+0x1073: stack state mismatch: cfa1=4+352 cfa2=4+360
   vmlinux.o: warning: objtool: internal_move_pointers_items+0x795: stack state mismatch: cfa1=4+224 cfa2=4+216
   vmlinux.o: warning: objtool: .text.amd_spi_master_transfer: unexpected end of section


objdump-func vmlinux.o leaf_cut_from_buffer:
0000 0000000000000010 <leaf_cut_from_buffer>:
0000       10:	f3 0f 1e fa          	endbr64
0004       14:	55                   	push   %rbp
0005       15:	41 57                	push   %r15
0007       17:	41 56                	push   %r14
0009       19:	41 55                	push   %r13
000b       1b:	41 54                	push   %r12
000d       1d:	53                   	push   %rbx
000e       1e:	48 81 ec e8 00 00 00 	sub    $0xe8,%rsp
0015       25:	48 89 4c 24 30       	mov    %rcx,0x30(%rsp)
001a       2a:	41 89 d4             	mov    %edx,%r12d
001d       2d:	89 f5                	mov    %esi,%ebp
001f       2f:	48 89 fb             	mov    %rdi,%rbx
0022       32:	48 be 00 00 00 00 00 fc ff df 	movabs $0xdffffc0000000000,%rsi
002c       3c:	4c 8d 77 08          	lea    0x8(%rdi),%r14
0030       40:	4c 89 f0             	mov    %r14,%rax
0033       43:	48 c1 e8 03          	shr    $0x3,%rax
0037       47:	80 3c 30 00          	cmpb   $0x0,(%rax,%rsi,1)
003b       4b:	74 12                	je     5f <leaf_cut_from_buffer+0x4f>
003d       4d:	4c 89 f7             	mov    %r14,%rdi
0040       50:	e8 00 00 00 00       	call   55 <leaf_cut_from_buffer+0x45>	51: R_X86_64_PLT32	__asan_report_load8_noabort-0x4
0045       55:	48 be 00 00 00 00 00 fc ff df 	movabs $0xdffffc0000000000,%rsi
004f       5f:	49 8b 06             	mov    (%r14),%rax
0052       62:	48 89 84 24 88 00 00 00 	mov    %rax,0x88(%rsp)
005a       6a:	4c 8d 68 28          	lea    0x28(%rax),%r13
005e       6e:	4c 89 e8             	mov    %r13,%rax
0061       71:	48 c1 e8 03          	shr    $0x3,%rax
0065       75:	48 89 84 24 a0 00 00 00 	mov    %rax,0xa0(%rsp)
006d       7d:	80 3c 30 00          	cmpb   $0x0,(%rax,%rsi,1)
0071       81:	74 12                	je     95 <leaf_cut_from_buffer+0x85>
0073       83:	4c 89 ef             	mov    %r13,%rdi
0076       86:	e8 00 00 00 00       	call   8b <leaf_cut_from_buffer+0x7b>	87: R_X86_64_PLT32	__asan_report_load8_noabort-0x4
007b       8b:	48 be 00 00 00 00 00 fc ff df 	movabs $0xdffffc0000000000,%rsi
0085       95:	4d 8b 75 00          	mov    0x0(%r13),%r14
0089       99:	49 8d 7e 02          	lea    0x2(%r14),%rdi
008d       9d:	48 89 f8             	mov    %rdi,%rax
0090       a0:	48 c1 e8 03          	shr    $0x3,%rax
0094       a4:	8a 04 30             	mov    (%rax,%rsi,1),%al
0097       a7:	84 c0                	test   %al,%al
0099       a9:	0f 85 a2 11 00 00    	jne    1251 <leaf_cut_from_buffer+0x1241>
009f       af:	45 0f b7 46 02       	movzwl 0x2(%r14),%r8d
00a4       b4:	48 63 c5             	movslq %ebp,%rax
00a7       b7:	48 89 84 24 e0 00 00 00 	mov    %rax,0xe0(%rsp)
00af       bf:	4c 8d 1c 40          	lea    (%rax,%rax,2),%r11
00b3       c3:	4f 8d 3c de          	lea    (%r14,%r11,8),%r15
00b7       c7:	49 83 c7 2e          	add    $0x2e,%r15
00bb       cb:	4b 8d 3c de          	lea    (%r14,%r11,8),%rdi
00bf       cf:	48 83 c7 2f          	add    $0x2f,%rdi
00c3       d3:	4c 89 f8             	mov    %r15,%rax
00c6       d6:	48 c1 e8 03          	shr    $0x3,%rax
00ca       da:	48 89 84 24 c0 00 00 00 	mov    %rax,0xc0(%rsp)
00d2       e2:	8a 04 30             	mov    (%rax,%rsi,1),%al
00d5       e5:	84 c0                	test   %al,%al
00d7       e7:	4c 89 44 24 08       	mov    %r8,0x8(%rsp)
00dc       ec:	4c 89 5c 24 10       	mov    %r11,0x10(%rsp)
00e1       f1:	48 89 7c 24 68       	mov    %rdi,0x68(%rsp)
00e6       f6:	0f 85 78 11 00 00    	jne    1274 <leaf_cut_from_buffer+0x1264>
00ec       fc:	48 89 f8             	mov    %rdi,%rax
00ef       ff:	48 c1 e8 03          	shr    $0x3,%rax
00f3      103:	48 89 84 24 b8 00 00 00 	mov    %rax,0xb8(%rsp)
00fb      10b:	8a 04 30             	mov    (%rax,%rsi,1),%al
00fe      10e:	84 c0                	test   %al,%al
0100      110:	0f 85 97 11 00 00    	jne    12ad <leaf_cut_from_buffer+0x129d>
0106      116:	48 89 9c 24 d0 00 00 00 	mov    %rbx,0xd0(%rsp)
010e      11e:	4d 8d 4e 18          	lea    0x18(%r14),%r9
0112      122:	4c 89 b4 24 90 00 00 00 	mov    %r14,0x90(%rsp)
011a      12a:	4f 8d 14 de          	lea    (%r14,%r11,8),%r10
011e      12e:	49 83 c2 18          	add    $0x18,%r10
0122      132:	4c 89 7c 24 50       	mov    %r15,0x50(%rsp)
0127      137:	66 41 83 3f 00       	cmpw   $0x0,(%r15)
012c      13c:	4c 89 14 24          	mov    %r10,(%rsp)
0130      140:	4c 89 a4 24 98 00 00 00 	mov    %r12,0x98(%rsp)
0138      148:	4c 89 4c 24 18       	mov    %r9,0x18(%rsp)
013d      14d:	4c 89 ac 24 c8 00 00 00 	mov    %r13,0xc8(%rsp)
0145      155:	0f 84 c4 00 00 00    	je     21f <leaf_cut_from_buffer+0x20f>
014b      15b:	4d 8d 72 08          	lea    0x8(%r10),%r14
014f      15f:	4d 8d 7a 0f          	lea    0xf(%r10),%r15
0153      163:	4c 89 f0             	mov    %r14,%rax
0156      166:	48 c1 e8 03          	shr    $0x3,%rax
015a      16a:	8a 04 30             	mov    (%rax,%rsi,1),%al
015d      16d:	84 c0                	test   %al,%al
015f      16f:	0f 85 d8 12 00 00    	jne    144d <leaf_cut_from_buffer+0x143d>
0165      175:	4c 89 f8             	mov    %r15,%rax
0168      178:	48 c1 e8 03          	shr    $0x3,%rax
016c      17c:	8a 04 30             	mov    (%rax,%rsi,1),%al
016f      17f:	84 c0                	test   %al,%al
0171      181:	0f 85 03 13 00 00    	jne    148a <leaf_cut_from_buffer+0x147a>
0177      187:	49 8b 06             	mov    (%r14),%rax
017a      18a:	48 89 c1             	mov    %rax,%rcx
017d      18d:	48 ba 00 00 00 00 00 00 00 f0 	movabs $0xf000000000000000,%rdx
0187      197:	48 21 d1             	and    %rdx,%rcx
018a      19a:	48 ba 00 00 00 00 00 00 00 30 	movabs $0x3000000000000000,%rdx
0194      1a4:	48 39 d1             	cmp    %rdx,%rcx
0197      1a7:	0f 84 d9 00 00 00    	je     286 <leaf_cut_from_buffer+0x276>
019d      1ad:	48 b9 ff ff ff ff ff ff ff 0f 	movabs $0xfffffffffffffff,%rcx
01a7      1b7:	48 39 c8             	cmp    %rcx,%rax
01aa      1ba:	0f 86 9d 00 00 00    	jbe    25d <leaf_cut_from_buffer+0x24d>
01b0      1c0:	45 85 e4             	test   %r12d,%r12d
01b3      1c3:	0f 84 6c 05 00 00    	je     735 <leaf_cut_from_buffer+0x725>
01b9      1c9:	4f 8d 34 d9          	lea    (%r9,%r11,8),%r14
01bd      1cd:	49 83 c6 12          	add    $0x12,%r14
01c1      1d1:	4f 8d 3c d9          	lea    (%r9,%r11,8),%r15
01c5      1d5:	49 83 c7 13          	add    $0x13,%r15
01c9      1d9:	4c 89 f0             	mov    %r14,%rax
01cc      1dc:	48 c1 e8 03          	shr    $0x3,%rax
01d0      1e0:	8a 04 30             	mov    (%rax,%rsi,1),%al
01d3      1e3:	84 c0                	test   %al,%al
01d5      1e5:	0f 85 11 16 00 00    	jne    17fc <leaf_cut_from_buffer+0x17ec>
01db      1eb:	48 8b 44 24 30       	mov    0x30(%rsp),%rax
01e0      1f0:	42 8d 1c 20          	lea    (%rax,%r12,1),%ebx
01e4      1f4:	4c 89 f8             	mov    %r15,%rax
01e7      1f7:	48 c1 e8 03          	shr    $0x3,%rax
01eb      1fb:	8a 04 30             	mov    (%rax,%rsi,1),%al
01ee      1fe:	84 c0                	test   %al,%al
01f0      200:	0f 85 29 16 00 00    	jne    182f <leaf_cut_from_buffer+0x181f>
01f6      206:	41 0f b7 06          	movzwl (%r14),%eax
01fa      20a:	39 c3                	cmp    %eax,%ebx
01fc      20c:	0f 85 65 21 00 00    	jne    2377 <leaf_cut_from_buffer+0x2367>
0202      212:	49 89 ec             	mov    %rbp,%r12
0205      215:	48 8b 6c 24 30       	mov    0x30(%rsp),%rbp
020a      21a:	e9 09 07 00 00       	jmp    928 <leaf_cut_from_buffer+0x918>
020f      21f:	4d 8d 72 0c          	lea    0xc(%r10),%r14
0213      223:	4d 8d 7a 0f          	lea    0xf(%r10),%r15
0217      227:	4c 89 f0             	mov    %r14,%rax
021a      22a:	48 c1 e8 03          	shr    $0x3,%rax
021e      22e:	8a 04 30             	mov    (%rax,%rsi,1),%al
0221      231:	84 c0                	test   %al,%al
0223      233:	0f 85 cf 14 00 00    	jne    1708 <leaf_cut_from_buffer+0x16f8>
0229      239:	4c 89 f8             	mov    %r15,%rax
022c      23c:	48 c1 e8 03          	shr    $0x3,%rax
0230      240:	8a 04 30             	mov    (%rax,%rsi,1),%al
0233      243:	84 c0                	test   %al,%al
0235      245:	0f 85 fa 14 00 00    	jne    1745 <leaf_cut_from_buffer+0x1735>
023b      24b:	41 8b 06             	mov    (%r14),%eax
023e      24e:	3d f4 01 00 00       	cmp    $0x1f4,%eax
0243      253:	74 31                	je     286 <leaf_cut_from_buffer+0x276>
0245      255:	85 c0                	test   %eax,%eax
0247      257:	0f 85 63 ff ff ff    	jne    1c0 <leaf_cut_from_buffer+0x1b0>
024d      25d:	31 ff                	xor    %edi,%edi
024f      25f:	48 c7 c6 00 00 00 00 	mov    $0x0,%rsi	262: R_X86_64_32S	.rodata..str+0x88a0
0256      266:	48 c7 c2 00 00 00 00 	mov    $0x0,%rdx	269: R_X86_64_32S	.rodata.str1.1+0x767b
025d      26d:	48 c7 c1 00 00 00 00 	mov    $0x0,%rcx	270: R_X86_64_32S	.rodata..str.34+0x19a0
0264      274:	41 b8 96 04 00 00    	mov    $0x496,%r8d
026a      27a:	49 c7 c1 00 00 00 00 	mov    $0x0,%r9	27d: R_X86_64_32S	.rodata.str1.1+0x767b
0271      281:	e8 00 00 00 00       	call   286 <leaf_cut_from_buffer+0x276>	282: R_X86_64_PLT32	__reiserfs_panic-0x4
0276      286:	4b 8d 14 d9          	lea    (%r9,%r11,8),%rdx
027a      28a:	48 83 c2 10          	add    $0x10,%rdx
027e      28e:	4f 8d 34 d9          	lea    (%r9,%r11,8),%r14
0282      292:	49 83 c6 11          	add    $0x11,%r14
0286      296:	48 89 d1             	mov    %rdx,%rcx
0289      299:	48 c1 e9 03          	shr    $0x3,%rcx
028d      29d:	8a 04 31             	mov    (%rcx,%rsi,1),%al
0290      2a0:	84 c0                	test   %al,%al
0292      2a2:	0f 85 63 13 00 00    	jne    160b <leaf_cut_from_buffer+0x15fb>
0298      2a8:	4d 89 f5             	mov    %r14,%r13
029b      2ab:	49 c1 ed 03          	shr    $0x3,%r13
029f      2af:	41 8a 44 35 00       	mov    0x0(%r13,%rsi,1),%al
02a4      2b4:	84 c0                	test   %al,%al
02a6      2b6:	0f 85 9a 13 00 00    	jne    1656 <leaf_cut_from_buffer+0x1646>
02ac      2bc:	48 89 6c 24 70       	mov    %rbp,0x70(%rsp)
02b1      2c1:	0f b7 2a             	movzwl (%rdx),%ebp
02b4      2c4:	48 8b 44 24 30       	mov    0x30(%rsp),%rax
02b9      2c9:	42 8d 3c 20          	lea    (%rax,%r12,1),%edi
02bd      2cd:	39 ef                	cmp    %ebp,%edi
02bf      2cf:	0f 8f b9 1f 00 00    	jg     228e <leaf_cut_from_buffer+0x227e>
02c5      2d5:	85 c0                	test   %eax,%eax
02c7      2d7:	0f 84 29 06 00 00    	je     906 <leaf_cut_from_buffer+0x8f6>
02cd      2dd:	4c 89 ac 24 b0 00 00 00 	mov    %r13,0xb0(%rsp)
02d5      2e5:	4c 89 b4 24 d8 00 00 00 	mov    %r14,0xd8(%rsp)
02dd      2ed:	4f 8d 34 d9          	lea    (%r9,%r11,8),%r14
02e1      2f1:	49 83 c6 14          	add    $0x14,%r14
02e5      2f5:	4f 8d 2c d9          	lea    (%r9,%r11,8),%r13
02e9      2f9:	49 83 c5 15          	add    $0x15,%r13
02ed      2fd:	4c 89 f0             	mov    %r14,%rax
02f0      300:	48 c1 e8 03          	shr    $0x3,%rax
02f4      304:	8a 04 30             	mov    (%rax,%rsi,1),%al
02f7      307:	84 c0                	test   %al,%al
02f9      309:	0f 85 53 15 00 00    	jne    1862 <leaf_cut_from_buffer+0x1852>
02ff      30f:	4c 89 e8             	mov    %r13,%rax
0302      312:	48 c1 e8 03          	shr    $0x3,%rax
0306      316:	8a 04 30             	mov    (%rax,%rsi,1),%al
0309      319:	84 c0                	test   %al,%al
030b      31b:	0f 85 8c 15 00 00    	jne    18ad <leaf_cut_from_buffer+0x189d>
0311      321:	45 0f b7 16          	movzwl (%r14),%r10d
0315      325:	48 8b 84 24 90 00 00 00 	mov    0x90(%rsp),%rax
031d      32d:	4e 8d 04 10          	lea    (%rax,%r10,1),%r8
0321      331:	41 8d 44 24 ff       	lea    -0x1(%r12),%eax
0326      336:	48 98                	cltq
0328      338:	48 c1 e0 04          	shl    $0x4,%rax
032c      33c:	41 83 fc 01          	cmp    $0x1,%r12d
0330      340:	4e 8d 74 00 0c       	lea    0xc(%rax,%r8,1),%r14
0335      345:	4b 8d 44 d9 12       	lea    0x12(%r9,%r11,8),%rax
033a      34a:	48 89 84 24 80 00 00 00 	mov    %rax,0x80(%rsp)
0342      352:	4c 0f 42 f0          	cmovb  %rax,%r14
0346      356:	4d 8d 6e 01          	lea    0x1(%r14),%r13
034a      35a:	4c 89 f0             	mov    %r14,%rax
034d      35d:	48 c1 e8 03          	shr    $0x3,%rax
0351      361:	8a 04 30             	mov    (%rax,%rsi,1),%al
0354      364:	84 c0                	test   %al,%al
0356      366:	0f 85 8c 15 00 00    	jne    18f8 <leaf_cut_from_buffer+0x18e8>
035c      36c:	4c 89 e8             	mov    %r13,%rax
035f      36f:	48 c1 e8 03          	shr    $0x3,%rax
0363      373:	8a 04 30             	mov    (%rax,%rsi,1),%al
0366      376:	84 c0                	test   %al,%al
0368      378:	0f 85 d1 15 00 00    	jne    194f <leaf_cut_from_buffer+0x193f>
036e      37e:	45 0f b7 1e          	movzwl (%r14),%r11d
0372      382:	ff cf                	dec    %edi
0374      384:	48 63 c7             	movslq %edi,%rax
0377      387:	48 89 44 24 78       	mov    %rax,0x78(%rsp)
037c      38c:	48 c1 e0 04          	shl    $0x4,%rax
0380      390:	4d 8d 34 00          	lea    (%r8,%rax,1),%r14
0384      394:	49 83 c6 0c          	add    $0xc,%r14
0388      398:	4d 8d 0c 00          	lea    (%r8,%rax,1),%r9
038c      39c:	49 83 c1 0d          	add    $0xd,%r9
0390      3a0:	4c 89 f0             	mov    %r14,%rax
0393      3a3:	48 c1 e8 03          	shr    $0x3,%rax
0397      3a7:	8a 04 30             	mov    (%rax,%rsi,1),%al
039a      3aa:	84 c0                	test   %al,%al
039c      3ac:	0f 85 ea 15 00 00    	jne    199c <leaf_cut_from_buffer+0x198c>
03a2      3b2:	4c 89 c8             	mov    %r9,%rax
03a5      3b5:	48 c1 e8 03          	shr    $0x3,%rax
03a9      3b9:	8a 04 30             	mov    (%rax,%rsi,1),%al
03ac      3bc:	84 c0                	test   %al,%al
03ae      3be:	0f 85 39 16 00 00    	jne    19fd <leaf_cut_from_buffer+0x19ed>
03b4      3c4:	41 0f b7 06          	movzwl (%r14),%eax
03b8      3c8:	4d 89 d9             	mov    %r11,%r9
03bb      3cb:	49 29 c1             	sub    %rax,%r9
03be      3ce:	8d 45 ff             	lea    -0x1(%rbp),%eax
03c1      3d1:	39 f8                	cmp    %edi,%eax
03c3      3d3:	4c 89 44 24 40       	mov    %r8,0x40(%rsp)
03c8      3d8:	4c 89 4c 24 28       	mov    %r9,0x28(%rsp)
03cd      3dd:	0f 8e 6e 01 00 00    	jle    551 <leaf_cut_from_buffer+0x541>
03d3      3e3:	48 8b 44 24 30       	mov    0x30(%rsp),%rax
03d8      3e8:	c1 e0 04             	shl    $0x4,%eax
03db      3eb:	89 44 24 48          	mov    %eax,0x48(%rsp)
03df      3ef:	41 89 ec             	mov    %ebp,%r12d
03e2      3f2:	49 ff cc             	dec    %r12
03e5      3f5:	89 e8                	mov    %ebp,%eax
03e7      3f7:	c1 e0 04             	shl    $0x4,%eax
03ea      3fa:	48 8b bc 24 90 00 00 00 	mov    0x90(%rsp),%rdi
03f2      402:	4c 8d 34 07          	lea    (%rdi,%rax,1),%r14
03f6      406:	49 83 c6 fc          	add    $0xfffffffffffffffc,%r14
03fa      40a:	40 c0 e5 04          	shl    $0x4,%bpl
03fe      40e:	48 89 4c 24 38       	mov    %rcx,0x38(%rsp)
0403      413:	8d 0c 2f             	lea    (%rdi,%rbp,1),%ecx
0406      416:	48 89 54 24 60       	mov    %rdx,0x60(%rsp)
040b      41b:	8d 51 fc             	lea    -0x4(%rcx),%edx
040e      41e:	0f b6 ea             	movzbl %dl,%ebp
0411      421:	48 8b 54 24 60       	mov    0x60(%rsp),%rdx
0416      426:	48 8d 1c 07          	lea    (%rdi,%rax,1),%rbx
041a      42a:	48 83 c3 fd          	add    $0xfffffffffffffffd,%rbx
041e      42e:	80 c1 fd             	add    $0xfd,%cl
0421      431:	44 0f b6 f9          	movzbl %cl,%r15d
0425      435:	48 8b 4c 24 38       	mov    0x38(%rsp),%rcx
042a      43a:	4d 89 f5             	mov    %r14,%r13
042d      43d:	4b 8d 04 2a          	lea    (%r10,%r13,1),%rax
0431      441:	48 89 44 24 20       	mov    %rax,0x20(%rsp)
0436      446:	4b 8d 04 32          	lea    (%r10,%r14,1),%rax
043a      44a:	48 c1 e8 03          	shr    $0x3,%rax
043e      44e:	8a 04 30             	mov    (%rax,%rsi,1),%al
0441      451:	84 c0                	test   %al,%al
0443      453:	75 45                	jne    49a <leaf_cut_from_buffer+0x48a>
0445      455:	49 8d 3c 1a          	lea    (%r10,%rbx,1),%rdi
0449      459:	48 89 f8             	mov    %rdi,%rax
044c      45c:	48 c1 e8 03          	shr    $0x3,%rax
0450      460:	8a 04 30             	mov    (%rax,%rsi,1),%al
0453      463:	84 c0                	test   %al,%al
0455      465:	0f 85 8b 00 00 00    	jne    4f6 <leaf_cut_from_buffer+0x4e6>
045b      46b:	8b 44 24 48          	mov    0x48(%rsp),%eax
045f      46f:	48 8b 7c 24 20       	mov    0x20(%rsp),%rdi
0464      474:	66 29 07             	sub    %ax,(%rdi)
0467      477:	49 ff cc             	dec    %r12
046a      47a:	49 83 c5 f0          	add    $0xfffffffffffffff0,%r13
046e      47e:	49 83 c6 f0          	add    $0xfffffffffffffff0,%r14
0472      482:	48 83 c5 f0          	add    $0xfffffffffffffff0,%rbp
0476      486:	48 83 c3 f0          	add    $0xfffffffffffffff0,%rbx
047a      48a:	49 83 c7 f0          	add    $0xfffffffffffffff0,%r15
047e      48e:	4c 3b 64 24 78       	cmp    0x78(%rsp),%r12
0483      493:	7f a8                	jg     43d <leaf_cut_from_buffer+0x42d>
0485      495:	e9 b7 00 00 00       	jmp    551 <leaf_cut_from_buffer+0x541>
048a      49a:	41 8d 0c 2a          	lea    (%r10,%rbp,1),%ecx
048e      49e:	80 e1 07             	and    $0x7,%cl
0491      4a1:	38 c1                	cmp    %al,%cl
0493      4a3:	48 8b 4c 24 38       	mov    0x38(%rsp),%rcx
0498      4a8:	7c ab                	jl     455 <leaf_cut_from_buffer+0x445>
049a      4aa:	be 02 00 00 00       	mov    $0x2,%esi
049f      4af:	48 8b 7c 24 20       	mov    0x20(%rsp),%rdi
04a4      4b4:	4c 89 94 24 a8 00 00 00 	mov    %r10,0xa8(%rsp)
04ac      4bc:	4c 89 5c 24 58       	mov    %r11,0x58(%rsp)
04b1      4c1:	e8 00 00 00 00       	call   4c6 <leaf_cut_from_buffer+0x4b6>	4c2: R_X86_64_PLT32	__asan_report_load_n_noabort-0x4
04b6      4c6:	4c 8b 5c 24 58       	mov    0x58(%rsp),%r11
04bb      4cb:	4c 8b 94 24 a8 00 00 00 	mov    0xa8(%rsp),%r10
04c3      4d3:	4c 8b 4c 24 28       	mov    0x28(%rsp),%r9
04c8      4d8:	48 8b 4c 24 38       	mov    0x38(%rsp),%rcx
04cd      4dd:	4c 8b 44 24 40       	mov    0x40(%rsp),%r8
04d2      4e2:	48 8b 54 24 60       	mov    0x60(%rsp),%rdx
04d7      4e7:	48 be 00 00 00 00 00 fc ff df 	movabs $0xdffffc0000000000,%rsi
04e1      4f1:	e9 5f ff ff ff       	jmp    455 <leaf_cut_from_buffer+0x445>
04e6      4f6:	43 8d 0c 3a          	lea    (%r10,%r15,1),%ecx
04ea      4fa:	80 e1 07             	and    $0x7,%cl
04ed      4fd:	38 c1                	cmp    %al,%cl
04ef      4ff:	48 8b 4c 24 38       	mov    0x38(%rsp),%rcx
04f4      504:	0f 8c 61 ff ff ff    	jl     46b <leaf_cut_from_buffer+0x45b>
04fa      50a:	be 02 00 00 00       	mov    $0x2,%esi
04ff      50f:	4c 89 94 24 a8 00 00 00 	mov    %r10,0xa8(%rsp)
0507      517:	4c 89 5c 24 58       	mov    %r11,0x58(%rsp)
050c      51c:	e8 00 00 00 00       	call   521 <leaf_cut_from_buffer+0x511>	51d: R_X86_64_PLT32	__asan_report_load_n_noabort-0x4
0511      521:	4c 8b 5c 24 58       	mov    0x58(%rsp),%r11
0516      526:	4c 8b 94 24 a8 00 00 00 	mov    0xa8(%rsp),%r10
051e      52e:	4c 8b 4c 24 28       	mov    0x28(%rsp),%r9
0523      533:	48 8b 4c 24 38       	mov    0x38(%rsp),%rcx
0528      538:	4c 8b 44 24 40       	mov    0x40(%rsp),%r8
052d      53d:	48 8b 54 24 60       	mov    0x60(%rsp),%rdx
0532      542:	48 be 00 00 00 00 00 fc ff df 	movabs $0xdffffc0000000000,%rsi
053c      54c:	e9 1a ff ff ff       	jmp    46b <leaf_cut_from_buffer+0x45b>
0541      551:	45 89 dd             	mov    %r11d,%r13d
0544      554:	83 bc 24 98 00 00 00 00 	cmpl   $0x0,0x98(%rsp)
054c      55c:	0f 8e 1b 01 00 00    	jle    67d <leaf_cut_from_buffer+0x66d>
0552      562:	48 8b 44 24 30       	mov    0x30(%rsp),%rax
0557      567:	89 c3                	mov    %eax,%ebx
0559      569:	c1 e3 04             	shl    $0x4,%ebx
055c      56c:	44 01 cb             	add    %r9d,%ebx
055f      56f:	f7 db                	neg    %ebx
0561      571:	44 8b bc 24 98 00 00 00 	mov    0x98(%rsp),%r15d
0569      579:	49 c1 e7 04          	shl    $0x4,%r15
056d      57d:	48 8b 84 24 90 00 00 00 	mov    0x90(%rsp),%rax
0575      585:	4e 8d 24 10          	lea    (%rax,%r10,1),%r12
0579      589:	49 83 c4 0c          	add    $0xc,%r12
057d      58d:	44 01 d0             	add    %r10d,%eax
0580      590:	44 0f b6 d0          	movzbl %al,%r10d
0584      594:	31 ed                	xor    %ebp,%ebp
0586      596:	4d 8d 34 2c          	lea    (%r12,%rbp,1),%r14
058a      59a:	49 8d 04 28          	lea    (%r8,%rbp,1),%rax
058e      59e:	48 83 c0 0c          	add    $0xc,%rax
0592      5a2:	48 c1 e8 03          	shr    $0x3,%rax
0596      5a6:	8a 04 30             	mov    (%rax,%rsi,1),%al
0599      5a9:	84 c0                	test   %al,%al
059b      5ab:	75 28                	jne    5d5 <leaf_cut_from_buffer+0x5c5>
059d      5ad:	49 8d 3c 28          	lea    (%r8,%rbp,1),%rdi
05a1      5b1:	48 83 c7 0d          	add    $0xd,%rdi
05a5      5b5:	48 89 f8             	mov    %rdi,%rax
05a8      5b8:	48 c1 e8 03          	shr    $0x3,%rax
05ac      5bc:	8a 04 30             	mov    (%rax,%rsi,1),%al
05af      5bf:	84 c0                	test   %al,%al
05b1      5c1:	75 66                	jne    629 <leaf_cut_from_buffer+0x619>
05b3      5c3:	66 41 01 1e          	add    %bx,(%r14)
05b7      5c7:	48 83 c5 10          	add    $0x10,%rbp
05bb      5cb:	49 39 ef             	cmp    %rbp,%r15
05be      5ce:	75 c6                	jne    596 <leaf_cut_from_buffer+0x586>
05c0      5d0:	e9 a8 00 00 00       	jmp    67d <leaf_cut_from_buffer+0x66d>
05c5      5d5:	48 89 4c 24 38       	mov    %rcx,0x38(%rsp)
05ca      5da:	41 8d 0c 2a          	lea    (%r10,%rbp,1),%ecx
05ce      5de:	80 c1 0c             	add    $0xc,%cl
05d1      5e1:	80 e1 07             	and    $0x7,%cl
05d4      5e4:	38 c1                	cmp    %al,%cl
05d6      5e6:	48 8b 4c 24 38       	mov    0x38(%rsp),%rcx
05db      5eb:	7c c0                	jl     5ad <leaf_cut_from_buffer+0x59d>
05dd      5ed:	be 02 00 00 00       	mov    $0x2,%esi
05e2      5f2:	4c 89 f7             	mov    %r14,%rdi
05e5      5f5:	48 89 54 24 60       	mov    %rdx,0x60(%rsp)
05ea      5fa:	4c 89 54 24 20       	mov    %r10,0x20(%rsp)
05ef      5ff:	e8 00 00 00 00       	call   604 <leaf_cut_from_buffer+0x5f4>	600: R_X86_64_PLT32	__asan_report_load_n_noabort-0x4
05f4      604:	4c 8b 54 24 20       	mov    0x20(%rsp),%r10
05f9      609:	4c 8b 4c 24 28       	mov    0x28(%rsp),%r9
05fe      60e:	48 8b 4c 24 38       	mov    0x38(%rsp),%rcx
0603      613:	4c 8b 44 24 40       	mov    0x40(%rsp),%r8
0608      618:	48 8b 54 24 60       	mov    0x60(%rsp),%rdx
060d      61d:	48 be 00 00 00 00 00 fc ff df 	movabs $0xdffffc0000000000,%rsi
0617      627:	eb 84                	jmp    5ad <leaf_cut_from_buffer+0x59d>
0619      629:	48 89 4c 24 38       	mov    %rcx,0x38(%rsp)
061e      62e:	41 8d 0c 2a          	lea    (%r10,%rbp,1),%ecx
0622      632:	80 c1 0d             	add    $0xd,%cl
0625      635:	80 e1 07             	and    $0x7,%cl
0628      638:	38 c1                	cmp    %al,%cl
062a      63a:	48 8b 4c 24 38       	mov    0x38(%rsp),%rcx
062f      63f:	7c 82                	jl     5c3 <leaf_cut_from_buffer+0x5b3>
0631      641:	be 02 00 00 00       	mov    $0x2,%esi
0636      646:	48 89 54 24 60       	mov    %rdx,0x60(%rsp)
063b      64b:	4c 89 54 24 20       	mov    %r10,0x20(%rsp)
0640      650:	e8 00 00 00 00       	call   655 <leaf_cut_from_buffer+0x645>	651: R_X86_64_PLT32	__asan_report_load_n_noabort-0x4
0645      655:	4c 8b 54 24 20       	mov    0x20(%rsp),%r10
064a      65a:	4c 8b 4c 24 28       	mov    0x28(%rsp),%r9
064f      65f:	48 8b 4c 24 38       	mov    0x38(%rsp),%rcx
0654      664:	4c 8b 44 24 40       	mov    0x40(%rsp),%r8
0659      669:	48 8b 54 24 60       	mov    0x60(%rsp),%rdx
065e      66e:	48 be 00 00 00 00 00 fc ff df 	movabs $0xdffffc0000000000,%rsi
0668      678:	e9 46 ff ff ff       	jmp    5c3 <leaf_cut_from_buffer+0x5b3>
066d      67d:	8a 04 31             	mov    (%rcx,%rsi,1),%al
0670      680:	84 c0                	test   %al,%al
0672      682:	0f 85 cc 13 00 00    	jne    1a54 <leaf_cut_from_buffer+0x1a44>
0678      688:	4d 01 c5             	add    %r8,%r13
067b      68b:	48 8b 84 24 b0 00 00 00 	mov    0xb0(%rsp),%rax
0683      693:	8a 04 30             	mov    (%rax,%rsi,1),%al
0686      696:	84 c0                	test   %al,%al
0688      698:	48 8b 6c 24 30       	mov    0x30(%rsp),%rbp
068d      69d:	48 89 f3             	mov    %rsi,%rbx
0690      6a0:	4c 8b a4 24 98 00 00 00 	mov    0x98(%rsp),%r12
0698      6a8:	0f 85 e1 13 00 00    	jne    1a8f <leaf_cut_from_buffer+0x1a7f>
069e      6ae:	66 29 2a             	sub    %bp,(%rdx)
06a1      6b1:	4d 89 ef             	mov    %r13,%r15
06a4      6b4:	4d 29 cf             	sub    %r9,%r15
06a7      6b7:	48 63 ed             	movslq %ebp,%rbp
06aa      6ba:	49 63 fc             	movslq %r12d,%rdi
06ad      6bd:	48 c1 e7 04          	shl    $0x4,%rdi
06b1      6c1:	4c 01 c7             	add    %r8,%rdi
06b4      6c4:	48 c1 e5 04          	shl    $0x4,%rbp
06b8      6c8:	48 8d 34 2f          	lea    (%rdi,%rbp,1),%rsi
06bc      6cc:	4c 89 fa             	mov    %r15,%rdx
06bf      6cf:	48 29 f2             	sub    %rsi,%rdx
06c2      6d2:	e8 00 00 00 00       	call   6d7 <leaf_cut_from_buffer+0x6c7>	6d3: R_X86_64_PLT32	__asan_memmove-0x4
06c7      6d7:	48 8b bc 24 80 00 00 00 	mov    0x80(%rsp),%rdi
06cf      6df:	4c 8d 77 01          	lea    0x1(%rdi),%r14
06d3      6e3:	48 89 f8             	mov    %rdi,%rax
06d6      6e6:	48 c1 e8 03          	shr    $0x3,%rax
06da      6ea:	8a 04 18             	mov    (%rax,%rbx,1),%al
06dd      6ed:	84 c0                	test   %al,%al
06df      6ef:	0f 85 d5 13 00 00    	jne    1aca <leaf_cut_from_buffer+0x1aba>
06e5      6f5:	4c 89 f0             	mov    %r14,%rax
06e8      6f8:	48 c1 e8 03          	shr    $0x3,%rax
06ec      6fc:	8a 04 18             	mov    (%rax,%rbx,1),%al
06ef      6ff:	84 c0                	test   %al,%al
06f1      701:	0f 85 f1 13 00 00    	jne    1af8 <leaf_cut_from_buffer+0x1ae8>
06f7      707:	49 29 ef             	sub    %rbp,%r15
06fa      70a:	0f b7 07             	movzwl (%rdi),%eax
06fd      70d:	48 8b 54 24 40       	mov    0x40(%rsp),%rdx
0702      712:	48 01 c2             	add    %rax,%rdx
0705      715:	4c 29 ea             	sub    %r13,%rdx
0708      718:	4c 89 ff             	mov    %r15,%rdi
070b      71b:	4c 89 ee             	mov    %r13,%rsi
070e      71e:	e8 00 00 00 00       	call   723 <leaf_cut_from_buffer+0x713>	71f: R_X86_64_PLT32	__asan_memmove-0x4
0713      723:	03 6c 24 28          	add    0x28(%rsp),%ebp
0717      727:	4c 8b 14 24          	mov    (%rsp),%r10
071b      72b:	4c 8b 44 24 08       	mov    0x8(%rsp),%r8
0720      730:	e9 d3 01 00 00       	jmp    908 <leaf_cut_from_buffer+0x8f8>
0725      735:	4b 8d 1c d9          	lea    (%r9,%r11,8),%rbx
0729      739:	48 83 c3 12          	add    $0x12,%rbx
072d      73d:	4f 8d 34 d9          	lea    (%r9,%r11,8),%r14
0731      741:	49 83 c6 13          	add    $0x13,%r14
0735      745:	48 89 d8             	mov    %rbx,%rax
0738      748:	48 c1 e8 03          	shr    $0x3,%rax
073c      74c:	48 89 44 24 78       	mov    %rax,0x78(%rsp)
0741      751:	8a 04 30             	mov    (%rax,%rsi,1),%al
0744      754:	84 c0                	test   %al,%al
0746      756:	0f 85 c4 13 00 00    	jne    1b20 <leaf_cut_from_buffer+0x1b10>
074c      75c:	4c 89 f0             	mov    %r14,%rax
074f      75f:	48 c1 e8 03          	shr    $0x3,%rax
0753      763:	48 89 44 24 20       	mov    %rax,0x20(%rsp)
0758      768:	8a 04 30             	mov    (%rax,%rsi,1),%al
075b      76b:	84 c0                	test   %al,%al
075d      76d:	0f 85 e0 13 00 00    	jne    1b53 <leaf_cut_from_buffer+0x1b43>
0763      773:	4c 89 74 24 40       	mov    %r14,0x40(%rsp)
0768      778:	48 89 5c 24 48       	mov    %rbx,0x48(%rsp)
076d      77d:	0f b7 1b             	movzwl (%rbx),%ebx
0770      780:	4f 8d 34 d9          	lea    (%r9,%r11,8),%r14
0774      784:	49 83 c6 14          	add    $0x14,%r14
0778      788:	4f 8d 24 d9          	lea    (%r9,%r11,8),%r12
077c      78c:	49 83 c4 15          	add    $0x15,%r12
0780      790:	4d 89 f7             	mov    %r14,%r15
0783      793:	49 c1 ef 03          	shr    $0x3,%r15
0787      797:	41 8a 04 37          	mov    (%r15,%rsi,1),%al
078b      79b:	84 c0                	test   %al,%al
078d      79d:	0f 85 e4 13 00 00    	jne    1b87 <leaf_cut_from_buffer+0x1b77>
0793      7a3:	4c 89 e0             	mov    %r12,%rax
0796      7a6:	4c 89 64 24 28       	mov    %r12,0x28(%rsp)
079b      7ab:	49 c1 ec 03          	shr    $0x3,%r12
079f      7af:	41 8a 04 34          	mov    (%r12,%rsi,1),%al
07a3      7b3:	84 c0                	test   %al,%al
07a5      7b5:	0f 85 f6 13 00 00    	jne    1bb1 <leaf_cut_from_buffer+0x1ba1>
07ab      7bb:	48 89 6c 24 70       	mov    %rbp,0x70(%rsp)
07b0      7c0:	48 8b 84 24 a0 00 00 00 	mov    0xa0(%rsp),%rax
07b8      7c8:	80 3c 30 00          	cmpb   $0x0,(%rax,%rsi,1)
07bc      7cc:	74 12                	je     7e0 <leaf_cut_from_buffer+0x7d0>
07be      7ce:	4c 89 ef             	mov    %r13,%rdi
07c1      7d1:	e8 00 00 00 00       	call   7d6 <leaf_cut_from_buffer+0x7c6>	7d2: R_X86_64_PLT32	__asan_report_load8_noabort-0x4
07c6      7d6:	48 be 00 00 00 00 00 fc ff df 	movabs $0xdffffc0000000000,%rsi
07d0      7e0:	48 8b 4c 24 30       	mov    0x30(%rsp),%rcx
07d5      7e5:	29 cb                	sub    %ecx,%ebx
07d7      7e7:	4d 8b 6d 00          	mov    0x0(%r13),%r13
07db      7eb:	41 8a 04 37          	mov    (%r15,%rsi,1),%al
07df      7ef:	84 c0                	test   %al,%al
07e1      7f1:	49 89 cf             	mov    %rcx,%r15
07e4      7f4:	0f 85 e5 13 00 00    	jne    1bdf <leaf_cut_from_buffer+0x1bcf>
07ea      7fa:	48 63 eb             	movslq %ebx,%rbp
07ed      7fd:	4d 63 ff             	movslq %r15d,%r15
07f0      800:	41 8a 04 34          	mov    (%r12,%rsi,1),%al
07f4      804:	84 c0                	test   %al,%al
07f6      806:	48 89 f3             	mov    %rsi,%rbx
07f9      809:	0f 85 fa 13 00 00    	jne    1c09 <leaf_cut_from_buffer+0x1bf9>
07ff      80f:	41 0f b7 06          	movzwl (%r14),%eax
0803      813:	49 01 c5             	add    %rax,%r13
0806      816:	4b 8d 34 2f          	lea    (%r15,%r13,1),%rsi
080a      81a:	4c 89 ef             	mov    %r13,%rdi
080d      81d:	48 89 ea             	mov    %rbp,%rdx
0810      820:	e8 00 00 00 00       	call   825 <leaf_cut_from_buffer+0x815>	821: R_X86_64_PLT32	__asan_memmove-0x4
0815      825:	48 8b 84 24 c0 00 00 00 	mov    0xc0(%rsp),%rax
081d      82d:	8a 04 18             	mov    (%rax,%rbx,1),%al
0820      830:	84 c0                	test   %al,%al
0822      832:	48 89 de             	mov    %rbx,%rsi
0825      835:	0f 85 f2 13 00 00    	jne    1c2d <leaf_cut_from_buffer+0x1c1d>
082b      83b:	48 8b 84 24 b8 00 00 00 	mov    0xb8(%rsp),%rax
0833      843:	8a 04 30             	mov    (%rax,%rsi,1),%al
0836      846:	84 c0                	test   %al,%al
0838      848:	4c 8b 14 24          	mov    (%rsp),%r10
083c      84c:	4c 8b 44 24 08       	mov    0x8(%rsp),%r8
0841      851:	0f 85 04 14 00 00    	jne    1c5b <leaf_cut_from_buffer+0x1c4b>
0847      857:	48 8b 44 24 50       	mov    0x50(%rsp),%rax
084c      85c:	44 0f b7 18          	movzwl (%rax),%r11d
0850      860:	66 45 85 db          	test   %r11w,%r11w
0854      864:	48 8b 54 24 10       	mov    0x10(%rsp),%rdx
0859      869:	4c 8b 4c 24 18       	mov    0x18(%rsp),%r9
085e      86e:	0f 84 78 02 00 00    	je     aec <leaf_cut_from_buffer+0xadc>
0864      874:	48 89 d7             	mov    %rdx,%rdi
0867      877:	4c 89 ca             	mov    %r9,%rdx
086a      87a:	4d 8d 4a 08          	lea    0x8(%r10),%r9
086e      87e:	49 8d 4a 0f          	lea    0xf(%r10),%rcx
0872      882:	4d 89 cc             	mov    %r9,%r12
0875      885:	49 c1 ec 03          	shr    $0x3,%r12
0879      889:	41 8a 04 34          	mov    (%r12,%rsi,1),%al
087d      88d:	84 c0                	test   %al,%al
087f      88f:	0f 85 8b 15 00 00    	jne    1e20 <leaf_cut_from_buffer+0x1e10>
0885      895:	48 89 cb             	mov    %rcx,%rbx
0888      898:	48 c1 eb 03          	shr    $0x3,%rbx
088c      89c:	8a 04 33             	mov    (%rbx,%rsi,1),%al
088f      89f:	84 c0                	test   %al,%al
0891      8a1:	0f 85 cb 15 00 00    	jne    1e72 <leaf_cut_from_buffer+0x1e62>
0897      8a7:	49 bd 00 00 00 00 00 00 00 20 	movabs $0x2000000000000000,%r13
08a1      8b1:	49 8b 29             	mov    (%r9),%rbp
08a4      8b4:	49 89 ee             	mov    %rbp,%r14
08a7      8b7:	48 b8 00 00 00 00 00 00 00 f0 	movabs $0xf000000000000000,%rax
08b1      8c1:	49 21 c6             	and    %rax,%r14
08b4      8c4:	4d 39 ee             	cmp    %r13,%r14
08b7      8c7:	0f 85 08 08 00 00    	jne    10d5 <leaf_cut_from_buffer+0x10c5>
08bd      8cd:	4c 01 fd             	add    %r15,%rbp
08c0      8d0:	48 b8 ff ff ff ff ff ff ff 0f 	movabs $0xfffffffffffffff,%rax
08ca      8da:	48 21 c5             	and    %rax,%rbp
08cd      8dd:	41 8a 04 34          	mov    (%r12,%rsi,1),%al
08d1      8e1:	84 c0                	test   %al,%al
08d3      8e3:	0f 85 9b 17 00 00    	jne    2084 <leaf_cut_from_buffer+0x2074>
08d9      8e9:	4c 09 ed             	or     %r13,%rbp
08dc      8ec:	8a 04 33             	mov    (%rbx,%rsi,1),%al
08df      8ef:	84 c0                	test   %al,%al
08e1      8f1:	0f 85 cf 17 00 00    	jne    20c6 <leaf_cut_from_buffer+0x20b6>
08e7      8f7:	49 89 29             	mov    %rbp,(%r9)
08ea      8fa:	48 8b 6c 24 30       	mov    0x30(%rsp),%rbp
08ef      8ff:	4c 8b 64 24 70       	mov    0x70(%rsp),%r12
08f4      904:	eb 22                	jmp    928 <leaf_cut_from_buffer+0x918>
08f6      906:	31 ed                	xor    %ebp,%ebp
08f8      908:	45 85 e4             	test   %r12d,%r12d
08fb      90b:	4c 8b 64 24 70       	mov    0x70(%rsp),%r12
0900      910:	48 8b 9c 24 c8 00 00 00 	mov    0xc8(%rsp),%rbx
0908      918:	0f 84 94 00 00 00    	je     9b2 <leaf_cut_from_buffer+0x9a2>
090e      91e:	48 be 00 00 00 00 00 fc ff df 	movabs $0xdffffc0000000000,%rsi
0918      928:	44 89 e0             	mov    %r12d,%eax
091b      92b:	f7 d0                	not    %eax
091d      92d:	44 01 c0             	add    %r8d,%eax
0920      930:	48 98                	cltq
0922      932:	48 8d 04 40          	lea    (%rax,%rax,2),%rax
0926      936:	4d 8d 34 c2          	lea    (%r10,%rax,8),%r14
092a      93a:	49 83 c6 14          	add    $0x14,%r14
092e      93e:	4d 8d 3c c2          	lea    (%r10,%rax,8),%r15
0932      942:	49 83 c7 15          	add    $0x15,%r15
0936      946:	4c 89 f0             	mov    %r14,%rax
0939      949:	48 c1 e8 03          	shr    $0x3,%rax
093d      94d:	8a 04 30             	mov    (%rax,%rsi,1),%al
0940      950:	84 c0                	test   %al,%al
0942      952:	0f 85 99 0a 00 00    	jne    13f1 <leaf_cut_from_buffer+0x13e1>
0948      958:	49 89 ed             	mov    %rbp,%r13
094b      95b:	4c 89 f8             	mov    %r15,%rax
094e      95e:	48 c1 e8 03          	shr    $0x3,%rax
0952      962:	8a 04 30             	mov    (%rax,%rsi,1),%al
0955      965:	84 c0                	test   %al,%al
0957      967:	0f 85 b2 0a 00 00    	jne    141f <leaf_cut_from_buffer+0x140f>
095d      96d:	41 0f b7 1e          	movzwl (%r14),%ebx
0961      971:	0f b7 eb             	movzwl %bx,%ebp
0964      974:	45 85 e4             	test   %r12d,%r12d
0967      977:	0f 84 30 03 00 00    	je     cad <leaf_cut_from_buffer+0xc9d>
096d      97d:	4d 8d 72 fc          	lea    -0x4(%r10),%r14
0971      981:	4d 8d 7a fd          	lea    -0x3(%r10),%r15
0975      985:	4c 89 f0             	mov    %r14,%rax
0978      988:	48 c1 e8 03          	shr    $0x3,%rax
097c      98c:	8a 04 30             	mov    (%rax,%rsi,1),%al
097f      98f:	84 c0                	test   %al,%al
0981      991:	0f 85 20 0c 00 00    	jne    15b7 <leaf_cut_from_buffer+0x15a7>
0987      997:	4c 89 f8             	mov    %r15,%rax
098a      99a:	48 c1 e8 03          	shr    $0x3,%rax
098e      99e:	8a 04 30             	mov    (%rax,%rsi,1),%al
0991      9a1:	84 c0                	test   %al,%al
0993      9a3:	0f 85 38 0c 00 00    	jne    15e1 <leaf_cut_from_buffer+0x15d1>
0999      9a9:	45 0f b7 36          	movzwl (%r14),%r14d
099d      9ad:	e9 29 03 00 00       	jmp    cdb <leaf_cut_from_buffer+0xccb>
09a2      9b2:	45 85 e4             	test   %r12d,%r12d
09a5      9b5:	48 be 00 00 00 00 00 fc ff df 	movabs $0xdffffc0000000000,%rsi
09af      9bf:	48 8b 44 24 10       	mov    0x10(%rsp),%rax
09b4      9c4:	48 8b 4c 24 18       	mov    0x18(%rsp),%rcx
09b9      9c9:	0f 85 45 1a 00 00    	jne    2414 <leaf_cut_from_buffer+0x2404>
09bf      9cf:	48 8b 94 24 a0 00 00 00 	mov    0xa0(%rsp),%rdx
09c7      9d7:	80 3c 32 00          	cmpb   $0x0,(%rdx,%rsi,1)
09cb      9db:	74 25                	je     a02 <leaf_cut_from_buffer+0x9f2>
09cd      9dd:	48 89 df             	mov    %rbx,%rdi
09d0      9e0:	e8 00 00 00 00       	call   9e5 <leaf_cut_from_buffer+0x9d5>	9e1: R_X86_64_PLT32	__asan_report_load8_noabort-0x4
09d5      9e5:	48 8b 4c 24 18       	mov    0x18(%rsp),%rcx
09da      9ea:	48 8b 44 24 10       	mov    0x10(%rsp),%rax
09df      9ef:	4c 8b 44 24 08       	mov    0x8(%rsp),%r8
09e4      9f4:	4c 8b 14 24          	mov    (%rsp),%r10
09e8      9f8:	48 be 00 00 00 00 00 fc ff df 	movabs $0xdffffc0000000000,%rsi
09f2      a02:	48 8b 1b             	mov    (%rbx),%rbx
09f5      a05:	4c 8d 34 c1          	lea    (%rcx,%rax,8),%r14
09f9      a09:	49 83 c6 14          	add    $0x14,%r14
09fd      a0d:	4c 8d 3c c1          	lea    (%rcx,%rax,8),%r15
0a01      a11:	49 83 c7 15          	add    $0x15,%r15
0a05      a15:	4c 89 f0             	mov    %r14,%rax
0a08      a18:	48 c1 e8 03          	shr    $0x3,%rax
0a0c      a1c:	8a 04 30             	mov    (%rax,%rsi,1),%al
0a0f      a1f:	84 c0                	test   %al,%al
0a11      a21:	0f 85 6b 12 00 00    	jne    1c92 <leaf_cut_from_buffer+0x1c82>
0a17      a27:	4c 89 f8             	mov    %r15,%rax
0a1a      a2a:	48 c1 e8 03          	shr    $0x3,%rax
0a1e      a2e:	8a 04 30             	mov    (%rax,%rsi,1),%al
0a21      a31:	84 c0                	test   %al,%al
0a23      a33:	0f 85 8c 12 00 00    	jne    1cc5 <leaf_cut_from_buffer+0x1cb5>
0a29      a39:	41 0f b7 06          	movzwl (%r14),%eax
0a2d      a3d:	4c 8d 34 03          	lea    (%rbx,%rax,1),%r14
0a31      a41:	4c 8d 3c 03          	lea    (%rbx,%rax,1),%r15
0a35      a45:	49 83 c7 03          	add    $0x3,%r15
0a39      a49:	4c 89 f0             	mov    %r14,%rax
0a3c      a4c:	48 c1 e8 03          	shr    $0x3,%rax
0a40      a50:	8a 04 30             	mov    (%rax,%rsi,1),%al
0a43      a53:	84 c0                	test   %al,%al
0a45      a55:	0f 85 9d 12 00 00    	jne    1cf8 <leaf_cut_from_buffer+0x1ce8>
0a4b      a5b:	4c 89 f8             	mov    %r15,%rax
0a4e      a5e:	48 c1 e8 03          	shr    $0x3,%rax
0a52      a62:	8a 04 30             	mov    (%rax,%rsi,1),%al
0a55      a65:	84 c0                	test   %al,%al
0a57      a67:	0f 85 be 12 00 00    	jne    1d2b <leaf_cut_from_buffer+0x1d1b>
0a5d      a6d:	45 8b 2e             	mov    (%r14),%r13d
0a60      a70:	48 8b 84 24 c0 00 00 00 	mov    0xc0(%rsp),%rax
0a68      a78:	8a 04 30             	mov    (%rax,%rsi,1),%al
0a6b      a7b:	84 c0                	test   %al,%al
0a6d      a7d:	0f 85 db 12 00 00    	jne    1d5e <leaf_cut_from_buffer+0x1d4e>
0a73      a83:	48 8b 84 24 b8 00 00 00 	mov    0xb8(%rsp),%rax
0a7b      a8b:	8a 04 30             	mov    (%rax,%rsi,1),%al
0a7e      a8e:	84 c0                	test   %al,%al
0a80      a90:	48 8b 5c 24 50       	mov    0x50(%rsp),%rbx
0a85      a95:	0f 85 fa 12 00 00    	jne    1d95 <leaf_cut_from_buffer+0x1d85>
0a8b      a9b:	66 83 3b 00          	cmpw   $0x0,(%rbx)
0a8f      a9f:	0f 84 92 01 00 00    	je     c37 <leaf_cut_from_buffer+0xc27>
0a95      aa5:	4d 8d 72 08          	lea    0x8(%r10),%r14
0a99      aa9:	4d 8d 7a 0f          	lea    0xf(%r10),%r15
0a9d      aad:	4c 89 f0             	mov    %r14,%rax
0aa0      ab0:	48 c1 e8 03          	shr    $0x3,%rax
0aa4      ab4:	8a 04 30             	mov    (%rax,%rsi,1),%al
0aa7      ab7:	84 c0                	test   %al,%al
0aa9      ab9:	0f 85 02 14 00 00    	jne    1ec1 <leaf_cut_from_buffer+0x1eb1>
0aaf      abf:	4c 89 f8             	mov    %r15,%rax
0ab2      ac2:	48 c1 e8 03          	shr    $0x3,%rax
0ab6      ac6:	8a 04 30             	mov    (%rax,%rsi,1),%al
0ab9      ac9:	84 c0                	test   %al,%al
0abb      acb:	0f 85 23 14 00 00    	jne    1ef4 <leaf_cut_from_buffer+0x1ee4>
0ac1      ad1:	49 8b 06             	mov    (%r14),%rax
0ac4      ad4:	48 b9 00 00 00 00 00 00 00 f0 	movabs $0xf000000000000000,%rcx
0ace      ade:	48 21 c8             	and    %rcx,%rax
0ad1      ae1:	4c 09 e8             	or     %r13,%rax
0ad4      ae4:	49 89 06             	mov    %rax,(%r14)
0ad7      ae7:	e9 7a 01 00 00       	jmp    c66 <leaf_cut_from_buffer+0xc56>
0adc      aec:	49 8d 7a 0c          	lea    0xc(%r10),%rdi
0ae0      af0:	4d 8d 72 0f          	lea    0xf(%r10),%r14
0ae4      af4:	48 89 f8             	mov    %rdi,%rax
0ae7      af7:	48 c1 e8 03          	shr    $0x3,%rax
0aeb      afb:	8a 04 30             	mov    (%rax,%rsi,1),%al
0aee      afe:	84 c0                	test   %al,%al
0af0      b00:	0f 85 21 14 00 00    	jne    1f27 <leaf_cut_from_buffer+0x1f17>
0af6      b06:	4c 89 f0             	mov    %r14,%rax
0af9      b09:	48 c1 e8 03          	shr    $0x3,%rax
0afd      b0d:	8a 04 30             	mov    (%rax,%rsi,1),%al
0b00      b10:	84 c0                	test   %al,%al
0b02      b12:	0f 85 48 14 00 00    	jne    1f60 <leaf_cut_from_buffer+0x1f50>
0b08      b18:	45 8b 6a 0c          	mov    0xc(%r10),%r13d
0b0c      b1c:	49 8d 6a 08          	lea    0x8(%r10),%rbp
0b10      b20:	49 8d 7a 0b          	lea    0xb(%r10),%rdi
0b14      b24:	49 89 ee             	mov    %rbp,%r14
0b17      b27:	49 c1 ee 03          	shr    $0x3,%r14
0b1b      b2b:	41 8a 04 36          	mov    (%r14,%rsi,1),%al
0b1f      b2f:	84 c0                	test   %al,%al
0b21      b31:	0f 85 66 14 00 00    	jne    1f9d <leaf_cut_from_buffer+0x1f8d>
0b27      b37:	49 89 fc             	mov    %rdi,%r12
0b2a      b3a:	49 c1 ec 03          	shr    $0x3,%r12
0b2e      b3e:	41 8a 04 34          	mov    (%r12,%rsi,1),%al
0b32      b42:	84 c0                	test   %al,%al
0b34      b44:	0f 85 95 14 00 00    	jne    1fdf <leaf_cut_from_buffer+0x1fcf>
0b3a      b4a:	8b 5d 00             	mov    0x0(%rbp),%ebx
0b3d      b4d:	41 83 fd ff          	cmp    $0xffffffff,%r13d
0b41      b51:	0f 84 d1 06 00 00    	je     1228 <leaf_cut_from_buffer+0x1218>
0b47      b57:	49 c1 ef 02          	shr    $0x2,%r15
0b4b      b5b:	48 8b 84 24 88 00 00 00 	mov    0x88(%rsp),%rax
0b53      b63:	4c 8d 68 20          	lea    0x20(%rax),%r13
0b57      b67:	4c 89 e8             	mov    %r13,%rax
0b5a      b6a:	48 c1 e8 03          	shr    $0x3,%rax
0b5e      b6e:	80 3c 30 00          	cmpb   $0x0,(%rax,%rsi,1)
0b62      b72:	74 35                	je     ba9 <leaf_cut_from_buffer+0xb99>
0b64      b74:	48 89 6c 24 28       	mov    %rbp,0x28(%rsp)
0b69      b79:	48 89 fd             	mov    %rdi,%rbp
0b6c      b7c:	4c 89 ef             	mov    %r13,%rdi
0b6f      b7f:	e8 00 00 00 00       	call   b84 <leaf_cut_from_buffer+0xb74>	b80: R_X86_64_PLT32	__asan_report_load8_noabort-0x4
0b74      b84:	48 89 ef             	mov    %rbp,%rdi
0b77      b87:	48 8b 6c 24 28       	mov    0x28(%rsp),%rbp
0b7c      b8c:	4c 8b 4c 24 18       	mov    0x18(%rsp),%r9
0b81      b91:	48 8b 54 24 10       	mov    0x10(%rsp),%rdx
0b86      b96:	4c 8b 44 24 08       	mov    0x8(%rsp),%r8
0b8b      b9b:	4c 8b 14 24          	mov    (%rsp),%r10
0b8f      b9f:	48 be 00 00 00 00 00 fc ff df 	movabs $0xdffffc0000000000,%rsi
0b99      ba9:	45 0f af 7d 00       	imul   0x0(%r13),%r15d
0b9e      bae:	41 8a 04 36          	mov    (%r14,%rsi,1),%al
0ba2      bb2:	84 c0                	test   %al,%al
0ba4      bb4:	0f 85 01 17 00 00    	jne    22bb <leaf_cut_from_buffer+0x22ab>
0baa      bba:	44 01 fb             	add    %r15d,%ebx
0bad      bbd:	41 8a 04 34          	mov    (%r12,%rsi,1),%al
0bb1      bc1:	84 c0                	test   %al,%al
0bb3      bc3:	4c 8b 64 24 70       	mov    0x70(%rsp),%r12
0bb8      bc8:	0f 85 2f 17 00 00    	jne    22fd <leaf_cut_from_buffer+0x22ed>
0bbe      bce:	89 5d 00             	mov    %ebx,0x0(%rbp)
0bc1      bd1:	48 8b 44 24 78       	mov    0x78(%rsp),%rax
0bc6      bd6:	8a 04 30             	mov    (%rax,%rsi,1),%al
0bc9      bd9:	84 c0                	test   %al,%al
0bcb      bdb:	0f 85 55 17 00 00    	jne    2336 <leaf_cut_from_buffer+0x2326>
0bd1      be1:	48 8b 44 24 20       	mov    0x20(%rsp),%rax
0bd6      be6:	8a 04 30             	mov    (%rax,%rsi,1),%al
0bd9      be9:	84 c0                	test   %al,%al
0bdb      beb:	48 8b 6c 24 30       	mov    0x30(%rsp),%rbp
0be0      bf0:	0f 84 ba 05 00 00    	je     11b0 <leaf_cut_from_buffer+0x11a0>
0be6      bf6:	48 8b 4c 24 40       	mov    0x40(%rsp),%rcx
0beb      bfb:	80 e1 07             	and    $0x7,%cl
0bee      bfe:	38 c1                	cmp    %al,%cl
0bf0      c00:	0f 8c aa 05 00 00    	jl     11b0 <leaf_cut_from_buffer+0x11a0>
0bf6      c06:	be 02 00 00 00       	mov    $0x2,%esi
0bfb      c0b:	48 8b 7c 24 40       	mov    0x40(%rsp),%rdi
0c00      c10:	e8 00 00 00 00       	call   c15 <leaf_cut_from_buffer+0xc05>	c11: R_X86_64_PLT32	__asan_report_load_n_noabort-0x4
0c05      c15:	4c 8b 4c 24 18       	mov    0x18(%rsp),%r9
0c0a      c1a:	48 8b 54 24 10       	mov    0x10(%rsp),%rdx
0c0f      c1f:	4c 8b 44 24 08       	mov    0x8(%rsp),%r8
0c14      c24:	4c 8b 14 24          	mov    (%rsp),%r10
0c18      c28:	48 be 00 00 00 00 00 fc ff df 	movabs $0xdffffc0000000000,%rsi
0c22      c32:	e9 79 05 00 00       	jmp    11b0 <leaf_cut_from_buffer+0x11a0>
0c27      c37:	4d 8d 72 08          	lea    0x8(%r10),%r14
0c2b      c3b:	4d 8d 7a 0b          	lea    0xb(%r10),%r15
0c2f      c3f:	4c 89 f0             	mov    %r14,%rax
0c32      c42:	48 c1 e8 03          	shr    $0x3,%rax
0c36      c46:	8a 04 30             	mov    (%rax,%rsi,1),%al
0c39      c49:	84 c0                	test   %al,%al
0c3b      c4b:	0f 85 cd 13 00 00    	jne    201e <leaf_cut_from_buffer+0x200e>
0c41      c51:	4c 89 f8             	mov    %r15,%rax
0c44      c54:	48 c1 e8 03          	shr    $0x3,%rax
0c48      c58:	8a 04 30             	mov    (%rax,%rsi,1),%al
0c4b      c5b:	84 c0                	test   %al,%al
0c4d      c5d:	0f 85 ee 13 00 00    	jne    2051 <leaf_cut_from_buffer+0x2041>
0c53      c63:	45 89 2e             	mov    %r13d,(%r14)
0c56      c66:	4b 8d 04 40          	lea    (%r8,%r8,2),%rax
0c5a      c6a:	4d 8d 34 c2          	lea    (%r10,%rax,8),%r14
0c5e      c6e:	49 83 c6 fc          	add    $0xfffffffffffffffc,%r14
0c62      c72:	4d 8d 3c c2          	lea    (%r10,%rax,8),%r15
0c66      c76:	49 83 c7 fd          	add    $0xfffffffffffffffd,%r15
0c6a      c7a:	4c 89 f0             	mov    %r14,%rax
0c6d      c7d:	48 c1 e8 03          	shr    $0x3,%rax
0c71      c81:	8a 04 30             	mov    (%rax,%rsi,1),%al
0c74      c84:	84 c0                	test   %al,%al
0c76      c86:	4c 8b 64 24 70       	mov    0x70(%rsp),%r12
0c7b      c8b:	0f 85 3b 11 00 00    	jne    1dcc <leaf_cut_from_buffer+0x1dbc>
0c81      c91:	49 89 ed             	mov    %rbp,%r13
0c84      c94:	4c 89 f8             	mov    %r15,%rax
0c87      c97:	48 c1 e8 03          	shr    $0x3,%rax
0c8b      c9b:	8a 04 30             	mov    (%rax,%rsi,1),%al
0c8e      c9e:	84 c0                	test   %al,%al
0c90      ca0:	0f 85 50 11 00 00    	jne    1df6 <leaf_cut_from_buffer+0x1de6>
0c96      ca6:	41 0f b7 1e          	movzwl (%r14),%ebx
0c9a      caa:	0f b7 eb             	movzwl %bx,%ebp
0c9d      cad:	48 8b 84 24 88 00 00 00 	mov    0x88(%rsp),%rax
0ca5      cb5:	4c 8d 70 20          	lea    0x20(%rax),%r14
0ca9      cb9:	4c 89 f0             	mov    %r14,%rax
0cac      cbc:	48 c1 e8 03          	shr    $0x3,%rax
0cb0      cc0:	80 3c 30 00          	cmpb   $0x0,(%rax,%rsi,1)
0cb4      cc4:	74 12                	je     cd8 <leaf_cut_from_buffer+0xcc8>
0cb6      cc6:	4c 89 f7             	mov    %r14,%rdi
0cb9      cc9:	e8 00 00 00 00       	call   cce <leaf_cut_from_buffer+0xcbe>	cca: R_X86_64_PLT32	__asan_report_load8_noabort-0x4
0cbe      cce:	48 be 00 00 00 00 00 fc ff df 	movabs $0xdffffc0000000000,%rsi
0cc8      cd8:	4d 8b 36             	mov    (%r14),%r14
0ccb      cdb:	44 01 ed             	add    %r13d,%ebp
0cce      cde:	41 29 ee             	sub    %ebp,%r14d
0cd1      ce1:	48 8b 84 24 a0 00 00 00 	mov    0xa0(%rsp),%rax
0cd9      ce9:	80 3c 30 00          	cmpb   $0x0,(%rax,%rsi,1)
0cdd      ced:	74 17                	je     d06 <leaf_cut_from_buffer+0xcf6>
0cdf      cef:	48 8b bc 24 c8 00 00 00 	mov    0xc8(%rsp),%rdi
0ce7      cf7:	e8 00 00 00 00       	call   cfc <leaf_cut_from_buffer+0xcec>	cf8: R_X86_64_PLT32	__asan_report_load8_noabort-0x4
0cec      cfc:	48 be 00 00 00 00 00 fc ff df 	movabs $0xdffffc0000000000,%rsi
0cf6      d06:	4d 63 f6             	movslq %r14d,%r14
0cf9      d09:	44 0f b7 fb          	movzwl %bx,%r15d
0cfd      d0d:	4c 89 ed             	mov    %r13,%rbp
0d00      d10:	4c 63 ed             	movslq %ebp,%r13
0d03      d13:	48 8b 84 24 a0 00 00 00 	mov    0xa0(%rsp),%rax
0d0b      d1b:	80 3c 30 00          	cmpb   $0x0,(%rax,%rsi,1)
0d0f      d1f:	48 8b 9c 24 c8 00 00 00 	mov    0xc8(%rsp),%rbx
0d17      d27:	74 08                	je     d31 <leaf_cut_from_buffer+0xd21>
0d19      d29:	48 89 df             	mov    %rbx,%rdi
0d1c      d2c:	e8 00 00 00 00       	call   d31 <leaf_cut_from_buffer+0xd21>	d2d: R_X86_64_PLT32	__asan_report_load8_noabort-0x4
0d21      d31:	4c 03 3b             	add    (%rbx),%r15
0d24      d34:	4d 01 fd             	add    %r15,%r13
0d27      d37:	4c 89 ef             	mov    %r13,%rdi
0d2a      d3a:	4c 89 fe             	mov    %r15,%rsi
0d2d      d3d:	4c 89 f2             	mov    %r14,%rdx
0d30      d40:	e8 00 00 00 00       	call   d45 <leaf_cut_from_buffer+0xd35>	d41: R_X86_64_PLT32	__asan_memmove-0x4
0d35      d45:	4c 8b 44 24 10       	mov    0x10(%rsp),%r8
0d3a      d4a:	4c 8b 4c 24 18       	mov    0x18(%rsp),%r9
0d3f      d4f:	4f 8d 34 c1          	lea    (%r9,%r8,8),%r14
0d43      d53:	49 83 c6 12          	add    $0x12,%r14
0d47      d57:	4f 8d 3c c1          	lea    (%r9,%r8,8),%r15
0d4b      d5b:	49 83 c7 13          	add    $0x13,%r15
0d4f      d5f:	4c 89 f0             	mov    %r14,%rax
0d52      d62:	48 c1 e8 03          	shr    $0x3,%rax
0d56      d66:	48 ba 00 00 00 00 00 fc ff df 	movabs $0xdffffc0000000000,%rdx
0d60      d70:	8a 04 10             	mov    (%rax,%rdx,1),%al
0d63      d73:	84 c0                	test   %al,%al
0d65      d75:	0f 85 62 05 00 00    	jne    12dd <leaf_cut_from_buffer+0x12cd>
0d6b      d7b:	4c 89 f8             	mov    %r15,%rax
0d6e      d7e:	48 c1 e8 03          	shr    $0x3,%rax
0d72      d82:	8a 04 10             	mov    (%rax,%rdx,1),%al
0d75      d85:	84 c0                	test   %al,%al
0d77      d87:	4c 89 e3             	mov    %r12,%rbx
0d7a      d8a:	48 8b 34 24          	mov    (%rsp),%rsi
0d7e      d8e:	0f 85 7d 05 00 00    	jne    1311 <leaf_cut_from_buffer+0x1301>
0d84      d94:	66 41 29 2e          	sub    %bp,(%r14)
0d88      d98:	48 8b 84 24 c0 00 00 00 	mov    0xc0(%rsp),%rax
0d90      da0:	8a 04 10             	mov    (%rax,%rdx,1),%al
0d93      da3:	84 c0                	test   %al,%al
0d95      da5:	4c 8b a4 24 98 00 00 00 	mov    0x98(%rsp),%r12
0d9d      dad:	48 8b 7c 24 08       	mov    0x8(%rsp),%rdi
0da2      db2:	0f 85 91 05 00 00    	jne    1349 <leaf_cut_from_buffer+0x1339>
0da8      db8:	48 8b 84 24 b8 00 00 00 	mov    0xb8(%rsp),%rax
0db0      dc0:	8a 04 10             	mov    (%rax,%rdx,1),%al
0db3      dc3:	84 c0                	test   %al,%al
0db5      dc5:	4c 8b 74 24 50       	mov    0x50(%rsp),%r14
0dba      dca:	0f 85 ba 05 00 00    	jne    138a <leaf_cut_from_buffer+0x137a>
0dc0      dd0:	66 41 83 3e 00       	cmpw   $0x0,(%r14)
0dc5      dd5:	74 4b                	je     e22 <leaf_cut_from_buffer+0xe12>
0dc7      dd7:	4c 8d 76 08          	lea    0x8(%rsi),%r14
0dcb      ddb:	4c 8d 7e 0f          	lea    0xf(%rsi),%r15
0dcf      ddf:	4c 89 f0             	mov    %r14,%rax
0dd2      de2:	48 c1 e8 03          	shr    $0x3,%rax
0dd6      de6:	8a 04 10             	mov    (%rax,%rdx,1),%al
0dd9      de9:	84 c0                	test   %al,%al
0ddb      deb:	0f 85 d6 06 00 00    	jne    14c7 <leaf_cut_from_buffer+0x14b7>
0de1      df1:	4c 89 f8             	mov    %r15,%rax
0de4      df4:	48 c1 e8 03          	shr    $0x3,%rax
0de8      df8:	8a 04 10             	mov    (%rax,%rdx,1),%al
0deb      dfb:	84 c0                	test   %al,%al
0ded      dfd:	0f 85 01 07 00 00    	jne    1504 <leaf_cut_from_buffer+0x14f4>
0df3      e03:	48 b8 00 00 00 00 00 00 00 f0 	movabs $0xf000000000000000,%rax
0dfd      e0d:	49 23 06             	and    (%r14),%rax
0e00      e10:	48 b9 ff ff ff ff ff ff ff 0f 	movabs $0xfffffffffffffff,%rcx
0e0a      e1a:	48 ff c1             	inc    %rcx
0e0d      e1d:	48 39 c8             	cmp    %rcx,%rax
0e10      e20:	eb 30                	jmp    e52 <leaf_cut_from_buffer+0xe42>
0e12      e22:	4c 8d 76 0c          	lea    0xc(%rsi),%r14
0e16      e26:	4c 8d 7e 0f          	lea    0xf(%rsi),%r15
0e1a      e2a:	4c 89 f0             	mov    %r14,%rax
0e1d      e2d:	48 c1 e8 03          	shr    $0x3,%rax
0e21      e31:	8a 04 10             	mov    (%rax,%rdx,1),%al
0e24      e34:	84 c0                	test   %al,%al
0e26      e36:	0f 85 46 09 00 00    	jne    1782 <leaf_cut_from_buffer+0x1772>
0e2c      e3c:	4c 89 f8             	mov    %r15,%rax
0e2f      e3f:	48 c1 e8 03          	shr    $0x3,%rax
0e33      e43:	8a 04 10             	mov    (%rax,%rdx,1),%al
0e36      e46:	84 c0                	test   %al,%al
0e38      e48:	0f 85 71 09 00 00    	jne    17bf <leaf_cut_from_buffer+0x17af>
0e3e      e4e:	41 83 3e fe          	cmpl   $0xfffffffe,(%r14)
0e42      e52:	0f 94 c0             	sete   %al
0e45      e55:	45 85 e4             	test   %r12d,%r12d
0e48      e58:	74 3e                	je     e98 <leaf_cut_from_buffer+0xe88>
0e4a      e5a:	84 c0                	test   %al,%al
0e4c      e5c:	74 3a                	je     e98 <leaf_cut_from_buffer+0xe88>
0e4e      e5e:	4f 8d 34 c1          	lea    (%r9,%r8,8),%r14
0e52      e62:	49 83 c6 10          	add    $0x10,%r14
0e56      e66:	4f 8d 3c c1          	lea    (%r9,%r8,8),%r15
0e5a      e6a:	49 83 c7 11          	add    $0x11,%r15
0e5e      e6e:	4c 89 f0             	mov    %r14,%rax
0e61      e71:	48 c1 e8 03          	shr    $0x3,%rax
0e65      e75:	8a 04 10             	mov    (%rax,%rdx,1),%al
0e68      e78:	84 c0                	test   %al,%al
0e6a      e7a:	0f 85 22 08 00 00    	jne    16a2 <leaf_cut_from_buffer+0x1692>
0e70      e80:	4c 89 f8             	mov    %r15,%rax
0e73      e83:	48 c1 e8 03          	shr    $0x3,%rax
0e77      e87:	8a 04 10             	mov    (%rax,%rdx,1),%al
0e7a      e8a:	84 c0                	test   %al,%al
0e7c      e8c:	0f 85 43 08 00 00    	jne    16d5 <leaf_cut_from_buffer+0x16c5>
0e82      e92:	66 41 c7 06 00 00    	movw   $0x0,(%r14)
0e88      e98:	39 df                	cmp    %ebx,%edi
0e8a      e9a:	0f 8e 98 00 00 00    	jle    f38 <leaf_cut_from_buffer+0xf28>
0e90      ea0:	89 fb                	mov    %edi,%ebx
0e92      ea2:	48 2b 9c 24 e0 00 00 00 	sub    0xe0(%rsp),%rbx
0e9a      eaa:	45 31 ff             	xor    %r15d,%r15d
0e9d      ead:	49 63 c7             	movslq %r15d,%rax
0ea0      eb0:	4c 8d 24 40          	lea    (%rax,%rax,2),%r12
0ea4      eb4:	4e 8d 34 e6          	lea    (%rsi,%r12,8),%r14
0ea8      eb8:	49 83 c6 14          	add    $0x14,%r14
0eac      ebc:	4c 89 f0             	mov    %r14,%rax
0eaf      ebf:	48 c1 e8 03          	shr    $0x3,%rax
0eb3      ec3:	8a 04 10             	mov    (%rax,%rdx,1),%al
0eb6      ec6:	84 c0                	test   %al,%al
0eb8      ec8:	75 24                	jne    eee <leaf_cut_from_buffer+0xede>
0eba      eca:	4a 8d 3c e6          	lea    (%rsi,%r12,8),%rdi
0ebe      ece:	48 83 c7 15          	add    $0x15,%rdi
0ec2      ed2:	48 89 f8             	mov    %rdi,%rax
0ec5      ed5:	48 c1 e8 03          	shr    $0x3,%rax
0ec9      ed9:	8a 04 10             	mov    (%rax,%rdx,1),%al
0ecc      edc:	84 c0                	test   %al,%al
0ece      ede:	75 35                	jne    f15 <leaf_cut_from_buffer+0xf05>
0ed0      ee0:	66 41 01 2e          	add    %bp,(%r14)
0ed4      ee4:	49 ff c7             	inc    %r15
0ed7      ee7:	4c 39 fb             	cmp    %r15,%rbx
0eda      eea:	75 c1                	jne    ead <leaf_cut_from_buffer+0xe9d>
0edc      eec:	eb 4a                	jmp    f38 <leaf_cut_from_buffer+0xf28>
0ede      eee:	44 89 f1             	mov    %r14d,%ecx
0ee1      ef1:	80 e1 07             	and    $0x7,%cl
0ee4      ef4:	38 c1                	cmp    %al,%cl
0ee6      ef6:	7c d2                	jl     eca <leaf_cut_from_buffer+0xeba>
0ee8      ef8:	be 02 00 00 00       	mov    $0x2,%esi
0eed      efd:	4c 89 f7             	mov    %r14,%rdi
0ef0      f00:	e8 00 00 00 00       	call   f05 <leaf_cut_from_buffer+0xef5>	f01: R_X86_64_PLT32	__asan_report_load_n_noabort-0x4
0ef5      f05:	48 8b 34 24          	mov    (%rsp),%rsi
0ef9      f09:	48 ba 00 00 00 00 00 fc ff df 	movabs $0xdffffc0000000000,%rdx
0f03      f13:	eb b5                	jmp    eca <leaf_cut_from_buffer+0xeba>
0f05      f15:	89 f9                	mov    %edi,%ecx
0f07      f17:	80 e1 07             	and    $0x7,%cl
0f0a      f1a:	38 c1                	cmp    %al,%cl
0f0c      f1c:	7c c2                	jl     ee0 <leaf_cut_from_buffer+0xed0>
0f0e      f1e:	be 02 00 00 00       	mov    $0x2,%esi
0f13      f23:	e8 00 00 00 00       	call   f28 <leaf_cut_from_buffer+0xf18>	f24: R_X86_64_PLT32	__asan_report_load_n_noabort-0x4
0f18      f28:	48 8b 34 24          	mov    (%rsp),%rsi
0f1c      f2c:	48 ba 00 00 00 00 00 fc ff df 	movabs $0xdffffc0000000000,%rdx
0f26      f36:	eb a8                	jmp    ee0 <leaf_cut_from_buffer+0xed0>
0f28      f38:	48 8b 9c 24 90 00 00 00 	mov    0x90(%rsp),%rbx
0f30      f40:	48 83 c3 04          	add    $0x4,%rbx
0f34      f44:	48 89 d8             	mov    %rbx,%rax
0f37      f47:	48 c1 e8 03          	shr    $0x3,%rax
0f3b      f4b:	8a 04 10             	mov    (%rax,%rdx,1),%al
0f3e      f4e:	84 c0                	test   %al,%al
0f40      f50:	0f 85 75 04 00 00    	jne    13cb <leaf_cut_from_buffer+0x13bb>
0f46      f56:	66 01 2b             	add    %bp,(%rbx)
0f49      f59:	4c 8b b4 24 d0 00 00 00 	mov    0xd0(%rsp),%r14
0f51      f61:	4c 89 f3             	mov    %r14,%rbx
0f54      f64:	48 c1 eb 03          	shr    $0x3,%rbx
0f58      f68:	80 3c 13 00          	cmpb   $0x0,(%rbx,%rdx,1)
0f5c      f6c:	74 08                	je     f76 <leaf_cut_from_buffer+0xf66>
0f5e      f6e:	4c 89 f7             	mov    %r14,%rdi
0f61      f71:	e8 00 00 00 00       	call   f76 <leaf_cut_from_buffer+0xf66>	f72: R_X86_64_PLT32	__asan_report_load8_noabort-0x4
0f66      f76:	49 8b 3e             	mov    (%r14),%rdi
0f69      f79:	48 8b b4 24 88 00 00 00 	mov    0x88(%rsp),%rsi
0f71      f81:	31 d2                	xor    %edx,%edx
0f73      f83:	e8 00 00 00 00       	call   f88 <leaf_cut_from_buffer+0xf78>	f84: R_X86_64_PLT32	do_balance_mark_leaf_dirty-0x4
0f78      f88:	49 83 c6 10          	add    $0x10,%r14
0f7c      f8c:	4d 89 f4             	mov    %r14,%r12
0f7f      f8f:	49 c1 ec 03          	shr    $0x3,%r12
0f83      f93:	48 ba 00 00 00 00 00 fc ff df 	movabs $0xdffffc0000000000,%rdx
0f8d      f9d:	41 80 3c 14 00       	cmpb   $0x0,(%r12,%rdx,1)
0f92      fa2:	74 12                	je     fb6 <leaf_cut_from_buffer+0xfa6>
0f94      fa4:	4c 89 f7             	mov    %r14,%rdi
0f97      fa7:	e8 00 00 00 00       	call   fac <leaf_cut_from_buffer+0xf9c>	fa8: R_X86_64_PLT32	__asan_report_load8_noabort-0x4
0f9c      fac:	48 ba 00 00 00 00 00 fc ff df 	movabs $0xdffffc0000000000,%rdx
0fa6      fb6:	4d 8b 3e             	mov    (%r14),%r15
0fa9      fb9:	4d 85 ff             	test   %r15,%r15
0fac      fbc:	0f 84 ec 00 00 00    	je     10ae <leaf_cut_from_buffer+0x109e>
0fb2      fc2:	49 83 c7 28          	add    $0x28,%r15
0fb6      fc6:	4c 89 f8             	mov    %r15,%rax
0fb9      fc9:	48 c1 e8 03          	shr    $0x3,%rax
0fbd      fcd:	80 3c 10 00          	cmpb   $0x0,(%rax,%rdx,1)
0fc1      fd1:	74 12                	je     fe5 <leaf_cut_from_buffer+0xfd5>
0fc3      fd3:	4c 89 ff             	mov    %r15,%rdi
0fc6      fd6:	e8 00 00 00 00       	call   fdb <leaf_cut_from_buffer+0xfcb>	fd7: R_X86_64_PLT32	__asan_report_load8_noabort-0x4
0fcb      fdb:	48 ba 00 00 00 00 00 fc ff df 	movabs $0xdffffc0000000000,%rdx
0fd5      fe5:	4d 8b 3f             	mov    (%r15),%r15
0fd8      fe8:	4d 8d 6f 18          	lea    0x18(%r15),%r13
0fdc      fec:	49 83 c7 02          	add    $0x2,%r15
0fe0      ff0:	4c 89 f8             	mov    %r15,%rax
0fe3      ff3:	48 c1 e8 03          	shr    $0x3,%rax
0fe7      ff7:	8a 04 10             	mov    (%rax,%rdx,1),%al
0fea      ffa:	84 c0                	test   %al,%al
0fec      ffc:	0f 85 3f 05 00 00    	jne    1541 <leaf_cut_from_buffer+0x1531>
0ff2     1002:	41 0f b7 07          	movzwl (%r15),%eax
0ff6     1006:	c1 e0 04             	shl    $0x4,%eax
0ff9     1009:	49 01 c5             	add    %rax,%r13
0ffc     100c:	48 8b 84 24 d0 00 00 00 	mov    0xd0(%rsp),%rax
1004     1014:	4c 8d 78 18          	lea    0x18(%rax),%r15
1008     1018:	4c 89 f8             	mov    %r15,%rax
100b     101b:	48 c1 e8 03          	shr    $0x3,%rax
100f     101f:	8a 04 10             	mov    (%rax,%rdx,1),%al
1012     1022:	84 c0                	test   %al,%al
1014     1024:	0f 85 3e 05 00 00    	jne    1568 <leaf_cut_from_buffer+0x1558>
101a     102a:	49 63 07             	movslq (%r15),%rax
101d     102d:	4c 8d 3c c5 04 00 00 00 	lea    0x4(,%rax,8),%r15
1025     1035:	4d 01 ef             	add    %r13,%r15
1028     1038:	4c 89 f8             	mov    %r15,%rax
102b     103b:	48 c1 e8 03          	shr    $0x3,%rax
102f     103f:	8a 04 10             	mov    (%rax,%rdx,1),%al
1032     1042:	84 c0                	test   %al,%al
1034     1044:	0f 85 46 05 00 00    	jne    1590 <leaf_cut_from_buffer+0x1580>
103a     104a:	66 41 29 2f          	sub    %bp,(%r15)
103e     104e:	80 3c 13 00          	cmpb   $0x0,(%rbx,%rdx,1)
1042     1052:	48 8b 9c 24 d0 00 00 00 	mov    0xd0(%rsp),%rbx
104a     105a:	74 12                	je     106e <leaf_cut_from_buffer+0x105e>
104c     105c:	48 89 df             	mov    %rbx,%rdi
104f     105f:	e8 00 00 00 00       	call   1064 <leaf_cut_from_buffer+0x1054>	1060: R_X86_64_PLT32	__asan_report_load8_noabort-0x4
1054     1064:	48 ba 00 00 00 00 00 fc ff df 	movabs $0xdffffc0000000000,%rdx
105e     106e:	48 8b 1b             	mov    (%rbx),%rbx
1061     1071:	41 80 3c 14 00       	cmpb   $0x0,(%r12,%rdx,1)
1066     1076:	74 08                	je     1080 <leaf_cut_from_buffer+0x1070>
1068     1078:	4c 89 f7             	mov    %r14,%rdi
106b     107b:	e8 00 00 00 00       	call   1080 <leaf_cut_from_buffer+0x1070>	107c: R_X86_64_PLT32	__asan_report_load8_noabort-0x4
1070     1080:	49 8b 36             	mov    (%r14),%rsi
1073     1083:	48 89 df             	mov    %rbx,%rdi
1076     1086:	31 d2                	xor    %edx,%edx
1078     1088:	48 81 c4 e8 00 00 00 	add    $0xe8,%rsp
107f     108f:	5b                   	pop    %rbx
1080     1090:	41 5c                	pop    %r12
1082     1092:	41 5d                	pop    %r13
1084     1094:	41 5e                	pop    %r14
1086     1096:	41 5f                	pop    %r15
1088     1098:	5d                   	pop    %rbp
1089     1099:	31 c0                	xor    %eax,%eax
108b     109b:	31 c9                	xor    %ecx,%ecx
108d     109d:	45 31 c0             	xor    %r8d,%r8d
1090     10a0:	45 31 c9             	xor    %r9d,%r9d
1093     10a3:	45 31 d2             	xor    %r10d,%r10d
1096     10a6:	45 31 db             	xor    %r11d,%r11d
1099     10a9:	e9 00 00 00 00       	jmp    10ae <leaf_cut_from_buffer+0x109e>	10aa: R_X86_64_PLT32	do_balance_mark_leaf_dirty-0x4
109e     10ae:	48 81 c4 e8 00 00 00 	add    $0xe8,%rsp
10a5     10b5:	5b                   	pop    %rbx
10a6     10b6:	41 5c                	pop    %r12
10a8     10b8:	41 5d                	pop    %r13
10aa     10ba:	41 5e                	pop    %r14
10ac     10bc:	41 5f                	pop    %r15
10ae     10be:	5d                   	pop    %rbp
10af     10bf:	31 c0                	xor    %eax,%eax
10b1     10c1:	31 c9                	xor    %ecx,%ecx
10b3     10c3:	45 31 c0             	xor    %r8d,%r8d
10b6     10c6:	45 31 c9             	xor    %r9d,%r9d
10b9     10c9:	45 31 d2             	xor    %r10d,%r10d
10bc     10cc:	45 31 db             	xor    %r11d,%r11d
10bf     10cf:	2e e9 00 00 00 00    	cs jmp 10d5 <leaf_cut_from_buffer+0x10c5>	10d1: R_X86_64_PLT32	__x86_return_thunk-0x4
10c5     10d5:	49 c1 ef 02          	shr    $0x2,%r15
10c9     10d9:	48 8b 84 24 88 00 00 00 	mov    0x88(%rsp),%rax
10d1     10e1:	4c 8d 68 20          	lea    0x20(%rax),%r13
10d5     10e5:	4c 89 e8             	mov    %r13,%rax
10d8     10e8:	48 c1 e8 03          	shr    $0x3,%rax
10dc     10ec:	80 3c 30 00          	cmpb   $0x0,(%rax,%rsi,1)
10e0     10f0:	74 51                	je     1143 <leaf_cut_from_buffer+0x1133>
10e2     10f2:	4c 89 4c 24 28       	mov    %r9,0x28(%rsp)
10e7     10f7:	4c 89 ef             	mov    %r13,%rdi
10ea     10fa:	66 44 89 9c 24 80 00 00 00 	mov    %r11w,0x80(%rsp)
10f3     1103:	48 89 8c 24 b0 00 00 00 	mov    %rcx,0xb0(%rsp)
10fb     110b:	e8 00 00 00 00       	call   1110 <leaf_cut_from_buffer+0x1100>	110c: R_X86_64_PLT32	__asan_report_load8_noabort-0x4
1100     1110:	48 8b 8c 24 b0 00 00 00 	mov    0xb0(%rsp),%rcx
1108     1118:	44 0f b7 9c 24 80 00 00 00 	movzwl 0x80(%rsp),%r11d
1111     1121:	4c 8b 4c 24 28       	mov    0x28(%rsp),%r9
1116     1126:	48 8b 54 24 18       	mov    0x18(%rsp),%rdx
111b     112b:	48 8b 7c 24 10       	mov    0x10(%rsp),%rdi
1120     1130:	4c 8b 44 24 08       	mov    0x8(%rsp),%r8
1125     1135:	4c 8b 14 24          	mov    (%rsp),%r10
1129     1139:	48 be 00 00 00 00 00 fc ff df 	movabs $0xdffffc0000000000,%rsi
1133     1143:	4d 0f af 7d 00       	imul   0x0(%r13),%r15
1138     1148:	49 01 ef             	add    %rbp,%r15
113b     114b:	48 b8 ff ff ff ff ff ff ff 0f 	movabs $0xfffffffffffffff,%rax
1145     1155:	49 21 c7             	and    %rax,%r15
1148     1158:	41 8a 04 34          	mov    (%r12,%rsi,1),%al
114c     115c:	84 c0                	test   %al,%al
114e     115e:	0f 85 98 0f 00 00    	jne    20fc <leaf_cut_from_buffer+0x20ec>
1154     1164:	4d 09 f7             	or     %r14,%r15
1157     1167:	8a 04 33             	mov    (%rbx,%rsi,1),%al
115a     116a:	84 c0                	test   %al,%al
115c     116c:	48 8b 6c 24 30       	mov    0x30(%rsp),%rbp
1161     1171:	4c 8b 64 24 70       	mov    0x70(%rsp),%r12
1166     1176:	0f 85 d2 0f 00 00    	jne    214e <leaf_cut_from_buffer+0x213e>
116c     117c:	4d 89 39             	mov    %r15,(%r9)
116f     117f:	48 8b 44 24 78       	mov    0x78(%rsp),%rax
1174     1184:	8a 04 30             	mov    (%rax,%rsi,1),%al
1177     1187:	84 c0                	test   %al,%al
1179     1189:	0f 85 0b 10 00 00    	jne    219a <leaf_cut_from_buffer+0x218a>
117f     118f:	48 8b 44 24 20       	mov    0x20(%rsp),%rax
1184     1194:	8a 04 30             	mov    (%rax,%rsi,1),%al
1187     1197:	84 c0                	test   %al,%al
1189     1199:	49 89 d1             	mov    %rdx,%r9
118c     119c:	0f 85 3f 10 00 00    	jne    21e1 <leaf_cut_from_buffer+0x21d1>
1192     11a2:	66 41 83 fb 01       	cmp    $0x1,%r11w
1197     11a7:	0f 84 7b f7 ff ff    	je     928 <leaf_cut_from_buffer+0x918>
119d     11ad:	48 89 fa             	mov    %rdi,%rdx
11a0     11b0:	48 8b 44 24 48       	mov    0x48(%rsp),%rax
11a5     11b5:	0f b7 00             	movzwl (%rax),%eax
11a8     11b8:	39 e8                	cmp    %ebp,%eax
11aa     11ba:	0f 85 68 f7 ff ff    	jne    928 <leaf_cut_from_buffer+0x918>
11b0     11c0:	4d 8d 34 d1          	lea    (%r9,%rdx,8),%r14
11b4     11c4:	49 83 c6 10          	add    $0x10,%r14
11b8     11c8:	4d 8d 3c d1          	lea    (%r9,%rdx,8),%r15
11bc     11cc:	49 83 c7 11          	add    $0x11,%r15
11c0     11d0:	4c 89 f0             	mov    %r14,%rax
11c3     11d3:	48 c1 e8 03          	shr    $0x3,%rax
11c7     11d7:	8a 04 30             	mov    (%rax,%rsi,1),%al
11ca     11da:	84 c0                	test   %al,%al
11cc     11dc:	0f 85 46 10 00 00    	jne    2228 <leaf_cut_from_buffer+0x2218>
11d2     11e2:	4c 89 f8             	mov    %r15,%rax
11d5     11e5:	48 c1 e8 03          	shr    $0x3,%rax
11d9     11e9:	8a 04 30             	mov    (%rax,%rsi,1),%al
11dc     11ec:	84 c0                	test   %al,%al
11de     11ee:	0f 85 67 10 00 00    	jne    225b <leaf_cut_from_buffer+0x224b>
11e4     11f4:	66 41 83 3e 00       	cmpw   $0x0,(%r14)
11e9     11f9:	0f 84 29 f7 ff ff    	je     928 <leaf_cut_from_buffer+0x918>
11ef     11ff:	31 ff                	xor    %edi,%edi
11f1     1201:	48 c7 c6 00 00 00 00 	mov    $0x0,%rsi	1204: R_X86_64_32S	.rodata..str+0x88a0
11f8     1208:	48 c7 c2 00 00 00 00 	mov    $0x0,%rdx	120b: R_X86_64_32S	.rodata.str1.1+0x767b
11ff     120f:	48 c7 c1 00 00 00 00 	mov    $0x0,%rcx	1212: R_X86_64_32S	.rodata..str.37+0x1ba0
1206     1216:	41 b8 ae 04 00 00    	mov    $0x4ae,%r8d
120c     121c:	49 c7 c1 00 00 00 00 	mov    $0x0,%r9	121f: R_X86_64_32S	.rodata.str1.1+0x767b
1213     1223:	e9 7e 11 00 00       	jmp    23a6 <leaf_cut_from_buffer+0x2396>
1218     1228:	41 8a 04 36          	mov    (%r14,%rsi,1),%al
121c     122c:	84 c0                	test   %al,%al
121e     122e:	0f 85 79 11 00 00    	jne    23ad <leaf_cut_from_buffer+0x239d>
1224     1234:	03 5c 24 30          	add    0x30(%rsp),%ebx
1228     1238:	41 8a 04 34          	mov    (%r12,%rsi,1),%al
122c     123c:	84 c0                	test   %al,%al
122e     123e:	4c 8b 64 24 70       	mov    0x70(%rsp),%r12
1233     1243:	0f 85 9c 11 00 00    	jne    23e5 <leaf_cut_from_buffer+0x23d5>
1239     1249:	89 5d 00             	mov    %ebx,0x0(%rbp)
123c     124c:	e9 c4 ef ff ff       	jmp    215 <leaf_cut_from_buffer+0x205>
1241     1251:	89 f9                	mov    %edi,%ecx
1243     1253:	80 e1 07             	and    $0x7,%cl
1246     1256:	fe c1                	inc    %cl
1248     1258:	38 c1                	cmp    %al,%cl
124a     125a:	0f 8c 4f ee ff ff    	jl     af <leaf_cut_from_buffer+0x9f>
1250     1260:	e8 00 00 00 00       	call   1265 <leaf_cut_from_buffer+0x1255>	1261: R_X86_64_PLT32	__asan_report_load2_noabort-0x4
1255     1265:	48 be 00 00 00 00 00 fc ff df 	movabs $0xdffffc0000000000,%rsi
125f     126f:	e9 3b ee ff ff       	jmp    af <leaf_cut_from_buffer+0x9f>
1264     1274:	44 89 f9             	mov    %r15d,%ecx
1267     1277:	80 e1 07             	and    $0x7,%cl
126a     127a:	38 c1                	cmp    %al,%cl
126c     127c:	0f 8c 7a ee ff ff    	jl     fc <leaf_cut_from_buffer+0xec>
1272     1282:	be 02 00 00 00       	mov    $0x2,%esi
1277     1287:	4c 89 ff             	mov    %r15,%rdi
127a     128a:	e8 00 00 00 00       	call   128f <leaf_cut_from_buffer+0x127f>	128b: R_X86_64_PLT32	__asan_report_load_n_noabort-0x4
127f     128f:	48 8b 7c 24 68       	mov    0x68(%rsp),%rdi
1284     1294:	4c 8b 5c 24 10       	mov    0x10(%rsp),%r11
1289     1299:	4c 8b 44 24 08       	mov    0x8(%rsp),%r8
128e     129e:	48 be 00 00 00 00 00 fc ff df 	movabs $0xdffffc0000000000,%rsi
1298     12a8:	e9 4f ee ff ff       	jmp    fc <leaf_cut_from_buffer+0xec>
129d     12ad:	89 f9                	mov    %edi,%ecx
129f     12af:	80 e1 07             	and    $0x7,%cl
12a2     12b2:	38 c1                	cmp    %al,%cl
12a4     12b4:	0f 8c 5c ee ff ff    	jl     116 <leaf_cut_from_buffer+0x106>
12aa     12ba:	be 02 00 00 00       	mov    $0x2,%esi
12af     12bf:	e8 00 00 00 00       	call   12c4 <leaf_cut_from_buffer+0x12b4>	12c0: R_X86_64_PLT32	__asan_report_load_n_noabort-0x4
12b4     12c4:	4c 8b 5c 24 10       	mov    0x10(%rsp),%r11
12b9     12c9:	4c 8b 44 24 08       	mov    0x8(%rsp),%r8
12be     12ce:	48 be 00 00 00 00 00 fc ff df 	movabs $0xdffffc0000000000,%rsi
12c8     12d8:	e9 39 ee ff ff       	jmp    116 <leaf_cut_from_buffer+0x106>
12cd     12dd:	44 89 f1             	mov    %r14d,%ecx
12d0     12e0:	80 e1 07             	and    $0x7,%cl
12d3     12e3:	38 c1                	cmp    %al,%cl
12d5     12e5:	0f 8c 90 fa ff ff    	jl     d7b <leaf_cut_from_buffer+0xd6b>
12db     12eb:	be 02 00 00 00       	mov    $0x2,%esi
12e0     12f0:	4c 89 f7             	mov    %r14,%rdi
12e3     12f3:	e8 00 00 00 00       	call   12f8 <leaf_cut_from_buffer+0x12e8>	12f4: R_X86_64_PLT32	__asan_report_load_n_noabort-0x4
12e8     12f8:	4c 8b 4c 24 18       	mov    0x18(%rsp),%r9
12ed     12fd:	4c 8b 44 24 10       	mov    0x10(%rsp),%r8
12f2     1302:	48 ba 00 00 00 00 00 fc ff df 	movabs $0xdffffc0000000000,%rdx
12fc     130c:	e9 6a fa ff ff       	jmp    d7b <leaf_cut_from_buffer+0xd6b>
1301     1311:	44 89 f9             	mov    %r15d,%ecx
1304     1314:	80 e1 07             	and    $0x7,%cl
1307     1317:	38 c1                	cmp    %al,%cl
1309     1319:	0f 8c 75 fa ff ff    	jl     d94 <leaf_cut_from_buffer+0xd84>
130f     131f:	be 02 00 00 00       	mov    $0x2,%esi
1314     1324:	4c 89 ff             	mov    %r15,%rdi
1317     1327:	e8 00 00 00 00       	call   132c <leaf_cut_from_buffer+0x131c>	1328: R_X86_64_PLT32	__asan_report_load_n_noabort-0x4
131c     132c:	4c 8b 4c 24 18       	mov    0x18(%rsp),%r9
1321     1331:	4c 8b 44 24 10       	mov    0x10(%rsp),%r8
1326     1336:	48 8b 34 24          	mov    (%rsp),%rsi
132a     133a:	48 ba 00 00 00 00 00 fc ff df 	movabs $0xdffffc0000000000,%rdx
1334     1344:	e9 4b fa ff ff       	jmp    d94 <leaf_cut_from_buffer+0xd84>
1339     1349:	48 8b 4c 24 50       	mov    0x50(%rsp),%rcx
133e     134e:	80 e1 07             	and    $0x7,%cl
1341     1351:	38 c1                	cmp    %al,%cl
1343     1353:	0f 8c 5f fa ff ff    	jl     db8 <leaf_cut_from_buffer+0xda8>
1349     1359:	be 02 00 00 00       	mov    $0x2,%esi
134e     135e:	48 8b 7c 24 50       	mov    0x50(%rsp),%rdi
1353     1363:	e8 00 00 00 00       	call   1368 <leaf_cut_from_buffer+0x1358>	1364: R_X86_64_PLT32	__asan_report_load_n_noabort-0x4
1358     1368:	4c 8b 4c 24 18       	mov    0x18(%rsp),%r9
135d     136d:	4c 8b 44 24 10       	mov    0x10(%rsp),%r8
1362     1372:	48 8b 7c 24 08       	mov    0x8(%rsp),%rdi
1367     1377:	48 8b 34 24          	mov    (%rsp),%rsi
136b     137b:	48 ba 00 00 00 00 00 fc ff df 	movabs $0xdffffc0000000000,%rdx
1375     1385:	e9 2e fa ff ff       	jmp    db8 <leaf_cut_from_buffer+0xda8>
137a     138a:	48 8b 4c 24 68       	mov    0x68(%rsp),%rcx
137f     138f:	80 e1 07             	and    $0x7,%cl
1382     1392:	38 c1                	cmp    %al,%cl
1384     1394:	0f 8c 36 fa ff ff    	jl     dd0 <leaf_cut_from_buffer+0xdc0>
138a     139a:	be 02 00 00 00       	mov    $0x2,%esi
138f     139f:	48 8b 7c 24 68       	mov    0x68(%rsp),%rdi
1394     13a4:	e8 00 00 00 00       	call   13a9 <leaf_cut_from_buffer+0x1399>	13a5: R_X86_64_PLT32	__asan_report_load_n_noabort-0x4
1399     13a9:	4c 8b 4c 24 18       	mov    0x18(%rsp),%r9
139e     13ae:	4c 8b 44 24 10       	mov    0x10(%rsp),%r8
13a3     13b3:	48 8b 7c 24 08       	mov    0x8(%rsp),%rdi
13a8     13b8:	48 8b 34 24          	mov    (%rsp),%rsi
13ac     13bc:	48 ba 00 00 00 00 00 fc ff df 	movabs $0xdffffc0000000000,%rdx
13b6     13c6:	e9 05 fa ff ff       	jmp    dd0 <leaf_cut_from_buffer+0xdc0>
13bb     13cb:	89 d9                	mov    %ebx,%ecx
13bd     13cd:	80 e1 07             	and    $0x7,%cl
13c0     13d0:	fe c1                	inc    %cl
13c2     13d2:	38 c1                	cmp    %al,%cl
13c4     13d4:	0f 8c 7c fb ff ff    	jl     f56 <leaf_cut_from_buffer+0xf46>
13ca     13da:	48 89 df             	mov    %rbx,%rdi
13cd     13dd:	e8 00 00 00 00       	call   13e2 <leaf_cut_from_buffer+0x13d2>	13de: R_X86_64_PLT32	__asan_report_load2_noabort-0x4
13d2     13e2:	48 ba 00 00 00 00 00 fc ff df 	movabs $0xdffffc0000000000,%rdx
13dc     13ec:	e9 65 fb ff ff       	jmp    f56 <leaf_cut_from_buffer+0xf46>
13e1     13f1:	44 89 f1             	mov    %r14d,%ecx
13e4     13f4:	80 e1 07             	and    $0x7,%cl
13e7     13f7:	38 c1                	cmp    %al,%cl
13e9     13f9:	0f 8c 59 f5 ff ff    	jl     958 <leaf_cut_from_buffer+0x948>
13ef     13ff:	be 02 00 00 00       	mov    $0x2,%esi
13f4     1404:	4c 89 f7             	mov    %r14,%rdi
13f7     1407:	e8 00 00 00 00       	call   140c <leaf_cut_from_buffer+0x13fc>	1408: R_X86_64_PLT32	__asan_report_load_n_noabort-0x4
13fc     140c:	4c 8b 14 24          	mov    (%rsp),%r10
1400     1410:	48 be 00 00 00 00 00 fc ff df 	movabs $0xdffffc0000000000,%rsi
140a     141a:	e9 39 f5 ff ff       	jmp    958 <leaf_cut_from_buffer+0x948>
140f     141f:	44 89 f9             	mov    %r15d,%ecx
1412     1422:	80 e1 07             	and    $0x7,%cl
1415     1425:	38 c1                	cmp    %al,%cl
1417     1427:	0f 8c 40 f5 ff ff    	jl     96d <leaf_cut_from_buffer+0x95d>
141d     142d:	be 02 00 00 00       	mov    $0x2,%esi
1422     1432:	4c 89 ff             	mov    %r15,%rdi
1425     1435:	e8 00 00 00 00       	call   143a <leaf_cut_from_buffer+0x142a>	1436: R_X86_64_PLT32	__asan_report_load_n_noabort-0x4
142a     143a:	4c 8b 14 24          	mov    (%rsp),%r10
142e     143e:	48 be 00 00 00 00 00 fc ff df 	movabs $0xdffffc0000000000,%rsi
1438     1448:	e9 20 f5 ff ff       	jmp    96d <leaf_cut_from_buffer+0x95d>
143d     144d:	44 89 f1             	mov    %r14d,%ecx
1440     1450:	80 e1 07             	and    $0x7,%cl
1443     1453:	38 c1                	cmp    %al,%cl
1445     1455:	0f 8c 1a ed ff ff    	jl     175 <leaf_cut_from_buffer+0x165>
144b     145b:	be 08 00 00 00       	mov    $0x8,%esi
1450     1460:	4c 89 f7             	mov    %r14,%rdi
1453     1463:	e8 00 00 00 00       	call   1468 <leaf_cut_from_buffer+0x1458>	1464: R_X86_64_PLT32	__asan_report_load_n_noabort-0x4
1458     1468:	4c 8b 4c 24 18       	mov    0x18(%rsp),%r9
145d     146d:	4c 8b 5c 24 10       	mov    0x10(%rsp),%r11
1462     1472:	4c 8b 44 24 08       	mov    0x8(%rsp),%r8
1467     1477:	4c 8b 14 24          	mov    (%rsp),%r10
146b     147b:	48 be 00 00 00 00 00 fc ff df 	movabs $0xdffffc0000000000,%rsi
1475     1485:	e9 eb ec ff ff       	jmp    175 <leaf_cut_from_buffer+0x165>
147a     148a:	44 89 f9             	mov    %r15d,%ecx
147d     148d:	80 e1 07             	and    $0x7,%cl
1480     1490:	38 c1                	cmp    %al,%cl
1482     1492:	0f 8c ef ec ff ff    	jl     187 <leaf_cut_from_buffer+0x177>
1488     1498:	be 08 00 00 00       	mov    $0x8,%esi
148d     149d:	4c 89 ff             	mov    %r15,%rdi
1490     14a0:	e8 00 00 00 00       	call   14a5 <leaf_cut_from_buffer+0x1495>	14a1: R_X86_64_PLT32	__asan_report_load_n_noabort-0x4
1495     14a5:	4c 8b 4c 24 18       	mov    0x18(%rsp),%r9
149a     14aa:	4c 8b 5c 24 10       	mov    0x10(%rsp),%r11
149f     14af:	4c 8b 44 24 08       	mov    0x8(%rsp),%r8
14a4     14b4:	4c 8b 14 24          	mov    (%rsp),%r10
14a8     14b8:	48 be 00 00 00 00 00 fc ff df 	movabs $0xdffffc0000000000,%rsi
14b2     14c2:	e9 c0 ec ff ff       	jmp    187 <leaf_cut_from_buffer+0x177>
14b7     14c7:	44 89 f1             	mov    %r14d,%ecx
14ba     14ca:	80 e1 07             	and    $0x7,%cl
14bd     14cd:	38 c1                	cmp    %al,%cl
14bf     14cf:	0f 8c 1c f9 ff ff    	jl     df1 <leaf_cut_from_buffer+0xde1>
14c5     14d5:	be 08 00 00 00       	mov    $0x8,%esi
14ca     14da:	4c 89 f7             	mov    %r14,%rdi
14cd     14dd:	e8 00 00 00 00       	call   14e2 <leaf_cut_from_buffer+0x14d2>	14de: R_X86_64_PLT32	__asan_report_load_n_noabort-0x4
14d2     14e2:	4c 8b 4c 24 18       	mov    0x18(%rsp),%r9
14d7     14e7:	4c 8b 44 24 10       	mov    0x10(%rsp),%r8
14dc     14ec:	48 8b 7c 24 08       	mov    0x8(%rsp),%rdi
14e1     14f1:	48 8b 34 24          	mov    (%rsp),%rsi
14e5     14f5:	48 ba 00 00 00 00 00 fc ff df 	movabs $0xdffffc0000000000,%rdx
14ef     14ff:	e9 ed f8 ff ff       	jmp    df1 <leaf_cut_from_buffer+0xde1>
14f4     1504:	44 89 f9             	mov    %r15d,%ecx
14f7     1507:	80 e1 07             	and    $0x7,%cl
14fa     150a:	38 c1                	cmp    %al,%cl
14fc     150c:	0f 8c f1 f8 ff ff    	jl     e03 <leaf_cut_from_buffer+0xdf3>
1502     1512:	be 08 00 00 00       	mov    $0x8,%esi
1507     1517:	4c 89 ff             	mov    %r15,%rdi
150a     151a:	e8 00 00 00 00       	call   151f <leaf_cut_from_buffer+0x150f>	151b: R_X86_64_PLT32	__asan_report_load_n_noabort-0x4
150f     151f:	4c 8b 4c 24 18       	mov    0x18(%rsp),%r9
1514     1524:	4c 8b 44 24 10       	mov    0x10(%rsp),%r8
1519     1529:	48 8b 7c 24 08       	mov    0x8(%rsp),%rdi
151e     152e:	48 8b 34 24          	mov    (%rsp),%rsi
1522     1532:	48 ba 00 00 00 00 00 fc ff df 	movabs $0xdffffc0000000000,%rdx
152c     153c:	e9 c2 f8 ff ff       	jmp    e03 <leaf_cut_from_buffer+0xdf3>
1531     1541:	44 89 f9             	mov    %r15d,%ecx
1534     1544:	80 e1 07             	and    $0x7,%cl
1537     1547:	fe c1                	inc    %cl
1539     1549:	38 c1                	cmp    %al,%cl
153b     154b:	0f 8c b1 fa ff ff    	jl     1002 <leaf_cut_from_buffer+0xff2>
1541     1551:	4c 89 ff             	mov    %r15,%rdi
1544     1554:	e8 00 00 00 00       	call   1559 <leaf_cut_from_buffer+0x1549>	1555: R_X86_64_PLT32	__asan_report_load2_noabort-0x4
1549     1559:	48 ba 00 00 00 00 00 fc ff df 	movabs $0xdffffc0000000000,%rdx
1553     1563:	e9 9a fa ff ff       	jmp    1002 <leaf_cut_from_buffer+0xff2>
1558     1568:	44 89 f9             	mov    %r15d,%ecx
155b     156b:	80 e1 07             	and    $0x7,%cl
155e     156e:	80 c1 03             	add    $0x3,%cl
1561     1571:	38 c1                	cmp    %al,%cl
1563     1573:	0f 8c b1 fa ff ff    	jl     102a <leaf_cut_from_buffer+0x101a>
1569     1579:	4c 89 ff             	mov    %r15,%rdi
156c     157c:	e8 00 00 00 00       	call   1581 <leaf_cut_from_buffer+0x1571>	157d: R_X86_64_PLT32	__asan_report_load4_noabort-0x4
1571     1581:	48 ba 00 00 00 00 00 fc ff df 	movabs $0xdffffc0000000000,%rdx
157b     158b:	e9 9a fa ff ff       	jmp    102a <leaf_cut_from_buffer+0x101a>
1580     1590:	44 89 f9             	mov    %r15d,%ecx
1583     1593:	80 e1 07             	and    $0x7,%cl
1586     1596:	fe c1                	inc    %cl
1588     1598:	38 c1                	cmp    %al,%cl
158a     159a:	0f 8c aa fa ff ff    	jl     104a <leaf_cut_from_buffer+0x103a>
1590     15a0:	4c 89 ff             	mov    %r15,%rdi
1593     15a3:	e8 00 00 00 00       	call   15a8 <leaf_cut_from_buffer+0x1598>	15a4: R_X86_64_PLT32	__asan_report_load2_noabort-0x4
1598     15a8:	48 ba 00 00 00 00 00 fc ff df 	movabs $0xdffffc0000000000,%rdx
15a2     15b2:	e9 93 fa ff ff       	jmp    104a <leaf_cut_from_buffer+0x103a>
15a7     15b7:	44 89 f1             	mov    %r14d,%ecx
15aa     15ba:	80 e1 07             	and    $0x7,%cl
15ad     15bd:	38 c1                	cmp    %al,%cl
15af     15bf:	0f 8c d2 f3 ff ff    	jl     997 <leaf_cut_from_buffer+0x987>
15b5     15c5:	be 02 00 00 00       	mov    $0x2,%esi
15ba     15ca:	4c 89 f7             	mov    %r14,%rdi
15bd     15cd:	e8 00 00 00 00       	call   15d2 <leaf_cut_from_buffer+0x15c2>	15ce: R_X86_64_PLT32	__asan_report_load_n_noabort-0x4
15c2     15d2:	48 be 00 00 00 00 00 fc ff df 	movabs $0xdffffc0000000000,%rsi
15cc     15dc:	e9 b6 f3 ff ff       	jmp    997 <leaf_cut_from_buffer+0x987>
15d1     15e1:	44 89 f9             	mov    %r15d,%ecx
15d4     15e4:	80 e1 07             	and    $0x7,%cl
15d7     15e7:	38 c1                	cmp    %al,%cl
15d9     15e9:	0f 8c ba f3 ff ff    	jl     9a9 <leaf_cut_from_buffer+0x999>
15df     15ef:	be 02 00 00 00       	mov    $0x2,%esi
15e4     15f4:	4c 89 ff             	mov    %r15,%rdi
15e7     15f7:	e8 00 00 00 00       	call   15fc <leaf_cut_from_buffer+0x15ec>	15f8: R_X86_64_PLT32	__asan_report_load_n_noabort-0x4
15ec     15fc:	48 be 00 00 00 00 00 fc ff df 	movabs $0xdffffc0000000000,%rsi
15f6     1606:	e9 9e f3 ff ff       	jmp    9a9 <leaf_cut_from_buffer+0x999>
15fb     160b:	49 89 cf             	mov    %rcx,%r15
15fe     160e:	89 d1                	mov    %edx,%ecx
1600     1610:	80 e1 07             	and    $0x7,%cl
1603     1613:	38 c1                	cmp    %al,%cl
1605     1615:	4c 89 f9             	mov    %r15,%rcx
1608     1618:	0f 8c 8a ec ff ff    	jl     2a8 <leaf_cut_from_buffer+0x298>
160e     161e:	be 02 00 00 00       	mov    $0x2,%esi
1613     1623:	48 89 d7             	mov    %rdx,%rdi
1616     1626:	48 89 d3             	mov    %rdx,%rbx
1619     1629:	e8 00 00 00 00       	call   162e <leaf_cut_from_buffer+0x161e>	162a: R_X86_64_PLT32	__asan_report_load_n_noabort-0x4
161e     162e:	4c 89 f9             	mov    %r15,%rcx
1621     1631:	48 89 da             	mov    %rbx,%rdx
1624     1634:	4c 8b 4c 24 18       	mov    0x18(%rsp),%r9
1629     1639:	4c 8b 5c 24 10       	mov    0x10(%rsp),%r11
162e     163e:	4c 8b 44 24 08       	mov    0x8(%rsp),%r8
1633     1643:	4c 8b 14 24          	mov    (%rsp),%r10
1637     1647:	48 be 00 00 00 00 00 fc ff df 	movabs $0xdffffc0000000000,%rsi
1641     1651:	e9 52 ec ff ff       	jmp    2a8 <leaf_cut_from_buffer+0x298>
1646     1656:	49 89 cf             	mov    %rcx,%r15
1649     1659:	44 89 f1             	mov    %r14d,%ecx
164c     165c:	80 e1 07             	and    $0x7,%cl
164f     165f:	38 c1                	cmp    %al,%cl
1651     1661:	4c 89 f9             	mov    %r15,%rcx
1654     1664:	0f 8c 52 ec ff ff    	jl     2bc <leaf_cut_from_buffer+0x2ac>
165a     166a:	be 02 00 00 00       	mov    $0x2,%esi
165f     166f:	4c 89 f7             	mov    %r14,%rdi
1662     1672:	48 89 d3             	mov    %rdx,%rbx
1665     1675:	e8 00 00 00 00       	call   167a <leaf_cut_from_buffer+0x166a>	1676: R_X86_64_PLT32	__asan_report_load_n_noabort-0x4
166a     167a:	4c 89 f9             	mov    %r15,%rcx
166d     167d:	48 89 da             	mov    %rbx,%rdx
1670     1680:	4c 8b 4c 24 18       	mov    0x18(%rsp),%r9
1675     1685:	4c 8b 5c 24 10       	mov    0x10(%rsp),%r11
167a     168a:	4c 8b 44 24 08       	mov    0x8(%rsp),%r8
167f     168f:	4c 8b 14 24          	mov    (%rsp),%r10
1683     1693:	48 be 00 00 00 00 00 fc ff df 	movabs $0xdffffc0000000000,%rsi
168d     169d:	e9 1a ec ff ff       	jmp    2bc <leaf_cut_from_buffer+0x2ac>
1692     16a2:	44 89 f1             	mov    %r14d,%ecx
1695     16a5:	80 e1 07             	and    $0x7,%cl
1698     16a8:	38 c1                	cmp    %al,%cl
169a     16aa:	0f 8c d0 f7 ff ff    	jl     e80 <leaf_cut_from_buffer+0xe70>
16a0     16b0:	be 02 00 00 00       	mov    $0x2,%esi
16a5     16b5:	4c 89 f7             	mov    %r14,%rdi
16a8     16b8:	e8 00 00 00 00       	call   16bd <leaf_cut_from_buffer+0x16ad>	16b9: R_X86_64_PLT32	__asan_report_store_n_noabort-0x4
16ad     16bd:	48 8b 7c 24 08       	mov    0x8(%rsp),%rdi
16b2     16c2:	48 8b 34 24          	mov    (%rsp),%rsi
16b6     16c6:	48 ba 00 00 00 00 00 fc ff df 	movabs $0xdffffc0000000000,%rdx
16c0     16d0:	e9 ab f7 ff ff       	jmp    e80 <leaf_cut_from_buffer+0xe70>
16c5     16d5:	44 89 f9             	mov    %r15d,%ecx
16c8     16d8:	80 e1 07             	and    $0x7,%cl
16cb     16db:	38 c1                	cmp    %al,%cl
16cd     16dd:	0f 8c af f7 ff ff    	jl     e92 <leaf_cut_from_buffer+0xe82>
16d3     16e3:	be 02 00 00 00       	mov    $0x2,%esi
16d8     16e8:	4c 89 ff             	mov    %r15,%rdi
16db     16eb:	e8 00 00 00 00       	call   16f0 <leaf_cut_from_buffer+0x16e0>	16ec: R_X86_64_PLT32	__asan_report_store_n_noabort-0x4
16e0     16f0:	48 8b 7c 24 08       	mov    0x8(%rsp),%rdi
16e5     16f5:	48 8b 34 24          	mov    (%rsp),%rsi
16e9     16f9:	48 ba 00 00 00 00 00 fc ff df 	movabs $0xdffffc0000000000,%rdx
16f3     1703:	e9 8a f7 ff ff       	jmp    e92 <leaf_cut_from_buffer+0xe82>
16f8     1708:	44 89 f1             	mov    %r14d,%ecx
16fb     170b:	80 e1 07             	and    $0x7,%cl
16fe     170e:	38 c1                	cmp    %al,%cl
1700     1710:	0f 8c 23 eb ff ff    	jl     239 <leaf_cut_from_buffer+0x229>
1706     1716:	be 04 00 00 00       	mov    $0x4,%esi
170b     171b:	4c 89 f7             	mov    %r14,%rdi
170e     171e:	e8 00 00 00 00       	call   1723 <leaf_cut_from_buffer+0x1713>	171f: R_X86_64_PLT32	__asan_report_load_n_noabort-0x4
1713     1723:	4c 8b 4c 24 18       	mov    0x18(%rsp),%r9
1718     1728:	4c 8b 5c 24 10       	mov    0x10(%rsp),%r11
171d     172d:	4c 8b 44 24 08       	mov    0x8(%rsp),%r8
1722     1732:	4c 8b 14 24          	mov    (%rsp),%r10
1726     1736:	48 be 00 00 00 00 00 fc ff df 	movabs $0xdffffc0000000000,%rsi
1730     1740:	e9 f4 ea ff ff       	jmp    239 <leaf_cut_from_buffer+0x229>
1735     1745:	44 89 f9             	mov    %r15d,%ecx
1738     1748:	80 e1 07             	and    $0x7,%cl
173b     174b:	38 c1                	cmp    %al,%cl
173d     174d:	0f 8c f8 ea ff ff    	jl     24b <leaf_cut_from_buffer+0x23b>
1743     1753:	be 04 00 00 00       	mov    $0x4,%esi
1748     1758:	4c 89 ff             	mov    %r15,%rdi
174b     175b:	e8 00 00 00 00       	call   1760 <leaf_cut_from_buffer+0x1750>	175c: R_X86_64_PLT32	__asan_report_load_n_noabort-0x4
1750     1760:	4c 8b 4c 24 18       	mov    0x18(%rsp),%r9
1755     1765:	4c 8b 5c 24 10       	mov    0x10(%rsp),%r11
175a     176a:	4c 8b 44 24 08       	mov    0x8(%rsp),%r8
175f     176f:	4c 8b 14 24          	mov    (%rsp),%r10
1763     1773:	48 be 00 00 00 00 00 fc ff df 	movabs $0xdffffc0000000000,%rsi
176d     177d:	e9 c9 ea ff ff       	jmp    24b <leaf_cut_from_buffer+0x23b>
1772     1782:	44 89 f1             	mov    %r14d,%ecx
1775     1785:	80 e1 07             	and    $0x7,%cl
1778     1788:	38 c1                	cmp    %al,%cl
177a     178a:	0f 8c ac f6 ff ff    	jl     e3c <leaf_cut_from_buffer+0xe2c>
1780     1790:	be 04 00 00 00       	mov    $0x4,%esi
1785     1795:	4c 89 f7             	mov    %r14,%rdi
1788     1798:	e8 00 00 00 00       	call   179d <leaf_cut_from_buffer+0x178d>	1799: R_X86_64_PLT32	__asan_report_load_n_noabort-0x4
178d     179d:	4c 8b 4c 24 18       	mov    0x18(%rsp),%r9
1792     17a2:	4c 8b 44 24 10       	mov    0x10(%rsp),%r8
1797     17a7:	48 8b 7c 24 08       	mov    0x8(%rsp),%rdi
179c     17ac:	48 8b 34 24          	mov    (%rsp),%rsi
17a0     17b0:	48 ba 00 00 00 00 00 fc ff df 	movabs $0xdffffc0000000000,%rdx
17aa     17ba:	e9 7d f6 ff ff       	jmp    e3c <leaf_cut_from_buffer+0xe2c>
17af     17bf:	44 89 f9             	mov    %r15d,%ecx
17b2     17c2:	80 e1 07             	and    $0x7,%cl
17b5     17c5:	38 c1                	cmp    %al,%cl
17b7     17c7:	0f 8c 81 f6 ff ff    	jl     e4e <leaf_cut_from_buffer+0xe3e>
17bd     17cd:	be 04 00 00 00       	mov    $0x4,%esi
17c2     17d2:	4c 89 ff             	mov    %r15,%rdi
17c5     17d5:	e8 00 00 00 00       	call   17da <leaf_cut_from_buffer+0x17ca>	17d6: R_X86_64_PLT32	__asan_report_load_n_noabort-0x4
17ca     17da:	4c 8b 4c 24 18       	mov    0x18(%rsp),%r9
17cf     17df:	4c 8b 44 24 10       	mov    0x10(%rsp),%r8
17d4     17e4:	48 8b 7c 24 08       	mov    0x8(%rsp),%rdi
17d9     17e9:	48 8b 34 24          	mov    (%rsp),%rsi
17dd     17ed:	48 ba 00 00 00 00 00 fc ff df 	movabs $0xdffffc0000000000,%rdx
17e7     17f7:	e9 52 f6 ff ff       	jmp    e4e <leaf_cut_from_buffer+0xe3e>
17ec     17fc:	44 89 f1             	mov    %r14d,%ecx
17ef     17ff:	80 e1 07             	and    $0x7,%cl
17f2     1802:	38 c1                	cmp    %al,%cl
17f4     1804:	0f 8c e1 e9 ff ff    	jl     1eb <leaf_cut_from_buffer+0x1db>
17fa     180a:	be 02 00 00 00       	mov    $0x2,%esi
17ff     180f:	4c 89 f7             	mov    %r14,%rdi
1802     1812:	e8 00 00 00 00       	call   1817 <leaf_cut_from_buffer+0x1807>	1813: R_X86_64_PLT32	__asan_report_load_n_noabort-0x4
1807     1817:	4c 8b 44 24 08       	mov    0x8(%rsp),%r8
180c     181c:	4c 8b 14 24          	mov    (%rsp),%r10
1810     1820:	48 be 00 00 00 00 00 fc ff df 	movabs $0xdffffc0000000000,%rsi
181a     182a:	e9 bc e9 ff ff       	jmp    1eb <leaf_cut_from_buffer+0x1db>
181f     182f:	44 89 f9             	mov    %r15d,%ecx
1822     1832:	80 e1 07             	and    $0x7,%cl
1825     1835:	38 c1                	cmp    %al,%cl
1827     1837:	0f 8c c9 e9 ff ff    	jl     206 <leaf_cut_from_buffer+0x1f6>
182d     183d:	be 02 00 00 00       	mov    $0x2,%esi
1832     1842:	4c 89 ff             	mov    %r15,%rdi
1835     1845:	e8 00 00 00 00       	call   184a <leaf_cut_from_buffer+0x183a>	1846: R_X86_64_PLT32	__asan_report_load_n_noabort-0x4
183a     184a:	4c 8b 44 24 08       	mov    0x8(%rsp),%r8
183f     184f:	4c 8b 14 24          	mov    (%rsp),%r10
1843     1853:	48 be 00 00 00 00 00 fc ff df 	movabs $0xdffffc0000000000,%rsi
184d     185d:	e9 a4 e9 ff ff       	jmp    206 <leaf_cut_from_buffer+0x1f6>
1852     1862:	49 89 cf             	mov    %rcx,%r15
1855     1865:	44 89 f1             	mov    %r14d,%ecx
1858     1868:	80 e1 07             	and    $0x7,%cl
185b     186b:	38 c1                	cmp    %al,%cl
185d     186d:	4c 89 f9             	mov    %r15,%rcx
1860     1870:	0f 8c 99 ea ff ff    	jl     30f <leaf_cut_from_buffer+0x2ff>
1866     1876:	be 02 00 00 00       	mov    $0x2,%esi
186b     187b:	89 7c 24 20          	mov    %edi,0x20(%rsp)
186f     187f:	4c 89 f7             	mov    %r14,%rdi
1872     1882:	48 89 d3             	mov    %rdx,%rbx
1875     1885:	e8 00 00 00 00       	call   188a <leaf_cut_from_buffer+0x187a>	1886: R_X86_64_PLT32	__asan_report_load_n_noabort-0x4
187a     188a:	8b 7c 24 20          	mov    0x20(%rsp),%edi
187e     188e:	4c 89 f9             	mov    %r15,%rcx
1881     1891:	48 89 da             	mov    %rbx,%rdx
1884     1894:	4c 8b 4c 24 18       	mov    0x18(%rsp),%r9
1889     1899:	4c 8b 5c 24 10       	mov    0x10(%rsp),%r11
188e     189e:	48 be 00 00 00 00 00 fc ff df 	movabs $0xdffffc0000000000,%rsi
1898     18a8:	e9 62 ea ff ff       	jmp    30f <leaf_cut_from_buffer+0x2ff>
189d     18ad:	49 89 cf             	mov    %rcx,%r15
18a0     18b0:	44 89 e9             	mov    %r13d,%ecx
18a3     18b3:	80 e1 07             	and    $0x7,%cl
18a6     18b6:	38 c1                	cmp    %al,%cl
18a8     18b8:	4c 89 f9             	mov    %r15,%rcx
18ab     18bb:	0f 8c 60 ea ff ff    	jl     321 <leaf_cut_from_buffer+0x311>
18b1     18c1:	be 02 00 00 00       	mov    $0x2,%esi
18b6     18c6:	89 7c 24 20          	mov    %edi,0x20(%rsp)
18ba     18ca:	4c 89 ef             	mov    %r13,%rdi
18bd     18cd:	48 89 d3             	mov    %rdx,%rbx
18c0     18d0:	e8 00 00 00 00       	call   18d5 <leaf_cut_from_buffer+0x18c5>	18d1: R_X86_64_PLT32	__asan_report_load_n_noabort-0x4
18c5     18d5:	8b 7c 24 20          	mov    0x20(%rsp),%edi
18c9     18d9:	4c 89 f9             	mov    %r15,%rcx
18cc     18dc:	48 89 da             	mov    %rbx,%rdx
18cf     18df:	4c 8b 4c 24 18       	mov    0x18(%rsp),%r9
18d4     18e4:	4c 8b 5c 24 10       	mov    0x10(%rsp),%r11
18d9     18e9:	48 be 00 00 00 00 00 fc ff df 	movabs $0xdffffc0000000000,%rsi
18e3     18f3:	e9 29 ea ff ff       	jmp    321 <leaf_cut_from_buffer+0x311>
18e8     18f8:	49 89 cc             	mov    %rcx,%r12
18eb     18fb:	44 89 f1             	mov    %r14d,%ecx
18ee     18fe:	80 e1 07             	and    $0x7,%cl
18f1     1901:	38 c1                	cmp    %al,%cl
18f3     1903:	4c 89 e1             	mov    %r12,%rcx
18f6     1906:	0f 8c 60 ea ff ff    	jl     36c <leaf_cut_from_buffer+0x35c>
18fc     190c:	be 02 00 00 00       	mov    $0x2,%esi
1901     1911:	89 7c 24 20          	mov    %edi,0x20(%rsp)
1905     1915:	4c 89 f7             	mov    %r14,%rdi
1908     1918:	48 89 d3             	mov    %rdx,%rbx
190b     191b:	4d 89 c7             	mov    %r8,%r15
190e     191e:	48 89 6c 24 78       	mov    %rbp,0x78(%rsp)
1913     1923:	4c 89 d5             	mov    %r10,%rbp
1916     1926:	e8 00 00 00 00       	call   192b <leaf_cut_from_buffer+0x191b>	1927: R_X86_64_PLT32	__asan_report_load_n_noabort-0x4
191b     192b:	8b 7c 24 20          	mov    0x20(%rsp),%edi
191f     192f:	49 89 ea             	mov    %rbp,%r10
1922     1932:	48 8b 6c 24 78       	mov    0x78(%rsp),%rbp
1927     1937:	4c 89 e1             	mov    %r12,%rcx
192a     193a:	4d 89 f8             	mov    %r15,%r8
192d     193d:	48 89 da             	mov    %rbx,%rdx
1930     1940:	48 be 00 00 00 00 00 fc ff df 	movabs $0xdffffc0000000000,%rsi
193a     194a:	e9 1d ea ff ff       	jmp    36c <leaf_cut_from_buffer+0x35c>
193f     194f:	49 89 cc             	mov    %rcx,%r12
1942     1952:	44 89 e9             	mov    %r13d,%ecx
1945     1955:	80 e1 07             	and    $0x7,%cl
1948     1958:	38 c1                	cmp    %al,%cl
194a     195a:	4c 89 e1             	mov    %r12,%rcx
194d     195d:	0f 8c 1b ea ff ff    	jl     37e <leaf_cut_from_buffer+0x36e>
1953     1963:	be 02 00 00 00       	mov    $0x2,%esi
1958     1968:	89 7c 24 20          	mov    %edi,0x20(%rsp)
195c     196c:	4c 89 ef             	mov    %r13,%rdi
195f     196f:	48 89 d3             	mov    %rdx,%rbx
1962     1972:	4d 89 c7             	mov    %r8,%r15
1965     1975:	4d 89 d5             	mov    %r10,%r13
1968     1978:	e8 00 00 00 00       	call   197d <leaf_cut_from_buffer+0x196d>	1979: R_X86_64_PLT32	__asan_report_load_n_noabort-0x4
196d     197d:	8b 7c 24 20          	mov    0x20(%rsp),%edi
1971     1981:	4d 89 ea             	mov    %r13,%r10
1974     1984:	4c 89 e1             	mov    %r12,%rcx
1977     1987:	4d 89 f8             	mov    %r15,%r8
197a     198a:	48 89 da             	mov    %rbx,%rdx
197d     198d:	48 be 00 00 00 00 00 fc ff df 	movabs $0xdffffc0000000000,%rsi
1987     1997:	e9 e2 e9 ff ff       	jmp    37e <leaf_cut_from_buffer+0x36e>
198c     199c:	49 89 cc             	mov    %rcx,%r12
198f     199f:	44 89 f1             	mov    %r14d,%ecx
1992     19a2:	80 e1 07             	and    $0x7,%cl
1995     19a5:	38 c1                	cmp    %al,%cl
1997     19a7:	4c 89 e1             	mov    %r12,%rcx
199a     19aa:	0f 8c 02 ea ff ff    	jl     3b2 <leaf_cut_from_buffer+0x3a2>
19a0     19b0:	be 02 00 00 00       	mov    $0x2,%esi
19a5     19b5:	89 7c 24 20          	mov    %edi,0x20(%rsp)
19a9     19b9:	4c 89 f7             	mov    %r14,%rdi
19ac     19bc:	48 89 d3             	mov    %rdx,%rbx
19af     19bf:	4d 89 c7             	mov    %r8,%r15
19b2     19c2:	4d 89 d5             	mov    %r10,%r13
19b5     19c5:	4c 89 5c 24 58       	mov    %r11,0x58(%rsp)
19ba     19ca:	4c 89 4c 24 48       	mov    %r9,0x48(%rsp)
19bf     19cf:	e8 00 00 00 00       	call   19d4 <leaf_cut_from_buffer+0x19c4>	19d0: R_X86_64_PLT32	__asan_report_load_n_noabort-0x4
19c4     19d4:	4c 8b 4c 24 48       	mov    0x48(%rsp),%r9
19c9     19d9:	8b 7c 24 20          	mov    0x20(%rsp),%edi
19cd     19dd:	4c 8b 5c 24 58       	mov    0x58(%rsp),%r11
19d2     19e2:	4d 89 ea             	mov    %r13,%r10
19d5     19e5:	4c 89 e1             	mov    %r12,%rcx
19d8     19e8:	4d 89 f8             	mov    %r15,%r8
19db     19eb:	48 89 da             	mov    %rbx,%rdx
19de     19ee:	48 be 00 00 00 00 00 fc ff df 	movabs $0xdffffc0000000000,%rsi
19e8     19f8:	e9 b5 e9 ff ff       	jmp    3b2 <leaf_cut_from_buffer+0x3a2>
19ed     19fd:	49 89 cc             	mov    %rcx,%r12
19f0     1a00:	44 89 c9             	mov    %r9d,%ecx
19f3     1a03:	80 e1 07             	and    $0x7,%cl
19f6     1a06:	38 c1                	cmp    %al,%cl
19f8     1a08:	4c 89 e1             	mov    %r12,%rcx
19fb     1a0b:	0f 8c b3 e9 ff ff    	jl     3c4 <leaf_cut_from_buffer+0x3b4>
1a01     1a11:	be 02 00 00 00       	mov    $0x2,%esi
1a06     1a16:	89 7c 24 20          	mov    %edi,0x20(%rsp)
1a0a     1a1a:	4c 89 cf             	mov    %r9,%rdi
1a0d     1a1d:	48 89 d3             	mov    %rdx,%rbx
1a10     1a20:	4d 89 c7             	mov    %r8,%r15
1a13     1a23:	4d 89 d5             	mov    %r10,%r13
1a16     1a26:	4c 89 5c 24 58       	mov    %r11,0x58(%rsp)
1a1b     1a2b:	e8 00 00 00 00       	call   1a30 <leaf_cut_from_buffer+0x1a20>	1a2c: R_X86_64_PLT32	__asan_report_load_n_noabort-0x4
1a20     1a30:	8b 7c 24 20          	mov    0x20(%rsp),%edi
1a24     1a34:	4c 8b 5c 24 58       	mov    0x58(%rsp),%r11
1a29     1a39:	4d 89 ea             	mov    %r13,%r10
1a2c     1a3c:	4c 89 e1             	mov    %r12,%rcx
1a2f     1a3f:	4d 89 f8             	mov    %r15,%r8
1a32     1a42:	48 89 da             	mov    %rbx,%rdx
1a35     1a45:	48 be 00 00 00 00 00 fc ff df 	movabs $0xdffffc0000000000,%rsi
1a3f     1a4f:	e9 70 e9 ff ff       	jmp    3c4 <leaf_cut_from_buffer+0x3b4>
1a44     1a54:	89 d1                	mov    %edx,%ecx
1a46     1a56:	80 e1 07             	and    $0x7,%cl
1a49     1a59:	38 c1                	cmp    %al,%cl
1a4b     1a5b:	0f 8c 27 ec ff ff    	jl     688 <leaf_cut_from_buffer+0x678>
1a51     1a61:	be 02 00 00 00       	mov    $0x2,%esi
1a56     1a66:	48 89 d7             	mov    %rdx,%rdi
1a59     1a69:	48 89 d3             	mov    %rdx,%rbx
1a5c     1a6c:	4d 89 c6             	mov    %r8,%r14
1a5f     1a6f:	4d 89 cf             	mov    %r9,%r15
1a62     1a72:	e8 00 00 00 00       	call   1a77 <leaf_cut_from_buffer+0x1a67>	1a73: R_X86_64_PLT32	__asan_report_load_n_noabort-0x4
1a67     1a77:	4d 89 f9             	mov    %r15,%r9
1a6a     1a7a:	4d 89 f0             	mov    %r14,%r8
1a6d     1a7d:	48 89 da             	mov    %rbx,%rdx
1a70     1a80:	48 be 00 00 00 00 00 fc ff df 	movabs $0xdffffc0000000000,%rsi
1a7a     1a8a:	e9 f9 eb ff ff       	jmp    688 <leaf_cut_from_buffer+0x678>
1a7f     1a8f:	48 8b 8c 24 d8 00 00 00 	mov    0xd8(%rsp),%rcx
1a87     1a97:	80 e1 07             	and    $0x7,%cl
1a8a     1a9a:	38 c1                	cmp    %al,%cl
1a8c     1a9c:	0f 8c 0c ec ff ff    	jl     6ae <leaf_cut_from_buffer+0x69e>
1a92     1aa2:	be 02 00 00 00       	mov    $0x2,%esi
1a97     1aa7:	48 8b bc 24 d8 00 00 00 	mov    0xd8(%rsp),%rdi
1a9f     1aaf:	49 89 d6             	mov    %rdx,%r14
1aa2     1ab2:	4d 89 c7             	mov    %r8,%r15
1aa5     1ab5:	e8 00 00 00 00       	call   1aba <leaf_cut_from_buffer+0x1aaa>	1ab6: R_X86_64_PLT32	__asan_report_load_n_noabort-0x4
1aaa     1aba:	4c 8b 4c 24 28       	mov    0x28(%rsp),%r9
1aaf     1abf:	4d 89 f8             	mov    %r15,%r8
1ab2     1ac2:	4c 89 f2             	mov    %r14,%rdx
1ab5     1ac5:	e9 e4 eb ff ff       	jmp    6ae <leaf_cut_from_buffer+0x69e>
1aba     1aca:	89 f9                	mov    %edi,%ecx
1abc     1acc:	80 e1 07             	and    $0x7,%cl
1abf     1acf:	38 c1                	cmp    %al,%cl
1ac1     1ad1:	0f 8c 1e ec ff ff    	jl     6f5 <leaf_cut_from_buffer+0x6e5>
1ac7     1ad7:	be 02 00 00 00       	mov    $0x2,%esi
1acc     1adc:	e8 00 00 00 00       	call   1ae1 <leaf_cut_from_buffer+0x1ad1>	1add: R_X86_64_PLT32	__asan_report_load_n_noabort-0x4
1ad1     1ae1:	48 8b bc 24 80 00 00 00 	mov    0x80(%rsp),%rdi
1ad9     1ae9:	48 bb 00 00 00 00 00 fc ff df 	movabs $0xdffffc0000000000,%rbx
1ae3     1af3:	e9 fd eb ff ff       	jmp    6f5 <leaf_cut_from_buffer+0x6e5>
1ae8     1af8:	44 89 f1             	mov    %r14d,%ecx
1aeb     1afb:	80 e1 07             	and    $0x7,%cl
1aee     1afe:	38 c1                	cmp    %al,%cl
1af0     1b00:	0f 8c 01 ec ff ff    	jl     707 <leaf_cut_from_buffer+0x6f7>
1af6     1b06:	be 02 00 00 00       	mov    $0x2,%esi
1afb     1b0b:	4c 89 f7             	mov    %r14,%rdi
1afe     1b0e:	e8 00 00 00 00       	call   1b13 <leaf_cut_from_buffer+0x1b03>	1b0f: R_X86_64_PLT32	__asan_report_load_n_noabort-0x4
1b03     1b13:	48 8b bc 24 80 00 00 00 	mov    0x80(%rsp),%rdi
1b0b     1b1b:	e9 e7 eb ff ff       	jmp    707 <leaf_cut_from_buffer+0x6f7>
1b10     1b20:	89 d9                	mov    %ebx,%ecx
1b12     1b22:	80 e1 07             	and    $0x7,%cl
1b15     1b25:	38 c1                	cmp    %al,%cl
1b17     1b27:	0f 8c 2f ec ff ff    	jl     75c <leaf_cut_from_buffer+0x74c>
1b1d     1b2d:	be 02 00 00 00       	mov    $0x2,%esi
1b22     1b32:	48 89 df             	mov    %rbx,%rdi
1b25     1b35:	e8 00 00 00 00       	call   1b3a <leaf_cut_from_buffer+0x1b2a>	1b36: R_X86_64_PLT32	__asan_report_load_n_noabort-0x4
1b2a     1b3a:	4c 8b 4c 24 18       	mov    0x18(%rsp),%r9
1b2f     1b3f:	4c 8b 5c 24 10       	mov    0x10(%rsp),%r11
1b34     1b44:	48 be 00 00 00 00 00 fc ff df 	movabs $0xdffffc0000000000,%rsi
1b3e     1b4e:	e9 09 ec ff ff       	jmp    75c <leaf_cut_from_buffer+0x74c>
1b43     1b53:	44 89 f1             	mov    %r14d,%ecx
1b46     1b56:	80 e1 07             	and    $0x7,%cl
1b49     1b59:	38 c1                	cmp    %al,%cl
1b4b     1b5b:	0f 8c 12 ec ff ff    	jl     773 <leaf_cut_from_buffer+0x763>
1b51     1b61:	be 02 00 00 00       	mov    $0x2,%esi
1b56     1b66:	4c 89 f7             	mov    %r14,%rdi
1b59     1b69:	e8 00 00 00 00       	call   1b6e <leaf_cut_from_buffer+0x1b5e>	1b6a: R_X86_64_PLT32	__asan_report_load_n_noabort-0x4
1b5e     1b6e:	4c 8b 4c 24 18       	mov    0x18(%rsp),%r9
1b63     1b73:	4c 8b 5c 24 10       	mov    0x10(%rsp),%r11
1b68     1b78:	48 be 00 00 00 00 00 fc ff df 	movabs $0xdffffc0000000000,%rsi
1b72     1b82:	e9 ec eb ff ff       	jmp    773 <leaf_cut_from_buffer+0x763>
1b77     1b87:	44 89 f1             	mov    %r14d,%ecx
1b7a     1b8a:	80 e1 07             	and    $0x7,%cl
1b7d     1b8d:	38 c1                	cmp    %al,%cl
1b7f     1b8f:	0f 8c 0e ec ff ff    	jl     7a3 <leaf_cut_from_buffer+0x793>
1b85     1b95:	be 02 00 00 00       	mov    $0x2,%esi
1b8a     1b9a:	4c 89 f7             	mov    %r14,%rdi
1b8d     1b9d:	e8 00 00 00 00       	call   1ba2 <leaf_cut_from_buffer+0x1b92>	1b9e: R_X86_64_PLT32	__asan_report_load_n_noabort-0x4
1b92     1ba2:	48 be 00 00 00 00 00 fc ff df 	movabs $0xdffffc0000000000,%rsi
1b9c     1bac:	e9 f2 eb ff ff       	jmp    7a3 <leaf_cut_from_buffer+0x793>
1ba1     1bb1:	48 8b 4c 24 28       	mov    0x28(%rsp),%rcx
1ba6     1bb6:	80 e1 07             	and    $0x7,%cl
1ba9     1bb9:	38 c1                	cmp    %al,%cl
1bab     1bbb:	0f 8c fa eb ff ff    	jl     7bb <leaf_cut_from_buffer+0x7ab>
1bb1     1bc1:	be 02 00 00 00       	mov    $0x2,%esi
1bb6     1bc6:	48 8b 7c 24 28       	mov    0x28(%rsp),%rdi
1bbb     1bcb:	e8 00 00 00 00       	call   1bd0 <leaf_cut_from_buffer+0x1bc0>	1bcc: R_X86_64_PLT32	__asan_report_load_n_noabort-0x4
1bc0     1bd0:	48 be 00 00 00 00 00 fc ff df 	movabs $0xdffffc0000000000,%rsi
1bca     1bda:	e9 dc eb ff ff       	jmp    7bb <leaf_cut_from_buffer+0x7ab>
1bcf     1bdf:	44 89 f1             	mov    %r14d,%ecx
1bd2     1be2:	80 e1 07             	and    $0x7,%cl
1bd5     1be5:	38 c1                	cmp    %al,%cl
1bd7     1be7:	0f 8c 0d ec ff ff    	jl     7fa <leaf_cut_from_buffer+0x7ea>
1bdd     1bed:	be 02 00 00 00       	mov    $0x2,%esi
1be2     1bf2:	4c 89 f7             	mov    %r14,%rdi
1be5     1bf5:	e8 00 00 00 00       	call   1bfa <leaf_cut_from_buffer+0x1bea>	1bf6: R_X86_64_PLT32	__asan_report_load_n_noabort-0x4
1bea     1bfa:	48 be 00 00 00 00 00 fc ff df 	movabs $0xdffffc0000000000,%rsi
1bf4     1c04:	e9 f1 eb ff ff       	jmp    7fa <leaf_cut_from_buffer+0x7ea>
1bf9     1c09:	48 8b 4c 24 28       	mov    0x28(%rsp),%rcx
1bfe     1c0e:	80 e1 07             	and    $0x7,%cl
1c01     1c11:	38 c1                	cmp    %al,%cl
1c03     1c13:	0f 8c f6 eb ff ff    	jl     80f <leaf_cut_from_buffer+0x7ff>
1c09     1c19:	be 02 00 00 00       	mov    $0x2,%esi
1c0e     1c1e:	48 8b 7c 24 28       	mov    0x28(%rsp),%rdi
1c13     1c23:	e8 00 00 00 00       	call   1c28 <leaf_cut_from_buffer+0x1c18>	1c24: R_X86_64_PLT32	__asan_report_load_n_noabort-0x4
1c18     1c28:	e9 e2 eb ff ff       	jmp    80f <leaf_cut_from_buffer+0x7ff>
1c1d     1c2d:	48 8b 4c 24 50       	mov    0x50(%rsp),%rcx
1c22     1c32:	80 e1 07             	and    $0x7,%cl
1c25     1c35:	38 c1                	cmp    %al,%cl
1c27     1c37:	0f 8c fe eb ff ff    	jl     83b <leaf_cut_from_buffer+0x82b>
1c2d     1c3d:	be 02 00 00 00       	mov    $0x2,%esi
1c32     1c42:	48 8b 7c 24 50       	mov    0x50(%rsp),%rdi
1c37     1c47:	e8 00 00 00 00       	call   1c4c <leaf_cut_from_buffer+0x1c3c>	1c48: R_X86_64_PLT32	__asan_report_load_n_noabort-0x4
1c3c     1c4c:	48 be 00 00 00 00 00 fc ff df 	movabs $0xdffffc0000000000,%rsi
1c46     1c56:	e9 e0 eb ff ff       	jmp    83b <leaf_cut_from_buffer+0x82b>
1c4b     1c5b:	48 8b 4c 24 68       	mov    0x68(%rsp),%rcx
1c50     1c60:	80 e1 07             	and    $0x7,%cl
1c53     1c63:	38 c1                	cmp    %al,%cl
1c55     1c65:	0f 8c ec eb ff ff    	jl     857 <leaf_cut_from_buffer+0x847>
1c5b     1c6b:	be 02 00 00 00       	mov    $0x2,%esi
1c60     1c70:	48 8b 7c 24 68       	mov    0x68(%rsp),%rdi
1c65     1c75:	e8 00 00 00 00       	call   1c7a <leaf_cut_from_buffer+0x1c6a>	1c76: R_X86_64_PLT32	__asan_report_load_n_noabort-0x4
1c6a     1c7a:	4c 8b 44 24 08       	mov    0x8(%rsp),%r8
1c6f     1c7f:	4c 8b 14 24          	mov    (%rsp),%r10
1c73     1c83:	48 be 00 00 00 00 00 fc ff df 	movabs $0xdffffc0000000000,%rsi
1c7d     1c8d:	e9 c5 eb ff ff       	jmp    857 <leaf_cut_from_buffer+0x847>
1c82     1c92:	44 89 f1             	mov    %r14d,%ecx
1c85     1c95:	80 e1 07             	and    $0x7,%cl
1c88     1c98:	38 c1                	cmp    %al,%cl
1c8a     1c9a:	0f 8c 87 ed ff ff    	jl     a27 <leaf_cut_from_buffer+0xa17>
1c90     1ca0:	be 02 00 00 00       	mov    $0x2,%esi
1c95     1ca5:	4c 89 f7             	mov    %r14,%rdi
1c98     1ca8:	e8 00 00 00 00       	call   1cad <leaf_cut_from_buffer+0x1c9d>	1ca9: R_X86_64_PLT32	__asan_report_load_n_noabort-0x4
1c9d     1cad:	4c 8b 44 24 08       	mov    0x8(%rsp),%r8
1ca2     1cb2:	4c 8b 14 24          	mov    (%rsp),%r10
1ca6     1cb6:	48 be 00 00 00 00 00 fc ff df 	movabs $0xdffffc0000000000,%rsi
1cb0     1cc0:	e9 62 ed ff ff       	jmp    a27 <leaf_cut_from_buffer+0xa17>
1cb5     1cc5:	44 89 f9             	mov    %r15d,%ecx
1cb8     1cc8:	80 e1 07             	and    $0x7,%cl
1cbb     1ccb:	38 c1                	cmp    %al,%cl
1cbd     1ccd:	0f 8c 66 ed ff ff    	jl     a39 <leaf_cut_from_buffer+0xa29>
1cc3     1cd3:	be 02 00 00 00       	mov    $0x2,%esi
1cc8     1cd8:	4c 89 ff             	mov    %r15,%rdi
1ccb     1cdb:	e8 00 00 00 00       	call   1ce0 <leaf_cut_from_buffer+0x1cd0>	1cdc: R_X86_64_PLT32	__asan_report_load_n_noabort-0x4
1cd0     1ce0:	4c 8b 44 24 08       	mov    0x8(%rsp),%r8
1cd5     1ce5:	4c 8b 14 24          	mov    (%rsp),%r10
1cd9     1ce9:	48 be 00 00 00 00 00 fc ff df 	movabs $0xdffffc0000000000,%rsi
1ce3     1cf3:	e9 41 ed ff ff       	jmp    a39 <leaf_cut_from_buffer+0xa29>
1ce8     1cf8:	44 89 f1             	mov    %r14d,%ecx
1ceb     1cfb:	80 e1 07             	and    $0x7,%cl
1cee     1cfe:	38 c1                	cmp    %al,%cl
1cf0     1d00:	0f 8c 55 ed ff ff    	jl     a5b <leaf_cut_from_buffer+0xa4b>
1cf6     1d06:	be 04 00 00 00       	mov    $0x4,%esi
1cfb     1d0b:	4c 89 f7             	mov    %r14,%rdi
1cfe     1d0e:	e8 00 00 00 00       	call   1d13 <leaf_cut_from_buffer+0x1d03>	1d0f: R_X86_64_PLT32	__asan_report_load_n_noabort-0x4
1d03     1d13:	4c 8b 44 24 08       	mov    0x8(%rsp),%r8
1d08     1d18:	4c 8b 14 24          	mov    (%rsp),%r10
1d0c     1d1c:	48 be 00 00 00 00 00 fc ff df 	movabs $0xdffffc0000000000,%rsi
1d16     1d26:	e9 30 ed ff ff       	jmp    a5b <leaf_cut_from_buffer+0xa4b>
1d1b     1d2b:	44 89 f9             	mov    %r15d,%ecx
1d1e     1d2e:	80 e1 07             	and    $0x7,%cl
1d21     1d31:	38 c1                	cmp    %al,%cl
1d23     1d33:	0f 8c 34 ed ff ff    	jl     a6d <leaf_cut_from_buffer+0xa5d>
1d29     1d39:	be 04 00 00 00       	mov    $0x4,%esi
1d2e     1d3e:	4c 89 ff             	mov    %r15,%rdi
1d31     1d41:	e8 00 00 00 00       	call   1d46 <leaf_cut_from_buffer+0x1d36>	1d42: R_X86_64_PLT32	__asan_report_load_n_noabort-0x4
1d36     1d46:	4c 8b 44 24 08       	mov    0x8(%rsp),%r8
1d3b     1d4b:	4c 8b 14 24          	mov    (%rsp),%r10
1d3f     1d4f:	48 be 00 00 00 00 00 fc ff df 	movabs $0xdffffc0000000000,%rsi
1d49     1d59:	e9 0f ed ff ff       	jmp    a6d <leaf_cut_from_buffer+0xa5d>
1d4e     1d5e:	48 8b 4c 24 50       	mov    0x50(%rsp),%rcx
1d53     1d63:	80 e1 07             	and    $0x7,%cl
1d56     1d66:	38 c1                	cmp    %al,%cl
1d58     1d68:	0f 8c 15 ed ff ff    	jl     a83 <leaf_cut_from_buffer+0xa73>
1d5e     1d6e:	be 02 00 00 00       	mov    $0x2,%esi
1d63     1d73:	48 8b 7c 24 50       	mov    0x50(%rsp),%rdi
1d68     1d78:	e8 00 00 00 00       	call   1d7d <leaf_cut_from_buffer+0x1d6d>	1d79: R_X86_64_PLT32	__asan_report_load_n_noabort-0x4
1d6d     1d7d:	4c 8b 44 24 08       	mov    0x8(%rsp),%r8
1d72     1d82:	4c 8b 14 24          	mov    (%rsp),%r10
1d76     1d86:	48 be 00 00 00 00 00 fc ff df 	movabs $0xdffffc0000000000,%rsi
1d80     1d90:	e9 ee ec ff ff       	jmp    a83 <leaf_cut_from_buffer+0xa73>
1d85     1d95:	48 8b 4c 24 68       	mov    0x68(%rsp),%rcx
1d8a     1d9a:	80 e1 07             	and    $0x7,%cl
1d8d     1d9d:	38 c1                	cmp    %al,%cl
1d8f     1d9f:	0f 8c f6 ec ff ff    	jl     a9b <leaf_cut_from_buffer+0xa8b>
1d95     1da5:	be 02 00 00 00       	mov    $0x2,%esi
1d9a     1daa:	48 8b 7c 24 68       	mov    0x68(%rsp),%rdi
1d9f     1daf:	e8 00 00 00 00       	call   1db4 <leaf_cut_from_buffer+0x1da4>	1db0: R_X86_64_PLT32	__asan_report_load_n_noabort-0x4
1da4     1db4:	4c 8b 44 24 08       	mov    0x8(%rsp),%r8
1da9     1db9:	4c 8b 14 24          	mov    (%rsp),%r10
1dad     1dbd:	48 be 00 00 00 00 00 fc ff df 	movabs $0xdffffc0000000000,%rsi
1db7     1dc7:	e9 cf ec ff ff       	jmp    a9b <leaf_cut_from_buffer+0xa8b>
1dbc     1dcc:	44 89 f1             	mov    %r14d,%ecx
1dbf     1dcf:	80 e1 07             	and    $0x7,%cl
1dc2     1dd2:	38 c1                	cmp    %al,%cl
1dc4     1dd4:	0f 8c b7 ee ff ff    	jl     c91 <leaf_cut_from_buffer+0xc81>
1dca     1dda:	be 02 00 00 00       	mov    $0x2,%esi
1dcf     1ddf:	4c 89 f7             	mov    %r14,%rdi
1dd2     1de2:	e8 00 00 00 00       	call   1de7 <leaf_cut_from_buffer+0x1dd7>	1de3: R_X86_64_PLT32	__asan_report_load_n_noabort-0x4
1dd7     1de7:	48 be 00 00 00 00 00 fc ff df 	movabs $0xdffffc0000000000,%rsi
1de1     1df1:	e9 9b ee ff ff       	jmp    c91 <leaf_cut_from_buffer+0xc81>
1de6     1df6:	44 89 f9             	mov    %r15d,%ecx
1de9     1df9:	80 e1 07             	and    $0x7,%cl
1dec     1dfc:	38 c1                	cmp    %al,%cl
1dee     1dfe:	0f 8c a2 ee ff ff    	jl     ca6 <leaf_cut_from_buffer+0xc96>
1df4     1e04:	be 02 00 00 00       	mov    $0x2,%esi
1df9     1e09:	4c 89 ff             	mov    %r15,%rdi
1dfc     1e0c:	e8 00 00 00 00       	call   1e11 <leaf_cut_from_buffer+0x1e01>	1e0d: R_X86_64_PLT32	__asan_report_load_n_noabort-0x4
1e01     1e11:	48 be 00 00 00 00 00 fc ff df 	movabs $0xdffffc0000000000,%rsi
1e0b     1e1b:	e9 86 ee ff ff       	jmp    ca6 <leaf_cut_from_buffer+0xc96>
1e10     1e20:	49 89 ce             	mov    %rcx,%r14
1e13     1e23:	44 89 c9             	mov    %r9d,%ecx
1e16     1e26:	80 e1 07             	and    $0x7,%cl
1e19     1e29:	38 c1                	cmp    %al,%cl
1e1b     1e2b:	4c 89 f1             	mov    %r14,%rcx
1e1e     1e2e:	0f 8c 61 ea ff ff    	jl     895 <leaf_cut_from_buffer+0x885>
1e24     1e34:	be 08 00 00 00       	mov    $0x8,%esi
1e29     1e39:	4c 89 cb             	mov    %r9,%rbx
1e2c     1e3c:	4c 89 cf             	mov    %r9,%rdi
1e2f     1e3f:	44 89 dd             	mov    %r11d,%ebp
1e32     1e42:	e8 00 00 00 00       	call   1e47 <leaf_cut_from_buffer+0x1e37>	1e43: R_X86_64_PLT32	__asan_report_load_n_noabort-0x4
1e37     1e47:	4c 89 f1             	mov    %r14,%rcx
1e3a     1e4a:	41 89 eb             	mov    %ebp,%r11d
1e3d     1e4d:	49 89 d9             	mov    %rbx,%r9
1e40     1e50:	48 8b 54 24 18       	mov    0x18(%rsp),%rdx
1e45     1e55:	48 8b 7c 24 10       	mov    0x10(%rsp),%rdi
1e4a     1e5a:	4c 8b 44 24 08       	mov    0x8(%rsp),%r8
1e4f     1e5f:	4c 8b 14 24          	mov    (%rsp),%r10
1e53     1e63:	48 be 00 00 00 00 00 fc ff df 	movabs $0xdffffc0000000000,%rsi
1e5d     1e6d:	e9 23 ea ff ff       	jmp    895 <leaf_cut_from_buffer+0x885>
1e62     1e72:	49 89 cd             	mov    %rcx,%r13
1e65     1e75:	80 e1 07             	and    $0x7,%cl
1e68     1e78:	38 c1                	cmp    %al,%cl
1e6a     1e7a:	4c 89 e9             	mov    %r13,%rcx
1e6d     1e7d:	0f 8c 24 ea ff ff    	jl     8a7 <leaf_cut_from_buffer+0x897>
1e73     1e83:	be 08 00 00 00       	mov    $0x8,%esi
1e78     1e88:	4d 89 ce             	mov    %r9,%r14
1e7b     1e8b:	48 89 cf             	mov    %rcx,%rdi
1e7e     1e8e:	44 89 dd             	mov    %r11d,%ebp
1e81     1e91:	e8 00 00 00 00       	call   1e96 <leaf_cut_from_buffer+0x1e86>	1e92: R_X86_64_PLT32	__asan_report_load_n_noabort-0x4
1e86     1e96:	4c 89 e9             	mov    %r13,%rcx
1e89     1e99:	41 89 eb             	mov    %ebp,%r11d
1e8c     1e9c:	4d 89 f1             	mov    %r14,%r9
1e8f     1e9f:	48 8b 54 24 18       	mov    0x18(%rsp),%rdx
1e94     1ea4:	48 8b 7c 24 10       	mov    0x10(%rsp),%rdi
1e99     1ea9:	4c 8b 44 24 08       	mov    0x8(%rsp),%r8
1e9e     1eae:	4c 8b 14 24          	mov    (%rsp),%r10
1ea2     1eb2:	48 be 00 00 00 00 00 fc ff df 	movabs $0xdffffc0000000000,%rsi
1eac     1ebc:	e9 e6 e9 ff ff       	jmp    8a7 <leaf_cut_from_buffer+0x897>
1eb1     1ec1:	44 89 f1             	mov    %r14d,%ecx
1eb4     1ec4:	80 e1 07             	and    $0x7,%cl
1eb7     1ec7:	38 c1                	cmp    %al,%cl
1eb9     1ec9:	0f 8c f0 eb ff ff    	jl     abf <leaf_cut_from_buffer+0xaaf>
1ebf     1ecf:	be 08 00 00 00       	mov    $0x8,%esi
1ec4     1ed4:	4c 89 f7             	mov    %r14,%rdi
1ec7     1ed7:	e8 00 00 00 00       	call   1edc <leaf_cut_from_buffer+0x1ecc>	1ed8: R_X86_64_PLT32	__asan_report_load_n_noabort-0x4
1ecc     1edc:	4c 8b 44 24 08       	mov    0x8(%rsp),%r8
1ed1     1ee1:	4c 8b 14 24          	mov    (%rsp),%r10
1ed5     1ee5:	48 be 00 00 00 00 00 fc ff df 	movabs $0xdffffc0000000000,%rsi
1edf     1eef:	e9 cb eb ff ff       	jmp    abf <leaf_cut_from_buffer+0xaaf>
1ee4     1ef4:	44 89 f9             	mov    %r15d,%ecx
1ee7     1ef7:	80 e1 07             	and    $0x7,%cl
1eea     1efa:	38 c1                	cmp    %al,%cl
1eec     1efc:	0f 8c cf eb ff ff    	jl     ad1 <leaf_cut_from_buffer+0xac1>
1ef2     1f02:	be 08 00 00 00       	mov    $0x8,%esi
1ef7     1f07:	4c 89 ff             	mov    %r15,%rdi
1efa     1f0a:	e8 00 00 00 00       	call   1f0f <leaf_cut_from_buffer+0x1eff>	1f0b: R_X86_64_PLT32	__asan_report_load_n_noabort-0x4
1eff     1f0f:	4c 8b 44 24 08       	mov    0x8(%rsp),%r8
1f04     1f14:	4c 8b 14 24          	mov    (%rsp),%r10
1f08     1f18:	48 be 00 00 00 00 00 fc ff df 	movabs $0xdffffc0000000000,%rsi
1f12     1f22:	e9 aa eb ff ff       	jmp    ad1 <leaf_cut_from_buffer+0xac1>
1f17     1f27:	89 f9                	mov    %edi,%ecx
1f19     1f29:	80 e1 07             	and    $0x7,%cl
1f1c     1f2c:	38 c1                	cmp    %al,%cl
1f1e     1f2e:	0f 8c d2 eb ff ff    	jl     b06 <leaf_cut_from_buffer+0xaf6>
1f24     1f34:	be 04 00 00 00       	mov    $0x4,%esi
1f29     1f39:	e8 00 00 00 00       	call   1f3e <leaf_cut_from_buffer+0x1f2e>	1f3a: R_X86_64_PLT32	__asan_report_load_n_noabort-0x4
1f2e     1f3e:	4c 8b 4c 24 18       	mov    0x18(%rsp),%r9
1f33     1f43:	48 8b 54 24 10       	mov    0x10(%rsp),%rdx
1f38     1f48:	4c 8b 44 24 08       	mov    0x8(%rsp),%r8
1f3d     1f4d:	4c 8b 14 24          	mov    (%rsp),%r10
1f41     1f51:	48 be 00 00 00 00 00 fc ff df 	movabs $0xdffffc0000000000,%rsi
1f4b     1f5b:	e9 a6 eb ff ff       	jmp    b06 <leaf_cut_from_buffer+0xaf6>
1f50     1f60:	44 89 f1             	mov    %r14d,%ecx
1f53     1f63:	80 e1 07             	and    $0x7,%cl
1f56     1f66:	38 c1                	cmp    %al,%cl
1f58     1f68:	0f 8c aa eb ff ff    	jl     b18 <leaf_cut_from_buffer+0xb08>
1f5e     1f6e:	be 04 00 00 00       	mov    $0x4,%esi
1f63     1f73:	4c 89 f7             	mov    %r14,%rdi
1f66     1f76:	e8 00 00 00 00       	call   1f7b <leaf_cut_from_buffer+0x1f6b>	1f77: R_X86_64_PLT32	__asan_report_load_n_noabort-0x4
1f6b     1f7b:	4c 8b 4c 24 18       	mov    0x18(%rsp),%r9
1f70     1f80:	48 8b 54 24 10       	mov    0x10(%rsp),%rdx
1f75     1f85:	4c 8b 44 24 08       	mov    0x8(%rsp),%r8
1f7a     1f8a:	4c 8b 14 24          	mov    (%rsp),%r10
1f7e     1f8e:	48 be 00 00 00 00 00 fc ff df 	movabs $0xdffffc0000000000,%rsi
1f88     1f98:	e9 7b eb ff ff       	jmp    b18 <leaf_cut_from_buffer+0xb08>
1f8d     1f9d:	89 e9                	mov    %ebp,%ecx
1f8f     1f9f:	80 e1 07             	and    $0x7,%cl
1f92     1fa2:	38 c1                	cmp    %al,%cl
1f94     1fa4:	0f 8c 8d eb ff ff    	jl     b37 <leaf_cut_from_buffer+0xb27>
1f9a     1faa:	be 04 00 00 00       	mov    $0x4,%esi
1f9f     1faf:	48 89 fb             	mov    %rdi,%rbx
1fa2     1fb2:	48 89 ef             	mov    %rbp,%rdi
1fa5     1fb5:	e8 00 00 00 00       	call   1fba <leaf_cut_from_buffer+0x1faa>	1fb6: R_X86_64_PLT32	__asan_report_load_n_noabort-0x4
1faa     1fba:	48 89 df             	mov    %rbx,%rdi
1fad     1fbd:	4c 8b 4c 24 18       	mov    0x18(%rsp),%r9
1fb2     1fc2:	48 8b 54 24 10       	mov    0x10(%rsp),%rdx
1fb7     1fc7:	4c 8b 44 24 08       	mov    0x8(%rsp),%r8
1fbc     1fcc:	4c 8b 14 24          	mov    (%rsp),%r10
1fc0     1fd0:	48 be 00 00 00 00 00 fc ff df 	movabs $0xdffffc0000000000,%rsi
1fca     1fda:	e9 58 eb ff ff       	jmp    b37 <leaf_cut_from_buffer+0xb27>
1fcf     1fdf:	89 f9                	mov    %edi,%ecx
1fd1     1fe1:	80 e1 07             	and    $0x7,%cl
1fd4     1fe4:	38 c1                	cmp    %al,%cl
1fd6     1fe6:	0f 8c 5e eb ff ff    	jl     b4a <leaf_cut_from_buffer+0xb3a>
1fdc     1fec:	be 04 00 00 00       	mov    $0x4,%esi
1fe1     1ff1:	48 89 fb             	mov    %rdi,%rbx
1fe4     1ff4:	e8 00 00 00 00       	call   1ff9 <leaf_cut_from_buffer+0x1fe9>	1ff5: R_X86_64_PLT32	__asan_report_load_n_noabort-0x4
1fe9     1ff9:	48 89 df             	mov    %rbx,%rdi
1fec     1ffc:	4c 8b 4c 24 18       	mov    0x18(%rsp),%r9
1ff1     2001:	48 8b 54 24 10       	mov    0x10(%rsp),%rdx
1ff6     2006:	4c 8b 44 24 08       	mov    0x8(%rsp),%r8
1ffb     200b:	4c 8b 14 24          	mov    (%rsp),%r10
1fff     200f:	48 be 00 00 00 00 00 fc ff df 	movabs $0xdffffc0000000000,%rsi
2009     2019:	e9 2c eb ff ff       	jmp    b4a <leaf_cut_from_buffer+0xb3a>
200e     201e:	44 89 f1             	mov    %r14d,%ecx
2011     2021:	80 e1 07             	and    $0x7,%cl
2014     2024:	38 c1                	cmp    %al,%cl
2016     2026:	0f 8c 25 ec ff ff    	jl     c51 <leaf_cut_from_buffer+0xc41>
201c     202c:	be 04 00 00 00       	mov    $0x4,%esi
2021     2031:	4c 89 f7             	mov    %r14,%rdi
2024     2034:	e8 00 00 00 00       	call   2039 <leaf_cut_from_buffer+0x2029>	2035: R_X86_64_PLT32	__asan_report_store_n_noabort-0x4
2029     2039:	4c 8b 44 24 08       	mov    0x8(%rsp),%r8
202e     203e:	4c 8b 14 24          	mov    (%rsp),%r10
2032     2042:	48 be 00 00 00 00 00 fc ff df 	movabs $0xdffffc0000000000,%rsi
203c     204c:	e9 00 ec ff ff       	jmp    c51 <leaf_cut_from_buffer+0xc41>
2041     2051:	44 89 f9             	mov    %r15d,%ecx
2044     2054:	80 e1 07             	and    $0x7,%cl
2047     2057:	38 c1                	cmp    %al,%cl
2049     2059:	0f 8c 04 ec ff ff    	jl     c63 <leaf_cut_from_buffer+0xc53>
204f     205f:	be 04 00 00 00       	mov    $0x4,%esi
2054     2064:	4c 89 ff             	mov    %r15,%rdi
2057     2067:	e8 00 00 00 00       	call   206c <leaf_cut_from_buffer+0x205c>	2068: R_X86_64_PLT32	__asan_report_store_n_noabort-0x4
205c     206c:	4c 8b 44 24 08       	mov    0x8(%rsp),%r8
2061     2071:	4c 8b 14 24          	mov    (%rsp),%r10
2065     2075:	48 be 00 00 00 00 00 fc ff df 	movabs $0xdffffc0000000000,%rsi
206f     207f:	e9 df eb ff ff       	jmp    c63 <leaf_cut_from_buffer+0xc53>
2074     2084:	49 89 cf             	mov    %rcx,%r15
2077     2087:	44 89 c9             	mov    %r9d,%ecx
207a     208a:	80 e1 07             	and    $0x7,%cl
207d     208d:	38 c1                	cmp    %al,%cl
207f     208f:	4c 89 f9             	mov    %r15,%rcx
2082     2092:	0f 8c 51 e8 ff ff    	jl     8e9 <leaf_cut_from_buffer+0x8d9>
2088     2098:	be 08 00 00 00       	mov    $0x8,%esi
208d     209d:	4d 89 ce             	mov    %r9,%r14
2090     20a0:	4c 89 cf             	mov    %r9,%rdi
2093     20a3:	e8 00 00 00 00       	call   20a8 <leaf_cut_from_buffer+0x2098>	20a4: R_X86_64_PLT32	__asan_report_store_n_noabort-0x4
2098     20a8:	4c 89 f9             	mov    %r15,%rcx
209b     20ab:	4d 89 f1             	mov    %r14,%r9
209e     20ae:	4c 8b 44 24 08       	mov    0x8(%rsp),%r8
20a3     20b3:	4c 8b 14 24          	mov    (%rsp),%r10
20a7     20b7:	48 be 00 00 00 00 00 fc ff df 	movabs $0xdffffc0000000000,%rsi
20b1     20c1:	e9 23 e8 ff ff       	jmp    8e9 <leaf_cut_from_buffer+0x8d9>
20b6     20c6:	48 89 cf             	mov    %rcx,%rdi
20b9     20c9:	80 e1 07             	and    $0x7,%cl
20bc     20cc:	38 c1                	cmp    %al,%cl
20be     20ce:	0f 8c 23 e8 ff ff    	jl     8f7 <leaf_cut_from_buffer+0x8e7>
20c4     20d4:	be 08 00 00 00       	mov    $0x8,%esi
20c9     20d9:	4c 89 cb             	mov    %r9,%rbx
20cc     20dc:	e8 00 00 00 00       	call   20e1 <leaf_cut_from_buffer+0x20d1>	20dd: R_X86_64_PLT32	__asan_report_store_n_noabort-0x4
20d1     20e1:	49 89 d9             	mov    %rbx,%r9
20d4     20e4:	4c 8b 44 24 08       	mov    0x8(%rsp),%r8
20d9     20e9:	4c 8b 14 24          	mov    (%rsp),%r10
20dd     20ed:	48 be 00 00 00 00 00 fc ff df 	movabs $0xdffffc0000000000,%rsi
20e7     20f7:	e9 fb e7 ff ff       	jmp    8f7 <leaf_cut_from_buffer+0x8e7>
20ec     20fc:	49 89 cd             	mov    %rcx,%r13
20ef     20ff:	44 89 c9             	mov    %r9d,%ecx
20f2     2102:	80 e1 07             	and    $0x7,%cl
20f5     2105:	38 c1                	cmp    %al,%cl
20f7     2107:	4c 89 e9             	mov    %r13,%rcx
20fa     210a:	0f 8c 54 f0 ff ff    	jl     1164 <leaf_cut_from_buffer+0x1154>
2100     2110:	be 08 00 00 00       	mov    $0x8,%esi
2105     2115:	4d 89 cc             	mov    %r9,%r12
2108     2118:	4c 89 cf             	mov    %r9,%rdi
210b     211b:	44 89 dd             	mov    %r11d,%ebp
210e     211e:	e8 00 00 00 00       	call   2123 <leaf_cut_from_buffer+0x2113>	211f: R_X86_64_PLT32	__asan_report_store_n_noabort-0x4
2113     2123:	4c 89 e9             	mov    %r13,%rcx
2116     2126:	41 89 eb             	mov    %ebp,%r11d
2119     2129:	4d 89 e1             	mov    %r12,%r9
211c     212c:	48 8b 54 24 18       	mov    0x18(%rsp),%rdx
2121     2131:	48 8b 7c 24 10       	mov    0x10(%rsp),%rdi
2126     2136:	4c 8b 44 24 08       	mov    0x8(%rsp),%r8
212b     213b:	4c 8b 14 24          	mov    (%rsp),%r10
212f     213f:	48 be 00 00 00 00 00 fc ff df 	movabs $0xdffffc0000000000,%rsi
2139     2149:	e9 16 f0 ff ff       	jmp    1164 <leaf_cut_from_buffer+0x1154>
213e     214e:	48 89 cb             	mov    %rcx,%rbx
2141     2151:	80 e1 07             	and    $0x7,%cl
2144     2154:	38 c1                	cmp    %al,%cl
2146     2156:	0f 8c 20 f0 ff ff    	jl     117c <leaf_cut_from_buffer+0x116c>
214c     215c:	48 89 d8             	mov    %rbx,%rax
214f     215f:	be 08 00 00 00       	mov    $0x8,%esi
2154     2164:	4c 89 cb             	mov    %r9,%rbx
2157     2167:	48 89 c7             	mov    %rax,%rdi
215a     216a:	45 89 de             	mov    %r11d,%r14d
215d     216d:	e8 00 00 00 00       	call   2172 <leaf_cut_from_buffer+0x2162>	216e: R_X86_64_PLT32	__asan_report_store_n_noabort-0x4
2162     2172:	45 89 f3             	mov    %r14d,%r11d
2165     2175:	49 89 d9             	mov    %rbx,%r9
2168     2178:	48 8b 54 24 18       	mov    0x18(%rsp),%rdx
216d     217d:	48 8b 7c 24 10       	mov    0x10(%rsp),%rdi
2172     2182:	4c 8b 44 24 08       	mov    0x8(%rsp),%r8
2177     2187:	4c 8b 14 24          	mov    (%rsp),%r10
217b     218b:	48 be 00 00 00 00 00 fc ff df 	movabs $0xdffffc0000000000,%rsi
2185     2195:	e9 e2 ef ff ff       	jmp    117c <leaf_cut_from_buffer+0x116c>
218a     219a:	48 8b 4c 24 48       	mov    0x48(%rsp),%rcx
218f     219f:	80 e1 07             	and    $0x7,%cl
2192     21a2:	38 c1                	cmp    %al,%cl
2194     21a4:	0f 8c e5 ef ff ff    	jl     118f <leaf_cut_from_buffer+0x117f>
219a     21aa:	be 02 00 00 00       	mov    $0x2,%esi
219f     21af:	48 8b 7c 24 48       	mov    0x48(%rsp),%rdi
21a4     21b4:	44 89 db             	mov    %r11d,%ebx
21a7     21b7:	e8 00 00 00 00       	call   21bc <leaf_cut_from_buffer+0x21ac>	21b8: R_X86_64_PLT32	__asan_report_load_n_noabort-0x4
21ac     21bc:	41 89 db             	mov    %ebx,%r11d
21af     21bf:	48 8b 54 24 18       	mov    0x18(%rsp),%rdx
21b4     21c4:	48 8b 7c 24 10       	mov    0x10(%rsp),%rdi
21b9     21c9:	4c 8b 44 24 08       	mov    0x8(%rsp),%r8
21be     21ce:	4c 8b 14 24          	mov    (%rsp),%r10
21c2     21d2:	48 be 00 00 00 00 00 fc ff df 	movabs $0xdffffc0000000000,%rsi
21cc     21dc:	e9 ae ef ff ff       	jmp    118f <leaf_cut_from_buffer+0x117f>
21d1     21e1:	48 8b 4c 24 40       	mov    0x40(%rsp),%rcx
21d6     21e6:	80 e1 07             	and    $0x7,%cl
21d9     21e9:	38 c1                	cmp    %al,%cl
21db     21eb:	0f 8c b1 ef ff ff    	jl     11a2 <leaf_cut_from_buffer+0x1192>
21e1     21f1:	be 02 00 00 00       	mov    $0x2,%esi
21e6     21f6:	48 8b 7c 24 40       	mov    0x40(%rsp),%rdi
21eb     21fb:	44 89 db             	mov    %r11d,%ebx
21ee     21fe:	e8 00 00 00 00       	call   2203 <leaf_cut_from_buffer+0x21f3>	21ff: R_X86_64_PLT32	__asan_report_load_n_noabort-0x4
21f3     2203:	41 89 db             	mov    %ebx,%r11d
21f6     2206:	4c 8b 4c 24 18       	mov    0x18(%rsp),%r9
21fb     220b:	48 8b 7c 24 10       	mov    0x10(%rsp),%rdi
2200     2210:	4c 8b 44 24 08       	mov    0x8(%rsp),%r8
2205     2215:	4c 8b 14 24          	mov    (%rsp),%r10
2209     2219:	48 be 00 00 00 00 00 fc ff df 	movabs $0xdffffc0000000000,%rsi
2213     2223:	e9 7a ef ff ff       	jmp    11a2 <leaf_cut_from_buffer+0x1192>
2218     2228:	44 89 f1             	mov    %r14d,%ecx
221b     222b:	80 e1 07             	and    $0x7,%cl
221e     222e:	38 c1                	cmp    %al,%cl
2220     2230:	0f 8c ac ef ff ff    	jl     11e2 <leaf_cut_from_buffer+0x11d2>
2226     2236:	be 02 00 00 00       	mov    $0x2,%esi
222b     223b:	4c 89 f7             	mov    %r14,%rdi
222e     223e:	e8 00 00 00 00       	call   2243 <leaf_cut_from_buffer+0x2233>	223f: R_X86_64_PLT32	__asan_report_load_n_noabort-0x4
2233     2243:	4c 8b 44 24 08       	mov    0x8(%rsp),%r8
2238     2248:	4c 8b 14 24          	mov    (%rsp),%r10
223c     224c:	48 be 00 00 00 00 00 fc ff df 	movabs $0xdffffc0000000000,%rsi
2246     2256:	e9 87 ef ff ff       	jmp    11e2 <leaf_cut_from_buffer+0x11d2>
224b     225b:	44 89 f9             	mov    %r15d,%ecx
224e     225e:	80 e1 07             	and    $0x7,%cl
2251     2261:	38 c1                	cmp    %al,%cl
2253     2263:	0f 8c 8b ef ff ff    	jl     11f4 <leaf_cut_from_buffer+0x11e4>
2259     2269:	be 02 00 00 00       	mov    $0x2,%esi
225e     226e:	4c 89 ff             	mov    %r15,%rdi
2261     2271:	e8 00 00 00 00       	call   2276 <leaf_cut_from_buffer+0x2266>	2272: R_X86_64_PLT32	__asan_report_load_n_noabort-0x4
2266     2276:	4c 8b 44 24 08       	mov    0x8(%rsp),%r8
226b     227b:	4c 8b 14 24          	mov    (%rsp),%r10
226f     227f:	48 be 00 00 00 00 00 fc ff df 	movabs $0xdffffc0000000000,%rsi
2279     2289:	e9 66 ef ff ff       	jmp    11f4 <leaf_cut_from_buffer+0x11e4>
227e     228e:	31 ff                	xor    %edi,%edi
2280     2290:	48 c7 c6 00 00 00 00 	mov    $0x0,%rsi	2293: R_X86_64_32S	.rodata..str+0x88a0
2287     2297:	48 c7 c2 00 00 00 00 	mov    $0x0,%rdx	229a: R_X86_64_32S	.rodata.str1.1+0x2ce04
228e     229e:	48 c7 c1 00 00 00 00 	mov    $0x0,%rcx	22a1: R_X86_64_32S	.rodata..str.95+0x860
2295     22a5:	41 b8 41 04 00 00    	mov    $0x441,%r8d
229b     22ab:	49 c7 c1 00 00 00 00 	mov    $0x0,%r9	22ae: R_X86_64_32S	.rodata.str1.1+0x2ce04
22a2     22b2:	50                   	push   %rax
22a3     22b3:	41 54                	push   %r12
22a5     22b5:	55                   	push   %rbp
22a6     22b6:	e8 00 00 00 00       	call   22bb <leaf_cut_from_buffer+0x22ab>	22b7: R_X86_64_PLT32	__reiserfs_panic-0x4
22ab     22bb:	89 e9                	mov    %ebp,%ecx
22ad     22bd:	80 e1 07             	and    $0x7,%cl
22b0     22c0:	38 c1                	cmp    %al,%cl
22b2     22c2:	0f 8c f2 e8 ff ff    	jl     bba <leaf_cut_from_buffer+0xbaa>
22b8     22c8:	be 04 00 00 00       	mov    $0x4,%esi
22bd     22cd:	49 89 fe             	mov    %rdi,%r14
22c0     22d0:	48 89 ef             	mov    %rbp,%rdi
22c3     22d3:	e8 00 00 00 00       	call   22d8 <leaf_cut_from_buffer+0x22c8>	22d4: R_X86_64_PLT32	__asan_report_store_n_noabort-0x4
22c8     22d8:	4c 89 f7             	mov    %r14,%rdi
22cb     22db:	4c 8b 4c 24 18       	mov    0x18(%rsp),%r9
22d0     22e0:	48 8b 54 24 10       	mov    0x10(%rsp),%rdx
22d5     22e5:	4c 8b 44 24 08       	mov    0x8(%rsp),%r8
22da     22ea:	4c 8b 14 24          	mov    (%rsp),%r10
22de     22ee:	48 be 00 00 00 00 00 fc ff df 	movabs $0xdffffc0000000000,%rsi
22e8     22f8:	e9 bd e8 ff ff       	jmp    bba <leaf_cut_from_buffer+0xbaa>
22ed     22fd:	89 f9                	mov    %edi,%ecx
22ef     22ff:	80 e1 07             	and    $0x7,%cl
22f2     2302:	38 c1                	cmp    %al,%cl
22f4     2304:	0f 8c c4 e8 ff ff    	jl     bce <leaf_cut_from_buffer+0xbbe>
22fa     230a:	be 04 00 00 00       	mov    $0x4,%esi
22ff     230f:	e8 00 00 00 00       	call   2314 <leaf_cut_from_buffer+0x2304>	2310: R_X86_64_PLT32	__asan_report_store_n_noabort-0x4
2304     2314:	4c 8b 4c 24 18       	mov    0x18(%rsp),%r9
2309     2319:	48 8b 54 24 10       	mov    0x10(%rsp),%rdx
230e     231e:	4c 8b 44 24 08       	mov    0x8(%rsp),%r8
2313     2323:	4c 8b 14 24          	mov    (%rsp),%r10
2317     2327:	48 be 00 00 00 00 00 fc ff df 	movabs $0xdffffc0000000000,%rsi
2321     2331:	e9 98 e8 ff ff       	jmp    bce <leaf_cut_from_buffer+0xbbe>
2326     2336:	48 8b 4c 24 48       	mov    0x48(%rsp),%rcx
232b     233b:	80 e1 07             	and    $0x7,%cl
232e     233e:	38 c1                	cmp    %al,%cl
2330     2340:	0f 8c 9b e8 ff ff    	jl     be1 <leaf_cut_from_buffer+0xbd1>
2336     2346:	be 02 00 00 00       	mov    $0x2,%esi
233b     234b:	48 8b 7c 24 48       	mov    0x48(%rsp),%rdi
2340     2350:	e8 00 00 00 00       	call   2355 <leaf_cut_from_buffer+0x2345>	2351: R_X86_64_PLT32	__asan_report_load_n_noabort-0x4
2345     2355:	4c 8b 4c 24 18       	mov    0x18(%rsp),%r9
234a     235a:	48 8b 54 24 10       	mov    0x10(%rsp),%rdx
234f     235f:	4c 8b 44 24 08       	mov    0x8(%rsp),%r8
2354     2364:	4c 8b 14 24          	mov    (%rsp),%r10
2358     2368:	48 be 00 00 00 00 00 fc ff df 	movabs $0xdffffc0000000000,%rsi
2362     2372:	e9 6a e8 ff ff       	jmp    be1 <leaf_cut_from_buffer+0xbd1>
2367     2377:	4d 63 d4             	movslq %r12d,%r10
236a     237a:	4c 63 5c 24 30       	movslq 0x30(%rsp),%r11
236f     237f:	31 ff                	xor    %edi,%edi
2371     2381:	48 c7 c6 00 00 00 00 	mov    $0x0,%rsi	2384: R_X86_64_32S	.rodata..str+0x88a0
2378     2388:	48 c7 c2 00 00 00 00 	mov    $0x0,%rdx	238b: R_X86_64_32S	.rodata.str1.1+0x767b
237f     238f:	48 c7 c1 00 00 00 00 	mov    $0x0,%rcx	2392: R_X86_64_32S	.rodata..str.35+0x1a00
2386     2396:	41 b8 9a 04 00 00    	mov    $0x49a,%r8d
238c     239c:	49 c7 c1 00 00 00 00 	mov    $0x0,%r9	239f: R_X86_64_32S	.rodata.str1.1+0x767b
2393     23a3:	50                   	push   %rax
2394     23a4:	41 53                	push   %r11
2396     23a6:	41 52                	push   %r10
2398     23a8:	e8 00 00 00 00       	call   23ad <leaf_cut_from_buffer+0x239d>	23a9: R_X86_64_PLT32	__reiserfs_panic-0x4
239d     23ad:	89 e9                	mov    %ebp,%ecx
239f     23af:	80 e1 07             	and    $0x7,%cl
23a2     23b2:	38 c1                	cmp    %al,%cl
23a4     23b4:	0f 8c 7a ee ff ff    	jl     1234 <leaf_cut_from_buffer+0x1224>
23aa     23ba:	be 04 00 00 00       	mov    $0x4,%esi
23af     23bf:	49 89 fe             	mov    %rdi,%r14
23b2     23c2:	48 89 ef             	mov    %rbp,%rdi
23b5     23c5:	e8 00 00 00 00       	call   23ca <leaf_cut_from_buffer+0x23ba>	23c6: R_X86_64_PLT32	__asan_report_store_n_noabort-0x4
23ba     23ca:	4c 89 f7             	mov    %r14,%rdi
23bd     23cd:	4c 8b 44 24 08       	mov    0x8(%rsp),%r8
23c2     23d2:	4c 8b 14 24          	mov    (%rsp),%r10
23c6     23d6:	48 be 00 00 00 00 00 fc ff df 	movabs $0xdffffc0000000000,%rsi
23d0     23e0:	e9 4f ee ff ff       	jmp    1234 <leaf_cut_from_buffer+0x1224>
23d5     23e5:	89 f9                	mov    %edi,%ecx
23d7     23e7:	80 e1 07             	and    $0x7,%cl
23da     23ea:	38 c1                	cmp    %al,%cl
23dc     23ec:	0f 8c 57 ee ff ff    	jl     1249 <leaf_cut_from_buffer+0x1239>
23e2     23f2:	be 04 00 00 00       	mov    $0x4,%esi
23e7     23f7:	e8 00 00 00 00       	call   23fc <leaf_cut_from_buffer+0x23ec>	23f8: R_X86_64_PLT32	__asan_report_store_n_noabort-0x4
23ec     23fc:	4c 8b 44 24 08       	mov    0x8(%rsp),%r8
23f1     2401:	4c 8b 14 24          	mov    (%rsp),%r10
23f5     2405:	48 be 00 00 00 00 00 fc ff df 	movabs $0xdffffc0000000000,%rsi
23ff     240f:	e9 35 ee ff ff       	jmp    1249 <leaf_cut_from_buffer+0x1239>
2404     2414:	31 ff                	xor    %edi,%edi
2406     2416:	48 c7 c6 00 00 00 00 	mov    $0x0,%rsi	2419: R_X86_64_32S	.rodata..str+0x88a0
240d     241d:	48 c7 c2 00 00 00 00 	mov    $0x0,%rdx	2420: R_X86_64_32S	.rodata.str1.1+0x767b
2414     2424:	48 c7 c1 00 00 00 00 	mov    $0x0,%rcx	2427: R_X86_64_32S	.rodata..str.33+0x1c20
241b     242b:	41 b8 90 04 00 00    	mov    $0x490,%r8d
2421     2431:	49 c7 c1 00 00 00 00 	mov    $0x0,%r9	2434: R_X86_64_32S	.rodata.str1.1+0x767b
2428     2438:	41 54                	push   %r12
242a     243a:	e8 00 00 00 00       	call   243f <__SCT__tp_func_xfs_fs_unfixed_corruption+0x7>	243b: R_X86_64_PLT32	__reiserfs_panic-0x4

-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
.

Date: Thu, 27 Jun 2024 11:53:25 +0200
From: Jens Wiklander <jens.wiklander@linaro.org>
To: arm@kernel.org, soc@kernel.org
Cc: Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
	op-tee@lists.trustedfirmware.org
Subject: [GIT PULL] OP-TEE add notif wait timeout parameter for v6.11
Message-ID: <20240627095325.GA2585076@rayden>
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1260659
Newsgroups: org.kernel.vger.linux-kernel,org.kernel.lore.soc
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

Hello arm-soc maintainers,

Please pull this small patch to the OP-TEE driver that adds a timemout
parameter when OP-TEE is waiting for a notification via RPC.

Thanks,
Jens

The following changes since commit a38297e3fb012ddfa7ce0321a7e5a8daeb1872b6:

  Linux 6.9 (2024-05-12 14:12:29 -0700)

are available in the Git repository at:

  https://git.linaro.org/people/jens.wiklander/linux-tee.git/ tags/optee-notif-wait-timeout-for-v6.11

for you to fetch changes up to 14ca6401d8703725c7297dcc4bf8de73323411ac:

  optee: add timeout value to optee_notif_wait() to support timeout (2024-05-30 10:19:28 +0200)

----------------------------------------------------------------
optee: add timeout parameter for notification wait

----------------------------------------------------------------
Gavin Liu (1):
      optee: add timeout value to optee_notif_wait() to support timeout

 drivers/tee/optee/notif.c         |  9 +++++++--
 drivers/tee/optee/optee_private.h |  5 ++++-
 drivers/tee/optee/optee_rpc_cmd.h |  1 +
 drivers/tee/optee/rpc.c           | 10 ++++++++--
 4 files changed, 20 insertions(+), 5 deletions(-)
.

From: Benjamin Tissoires <bentiss@kernel.org>
Subject: [PATCH 0/6] HID: bpf: import some more fixes from udev-hid-bpf
Date: Thu, 27 Jun 2024 11:54:16 +0200
Message-Id: <20240627-import-bpf-v1-0-0dbcda4a5b1f@kernel.org>
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit
To: Jiri Kosina <jikos@kernel.org>
Cc: linux-kernel@vger.kernel.org, linux-input@vger.kernel.org, 
 bpf@vger.kernel.org, Benjamin Tissoires <bentiss@kernel.org>, 
 Peter Hutterer <peter.hutterer@who-t.net>, 
 =?utf-8?q?Jos=C3=A9_Exp=C3=B3sito?= <jose.exposito89@gmail.com>, 
 K S Iyer <kumar.s.iyer65@gmail.com>
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1260660
Newsgroups: org.kernel.vger.linux-kernel,org.kernel.vger.bpf,org.kernel.vger.linux-input
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

This is a batch update to sync up the testing directory of udev-hid-bpf
and the kernel. The development happens there, and once we are happy,
we merge the bpf there, and then sync up with the kernel.

I've added all of the signed-off by from the various authors, as we
require them there as well.

Currently I don't have full testing for those new bpfs, but the current
test_tablets.py that I'm using for the 2 Artist 16 and 24 are not really
testing the correct bits, as we are more fixing buttons and plain stylus
reports than interactions between stylus and buttons.

Cheers,
Benjamin

Signed-off-by: Benjamin Tissoires <bentiss@kernel.org>
---
Benjamin Tissoires (6):
      HID: bpf: Add a HID report composition helper macros
      HID: bpf: add a driver for the Huion Inspiroy 2S (H641P)
      HID: bpf: move the BIT() macro to hid_bpf_helpers.h
      HID: bpf: Add support for the XP-PEN Deco Mini 4
      HID: bpf: Add Huion Dial 2 bpf fixup
      HID: bpf: Thrustmaster TCA Yoke Boeing joystick fix

 drivers/hid/bpf/progs/Huion__Dial-2.bpf.c          |  614 ++++
 drivers/hid/bpf/progs/Huion__Inspiroy-2-S.bpf.c    |  534 ++++
 .../bpf/progs/Thrustmaster__TCA-Yoke-Boeing.bpf.c  |  144 +
 drivers/hid/bpf/progs/XPPen__Artist24.bpf.c        |    2 -
 drivers/hid/bpf/progs/XPPen__DecoMini4.bpf.c       |  231 ++
 drivers/hid/bpf/progs/hid_bpf.h                    |    1 +
 drivers/hid/bpf/progs/hid_bpf_helpers.h            |    1 +
 drivers/hid/bpf/progs/hid_report_helpers.h         | 2960 ++++++++++++++++++++
 8 files changed, 4485 insertions(+), 2 deletions(-)
---
base-commit: d3e15189bfd4d0a9d3a7ad8bd0e6ebb1c0419f93
change-id: 20240627-import-bpf-f35faa95b71d

Best regards,
-- 
Benjamin Tissoires <bentiss@kernel.org>

.

From: Neha Malcom Francis <n-francis@ti.com>
To: <nm@ti.com>, <vigneshr@ti.com>, <kristo@kernel.org>, <robh@kernel.org>,
        <krzk+dt@kernel.org>, <conor+dt@kernel.org>
CC: <linux-arm-kernel@lists.infradead.org>, <devicetree@vger.kernel.org>,
        <linux-kernel@vger.kernel.org>, <u-kumar1@ti.com>, <n-francis@ti.com>
Subject: [PATCH] arm: dts: k3-j721e-mcu-wakeup: Add bootph-all to chipid
Date: Thu, 27 Jun 2024 15:40:03 +0530
Message-ID: <20240627101003.3608397-1-n-francis@ti.com>
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1260674
Newsgroups: org.kernel.vger.linux-kernel,org.infradead.lists.linux-arm-kernel,org.kernel.vger.linux-devicetree
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

Add bootph-all property to the chipid node so that it is available at
bootloader stage for obtaining the SoC ID and revision.

Signed-off-by: Neha Malcom Francis <n-francis@ti.com>
---
 arch/arm64/boot/dts/ti/k3-j721e-mcu-wakeup.dtsi | 1 +
 1 file changed, 1 insertion(+)

diff --git a/arch/arm64/boot/dts/ti/k3-j721e-mcu-wakeup.dtsi b/arch/arm64/boot/dts/ti/k3-j721e-mcu-wakeup.dtsi
index 9349ae07c046..c2417ef614cf 100644
--- a/arch/arm64/boot/dts/ti/k3-j721e-mcu-wakeup.dtsi
+++ b/arch/arm64/boot/dts/ti/k3-j721e-mcu-wakeup.dtsi
@@ -57,6 +57,7 @@ wkup_conf: bus@43000000 {
 		chipid: chipid@14 {
 			compatible = "ti,am654-chipid";
 			reg = <0x14 0x4>;
+			bootph-all;
 		};
 	};
 
-- 
2.34.1

.

From: Shengjiu Wang <shengjiu.wang@nxp.com>
To: lgirdwood@gmail.com,
	broonie@kernel.org,
	robh@kernel.org,
	krzk+dt@kernel.org,
	conor+dt@kernel.org,
	shengjiu.wang@gmail.com,
	linux-sound@vger.kernel.org,
	devicetree@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	shawnguo@kernel.org,
	s.hauer@pengutronix.de,
	kernel@pengutronix.de,
	festevam@gmail.com,
	imx@lists.linux.dev,
	linux-arm-kernel@lists.infradead.org
Subject: [PATCH v2 0/3] arm64: dts: imx8mp: add audio XCVR sound card
Date: Thu, 27 Jun 2024 17:52:58 +0800
Message-Id: <1719481981-4069-1-git-send-email-shengjiu.wang@nxp.com>
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1260675
Newsgroups: org.kernel.vger.linux-kernel,dev.linux.lists.imx,org.infradead.lists.linux-arm-kernel,org.kernel.vger.linux-devicetree,org.kernel.vger.linux-sound
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

Add audio XCVR sound card, which support SPDIF TX & RX,
eARC RX and ARC RX.

changes in v2:
- use minItems:3 for i.MX8MP and update example

Shengjiu Wang (3):
  ASoC: dt-bindings: fsl,xcvr: Adjust the number of interrupts
  arm64: dts: imx8mp: Add audio XCVR device node
  arm64: dts: imx8mp-evk: Add audio XCVR sound card

 .../devicetree/bindings/sound/fsl,xcvr.yaml   | 11 +++++---
 arch/arm64/boot/dts/freescale/imx8mp-evk.dts  | 27 +++++++++++++++++++
 arch/arm64/boot/dts/freescale/imx8mp.dtsi     | 26 ++++++++++++++++++
 3 files changed, 61 insertions(+), 3 deletions(-)

-- 
2.34.1

.

Return-Path: <linux-riscv-bounces+linux-riscv=archiver.kernel.org@lists.infradead.org>
From: Celeste Liu <coelacanthushex@gmail.com>
To: linux-riscv@lists.infradead.org,
	=?UTF-8?q?Bj=C3=B6rn=20T=C3=B6pel?= <bjorn@rivosinc.com>
Cc: linux-kernel@vger.kernel.org,
	"Dmitry V . Levin" <ldv@strace.io>,
	Guo Ren <guoren@kernel.org>,
	Palmer Dabbelt <palmer@rivosinc.com>,
	Emil Renner Berthing <emil.renner.berthing@canonical.com>,
	Felix Yan <felixonmars@archlinux.org>,
	Ruizhe Pan <c141028@gmail.com>,
	Celeste Liu <CoelacanthusHex@gmail.com>,
	stable@vger.kernel.org
Subject: [PATCH] riscv: entry: always initialize regs->a0 to -ENOSYS
Date: Thu, 27 Jun 2024 18:32:06 +0800
Message-ID: <20240627103205.27914-2-CoelacanthusHex@gmail.com>
MIME-Version: 1.0
X-BeenThere: linux-riscv@lists.infradead.org
X-Mailman-Version: 2.1.34
List-Id: <linux-riscv.lists.infradead.org>
List-Unsubscribe: <http://lists.infradead.org/mailman/options/linux-riscv>,
 <mailto:linux-riscv-request@lists.infradead.org?subject=unsubscribe>
List-Archive: <http://lists.infradead.org/pipermail/linux-riscv/>
List-Post: <mailto:linux-riscv@lists.infradead.org>
List-Help: <mailto:linux-riscv-request@lists.infradead.org?subject=help>
List-Subscribe: <http://lists.infradead.org/mailman/listinfo/linux-riscv>,
 <mailto:linux-riscv-request@lists.infradead.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: "linux-riscv" <linux-riscv-bounces@lists.infradead.org>
Errors-To: linux-riscv-bounces+linux-riscv=archiver.kernel.org@lists.infradead.org
Xref: photonic.trudheim.com org.infradead.lists.linux-riscv:79098 org.kernel.vger.linux-kernel:1260687
Newsgroups: org.infradead.lists.linux-riscv,org.kernel.vger.linux-kernel,org.kernel.vger.stable
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

Otherwise when the tracer changes syscall number to -1, the kernel fails
to initialize a0 with -ENOSYS and subsequently fails to return the error
code of the failed syscall to userspace. For example, it will break
strace syscall tampering.

Fixes: 52449c17bdd1 ("riscv: entry: set a0 = -ENOSYS only when syscall != -1")
Cc: stable@vger.kernel.org
Signed-off-by: Celeste Liu <CoelacanthusHex@gmail.com>
---
 arch/riscv/kernel/traps.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/arch/riscv/kernel/traps.c b/arch/riscv/kernel/traps.c
index 05a16b1f0aee..51ebfd23e007 100644
--- a/arch/riscv/kernel/traps.c
+++ b/arch/riscv/kernel/traps.c
@@ -319,6 +319,7 @@ void do_trap_ecall_u(struct pt_regs *regs)
 
 		regs->epc += 4;
 		regs->orig_a0 = regs->a0;
+		regs->a0 = -ENOSYS;
 
 		riscv_v_vstate_discard(regs);
 
@@ -328,8 +329,7 @@ void do_trap_ecall_u(struct pt_regs *regs)
 
 		if (syscall >= 0 && syscall < NR_syscalls)
 			syscall_handler(regs, syscall);
-		else if (syscall != -1)
-			regs->a0 = -ENOSYS;
+
 		/*
 		 * Ultimately, this value will get limited by KSTACK_OFFSET_MAX(),
 		 * so the maximum stack offset is 1k bytes (10 bits).
-- 
2.45.2


_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv
.

From: Antoniu Miclaus <antoniu.miclaus@analog.com>
To: Lars-Peter Clausen <lars@metafoo.de>,
        Michael Hennerich
	<Michael.Hennerich@analog.com>,
        Ramona Gradinariu
	<ramona.gradinariu@analog.com>,
        Antoniu Miclaus <antoniu.miclaus@analog.com>,
        Jonathan Cameron <jic23@kernel.org>, Rob Herring <robh@kernel.org>,
        Krzysztof
 Kozlowski <krzk+dt@kernel.org>,
        Conor Dooley <conor+dt@kernel.org>, Jonathan
 Corbet <corbet@lwn.net>,
        Jun Yan <jerrysteve1101@gmail.com>,
        Matti Vaittinen
	<mazziesaccount@gmail.com>,
        Mario Limonciello <mario.limonciello@amd.com>,
        Mehdi Djait <mehdi.djait.k@gmail.com>, <linux-iio@vger.kernel.org>,
        <devicetree@vger.kernel.org>, <linux-kernel@vger.kernel.org>,
        <linux-doc@vger.kernel.org>
Subject: [PATCH v3 1/3] dt-bindings: iio: accel: add ADXL380
Date: Thu, 27 Jun 2024 13:25:17 +0300
Message-ID: <20240627102617.24416-1-antoniu.miclaus@analog.com>
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1260690
Newsgroups: org.kernel.vger.linux-kernel,org.kernel.vger.linux-devicetree,org.kernel.vger.linux-doc,org.kernel.vger.linux-iio
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

Add dt-bindings for ADXL380/ADLX382 low noise density, low
power, 3-axis accelerometer with selectable measurement ranges.

Signed-off-by: Ramona Gradinariu <ramona.gradinariu@analog.com>
Signed-off-by: Antoniu Miclaus <antoniu.miclaus@analog.com>
---
changes in v3:
 - add power support
 - add support for both interrupts
 .../bindings/iio/accel/adi,adxl380.yaml       | 103 ++++++++++++++++++
 MAINTAINERS                                   |   7 ++
 2 files changed, 110 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/iio/accel/adi,adxl380.yaml

diff --git a/Documentation/devicetree/bindings/iio/accel/adi,adxl380.yaml b/Documentation/devicetree/bindings/iio/accel/adi,adxl380.yaml
new file mode 100644
index 000000000000..55e25a9b31ac
--- /dev/null
+++ b/Documentation/devicetree/bindings/iio/accel/adi,adxl380.yaml
@@ -0,0 +1,103 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/iio/accel/adi,adxl380.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Analog Devices ADXL380/382 3-Axis Digital Accelerometer
+
+maintainers:
+  - Ramona Gradinariu <ramona.gradinariu@analog.com>
+  - Antoniu Miclaus <antoniu.miclaus@analog.com>
+
+description: |
+  The ADXL380/ADXL382 is a low noise density, low power, 3-axis
+  accelerometer with selectable measurement ranges. The ADXL380
+  supports the ±4 g, ±8 g, and ±16 g ranges, and the ADXL382 supports
+  ±15 g, ±30 g, and ±60 g ranges.
+  The ADXL380/ADXL382 offers industry leading noise, enabling precision
+  applications with minimal calibration. The low noise, and low power
+  ADXL380/ADXL382 enables accurate measurement in an environment with
+  high vibration, heart sounds and audio.
+
+  In addition to its low power consumption, the ADXL380/ADXL382 has
+  many features to enable true system level performance. These
+  include a built-in micropower temperature sensor, single / double /
+  triple tap detection and a state machine to prevent a false
+  triggering. In addition, the ADXL380/ADXL382 has provisions for
+  external control of the sampling time and/or an external clock.
+
+    https://www.analog.com/en/products/adxl380.html
+
+properties:
+  compatible:
+    enum:
+      - adi,adxl380
+      - adi,adxl382
+
+  reg:
+    maxItems: 1
+
+  interrupts:
+    minItems: 1
+    maxItems: 2
+
+  interrupt-names:
+    minItems: 1
+    items:
+      - enum: [INT0, INT1]
+      - const: INT1
+
+  vddio-supply: true
+
+  vsupply-supply: true
+
+required:
+  - compatible
+  - reg
+  - interrupts
+  - interrupt-names
+  - vddio-supply
+  - vsupply-supply
+
+allOf:
+  - $ref: /schemas/spi/spi-peripheral-props.yaml#
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/interrupt-controller/irq.h>
+
+    i2c {
+      #address-cells = <1>;
+      #size-cells = <0>;
+
+      accelerometer@54 {
+        compatible = "adi,adxl380";
+        reg = <0x54>;
+        vddio-supply = <&vddio>;
+        vsupply-supply = <&vsupply>;
+        interrupt-parent = <&gpio>;
+        interrupts = <25 IRQ_TYPE_LEVEL_HIGH>;
+        interrupt-names = "INT0";
+      };
+    };
+  - |
+    #include <dt-bindings/interrupt-controller/irq.h>
+
+    spi {
+      #address-cells = <1>;
+      #size-cells = <0>;
+
+      accelerometer@0 {
+        compatible = "adi,adxl380";
+        reg = <0>;
+        spi-max-frequency = <8000000>;
+        vddio-supply = <&vddio>;
+        vsupply-supply = <&vsupply>;
+        interrupt-parent = <&gpio>;
+        interrupts = <25 IRQ_TYPE_LEVEL_HIGH>;
+        interrupt-names = "INT0";
+      };
+    };
diff --git a/MAINTAINERS b/MAINTAINERS
index be590c462d91..1425182c85e2 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -618,6 +618,13 @@ F:	drivers/iio/accel/adxl372.c
 F:	drivers/iio/accel/adxl372_i2c.c
 F:	drivers/iio/accel/adxl372_spi.c
 
+ADXL380 THREE-AXIS DIGITAL ACCELEROMETER DRIVER
+M:	Ramona Gradinariu <ramona.gradinariu@analog.com>
+M:	Antoniu Miclaus <antoniu.miclaus@analog.com>
+S:	Supported
+W:	https://ez.analog.com/linux-software-drivers
+F:	Documentation/devicetree/bindings/iio/accel/adi,adxl380.yaml
+
 AF8133J THREE-AXIS MAGNETOMETER DRIVER
 M:	Ondřej Jirman <megi@xff.cz>
 S:	Maintained
-- 
2.45.2

.

From: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Subject: [PATCH v4 0/7] dt-bindings: mfd: syscon: Document more compatibles
 and require simpe-mfd description
Date: Thu, 27 Jun 2024 12:32:16 +0200
Message-Id: <20240627-dt-bindings-mfd-syscon-split-v4-0-dc6699a9f3e4@linaro.org>
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit
To: Orson Zhai <orsonzhai@gmail.com>, 
 Baolin Wang <baolin.wang@linux.alibaba.com>, 
 Chunyan Zhang <zhang.lyra@gmail.com>, Jacky Huang <ychuang3@nuvoton.com>, 
 Shan-Chun Hung <schung@nuvoton.com>, 
 Khuong Dinh <khuong@os.amperecomputing.com>, Lee Jones <lee@kernel.org>, 
 Rob Herring <robh@kernel.org>, Krzysztof Kozlowski <krzk+dt@kernel.org>, 
 Conor Dooley <conor+dt@kernel.org>, Chuanhua Lei <lchuanhua@maxlinear.com>, 
 Rahul Tanwar <rtanwar@maxlinear.com>, 
 Lars Povlsen <lars.povlsen@microchip.com>, 
 Steen Hegelund <Steen.Hegelund@microchip.com>, 
 Daniel Machon <daniel.machon@microchip.com>, UNGLinuxDriver@microchip.com, 
 Nishanth Menon <nm@ti.com>, Matthias Brugger <matthias.bgg@gmail.com>, 
 AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
Cc: Jiaxun Yang <jiaxun.yang@flygoat.com>, devicetree@vger.kernel.org, 
 linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, 
 linux-mediatek@lists.infradead.org, 
 Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>, 
 Conor Dooley <conor.dooley@microchip.com>, 
 Rahul Tanwar <rahul.tanwar@linux.intel.com>, 
 Amireddy Mallikarjuna reddy <mallikarjunax.reddy@intel.com>, 
 "Zhu, Yi Xin" <Yixin.zhu@intel.com>, Maxime Ripard <mripard@kernel.org>
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1260694
Newsgroups: org.kernel.vger.linux-kernel,org.infradead.lists.linux-arm-kernel,org.infradead.lists.linux-mediatek,org.kernel.vger.linux-devicetree
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

Hi,

Dependency
==========
Rebased on Lee's MFD tree, because dependency is there already:
https://lore.kernel.org/all/171828959006.2643902.8308227314531523435.b4-ty@kernel.org/

Merging
=======
Preferrably everything via MFD tree (file/context dependencies).

Changes in v4
=============
- Rebase - syscon.yaml got new compatible ti,am62-opp-efuse-table
- Link to v3: https://lore.kernel.org/r/20240626-dt-bindings-mfd-syscon-split-v3-0-3409903bb99b@linaro.org

Changes in v3
=============
- Add tags
- intel,lgm-syscon: change maintainers (email bounce)
- syscon/Split: drop unneeded |, use const instead of enum in select:
- Link to v2: https://lore.kernel.org/r/20240616-dt-bindings-mfd-syscon-split-v2-0-571b5850174a@linaro.org

Changes in v2
=============
- Add acks
- lgm-syscon: add ranges to binding and example
- syscon.yaml: add big select with all compatibles for older dtschema
- Link to v1: https://lore.kernel.org/r/20240519-dt-bindings-mfd-syscon-split-v1-0-aaf996e2313a@linaro.org

Description/problem
===================
Simple syscon nodes can be documented in common syscon.yaml, however
devices with simple-mfd compatible, thus some children, should have
their own schema listing these children.  Such listing makes the binding
specific, allows better validation (so the incorrect child would not
appear in the simple-mfd node) and actually enforces repeated rule for
simple-mfd devices:

  "simple-mfd" is only for simple devices, where the children do not
  depend on the parent.

Currently the syscon+simple-mfd binding is quite broad and allows
any child or property, thus above rule cannot be enforced.

Solution
========
1. Split the syscon.yaml binding into common syscon properties, used
   potentially by many bindings, and only simple syscon devices (NO
   simple-mfd!).
2. Move some known simple-mfd bindings from syscon.yaml to dedicated
   files.

This patchset might introduce new dtbs_check warnings for devices having
simple-mfd and being part of syscon.yaml previously. I fixed some of
them, but probably not all.

Best regards,
Krzysztof

To: Lee Jones <lee@kernel.org>
To: Rob Herring <robh@kernel.org>
To: Krzysztof Kozlowski <krzk+dt@kernel.org>
To: Conor Dooley <conor+dt@kernel.org>
To: Lars Povlsen <lars.povlsen@microchip.com>
To: Steen Hegelund <Steen.Hegelund@microchip.com>
To: Daniel Machon <daniel.machon@microchip.com>
To: UNGLinuxDriver@microchip.com
To: Nishanth Menon <nm@ti.com>
To: Matthias Brugger <matthias.bgg@gmail.com>
To: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
Cc: devicetree@vger.kernel.org
Cc: linux-kernel@vger.kernel.org
Cc: linux-arm-kernel@lists.infradead.org
Cc: linux-mediatek@lists.infradead.org

---
Krzysztof Kozlowski (7):
      dt-bindings: mfd: syscon: Drop hwlocks
      dt-bindings: soc: sprd: sc9863a-glbregs: Document SC9863A syscon
      dt-bindings: soc: intel: lgm-syscon: Move to dedicated schema
      dt-bindings: soc: microchip: sparx5-cpu-syscon: Move to dedicated schema
      dt-bindings: soc: ti: am654-serdes-ctrl: Move to dedicated schema
      dt-bindings: mfd: syscon: Split and enforce documenting MFD children
      dt-bindings: mfd: syscon: Add APM poweroff mailbox

 .../devicetree/bindings/mfd/syscon-common.yaml     |  71 +++++
 Documentation/devicetree/bindings/mfd/syscon.yaml  | 309 ++++++++++++---------
 .../bindings/soc/intel/intel,lgm-syscon.yaml       |  57 ++++
 .../soc/microchip/microchip,sparx5-cpu-syscon.yaml |  49 ++++
 .../bindings/soc/sprd/sprd,sc9863a-glbregs.yaml    |  55 ++++
 .../bindings/soc/ti/ti,am654-serdes-ctrl.yaml      |  42 +++
 6 files changed, 459 insertions(+), 124 deletions(-)
---
base-commit: c41503b65ef7b85189c39f6a6038feb7c93eac2f
change-id: 20240517-dt-bindings-mfd-syscon-split-37e23996523d

Best regards,
-- 
Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>

.

From: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
To: Borislav Petkov <bp@alien8.de>
Cc: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>,
	Jonathan Cameron <Jonathan.Cameron@huawei.com>,
	Shiju Jose <shiju.jose@huawei.com>,
	James Morse <james.morse@arm.com>,
	Len Brown <lenb@kernel.org>,
	Tony Luck <tony.luck@intel.com>,
	linux-acpi@vger.kernel.org,
	linux-edac@vger.kernel.org,
	linux-kernel@vger.kernel.org
Subject: [PATCH v2 0/2] Add other fields to ARM trace event
Date: Thu, 27 Jun 2024 12:36:06 +0200
Message-ID: <cover.1719484498.git.mchehab+huawei@kernel.org>
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Sender: Mauro Carvalho Chehab <mchehab@kernel.org>
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1260704
Newsgroups: org.kernel.vger.linux-kernel,org.kernel.vger.linux-acpi,org.kernel.vger.linux-edac
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

This series was originally sent at:
https://lore.kernel.org/all/20240321-b4-arm-ras-error-vendor-info-v5-rc3-v5-0-850f9bfb97a8@os.amperecomputing.com/

Those patches that fix UEFI 2.6+ implementation of the ARM trace event,
as the original implementation was incomplete.

In summary:
changeset e9279e83ad1f ("trace, ras: add ARM processor error trace event")
was incomplete: it added a trace event that was reporting only some fields
of the CPER record generated for ARM processor from UEFI 2.6 spec.

Those are not enough there to actually parse such events on userspace,
for it to properly report/record the error nor to take appropriate measures
to prevent future problems, like poisoning problematic CPU cores and taking
them offline.

The patch was validated with the help of an ARM EINJ code for QEMU:

	https://github.com/mchehab/rasdaemon/wiki/error-injection

I tested the ghes and cper reports both with and without this change,
using different versions of rasdaemon, with and without support for
the extended trace event. Those are a summary of the test results:

- adding more fields to the trace events didn't break userspace API:
  both versions of rasdaemon handled it;

- the rasdaemon patches to handle the new trace report was missing
  a backward-compatibility logic. I fixed already. With that, rasdaemon
  can handle both old and new trace events.

Btw, rasdaemon has gained support for the extended trace since its
version 0.5.8 (released in 2021). I didn't saw any issues there
complain about troubles on it, so either distros used on ARM servers
are using an old version of rasdaemon, or they're carrying on the trace
event changes as well.

---

- v2: fix a bad conflict resolution affecting non-arm compilation on patch 1.

- Changes over the original changeset:
  - First patch was simplified to avoid too many #ifdefs;
  - reordered local vars using reverse xmas tree;
  - removed uneeded typecasts;
  - some coding style fixes.


Daniel Ferguson (1):
  RAS: ACPI: APEI: add conditional compilation to ARM error report
    functions

Shengwei Luo (1):
  RAS: Report all ARM processor CPER information to userspace

 drivers/acpi/apei/ghes.c | 16 ++++++--------
 drivers/ras/ras.c        | 47 +++++++++++++++++++++++++++++++++++++--
 include/linux/ras.h      | 16 ++++++++++----
 include/ras/ras_event.h  | 48 +++++++++++++++++++++++++++++++++++-----
 4 files changed, 107 insertions(+), 20 deletions(-)

-- 
2.45.2


.

From: Lorenzo Stoakes <lstoakes@gmail.com>
To: Andrew Morton <akpm@linux-foundation.org>
Cc: linux-fsdevel@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	linux-mm@kvack.org,
	"Liam R . Howlett" <Liam.Howlett@oracle.com>,
	Vlastimil Babka <vbabka@suse.cz>,
	Matthew Wilcox <willy@infradead.org>,
	Alexander Viro <viro@zeniv.linux.org.uk>,
	Christian Brauner <brauner@kernel.org>,
	Jan Kara <jack@suse.cz>,
	Eric Biederman <ebiederm@xmission.com>,
	Kees Cook <kees@kernel.org>,
	Suren Baghdasaryan <surenb@google.com>,
	Lorenzo Stoakes <lstoakes@gmail.com>
Subject: [RFC PATCH 0/7] Make core VMA operations internal and testable
Date: Thu, 27 Jun 2024 11:39:25 +0100
Message-ID: <cover.1719481836.git.lstoakes@gmail.com>
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1260713 org.kvack.linux-mm:201600
Newsgroups: org.kernel.vger.linux-kernel,org.kernel.vger.linux-fsdevel,org.kvack.linux-mm
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

There are a number of "core" VMA manipulation functions implemented in
mm/mmap.c, notably those concerning VMA merging, splitting, modifying,
expanding and shrinking, which logically don't belong there.

More importantly this functionality represents an internal implementation
detail of memory management and should not be exposed outside of mm/
itself.

This patch series isolates core VMA manipulation functionality into its own
file, mm/vma.c, and provides an API to the rest of the mm code in mm/vma.h.

Importantly, it also carefully implements mm/vma_internal.h, which
specifies which headers need to be imported by vma.c, leading to the very
useful property that vma.c depends only on mm/vma.h and mm/vma_internal.h.

This is useful, because we can then re-implement vma_internal.h in
userland, stubbing out and adding shims for kernel mechanisms as required,
and then can directly and very easily unit test internal VMA functionality.

This patch series takes advantage of existing shim logic and full userland
maple tree support contained in tools/testing/radix-tree/ and
tools/include/linux/, separating out shared components of the radix tree
implementation to provide this testing.

Kernel functionality is stubbed and shimmed as needed in tools/testing/vma/
which contains a fully functional userland vma_internal.h file and which
imports mm/vma.c and mm/vma.h to be directly tested from userland.

A simple, skeleton testing implementation is provided in
tools/testing/vma/main.c as a proof-of-concept, asserting that simple VMA
merge, modify (testing split), expand and shrink functionality works
correctly.

Lorenzo Stoakes (7):
  userfaultfd: move core VMA manipulation logic to mm/userfaultfd.c
  mm: move vma_modify() and helpers to internal header
  mm: unexport vma_expand() / vma_shrink()
  mm: move internal core VMA manipulation functions to own file
  MAINTAINERS: Add entry for new VMA files
  tools: separate out shared radix-tree components
  tools: add skeleton code for userland testing of VMA logic

 MAINTAINERS                                   |   14 +
 fs/exec.c                                     |   26 +-
 fs/userfaultfd.c                              |  160 +-
 include/linux/mm.h                            |  104 +-
 include/linux/userfaultfd_k.h                 |   19 +
 mm/Makefile                                   |    2 +-
 mm/gup.c                                      |    1 +
 mm/huge_memory.c                              |    1 +
 mm/internal.h                                 |  160 +-
 mm/madvise.c                                  |    1 +
 mm/memory.c                                   |    1 +
 mm/mempolicy.c                                |    1 +
 mm/mlock.c                                    |    1 +
 mm/mmap.c                                     | 1808 +----------------
 mm/mmu_notifier.c                             |    2 +
 mm/mprotect.c                                 |    1 +
 mm/mremap.c                                   |    1 +
 mm/mseal.c                                    |    2 +
 mm/rmap.c                                     |    1 +
 mm/userfaultfd.c                              |  170 ++
 mm/vma.c                                      | 1766 ++++++++++++++++
 mm/vma.h                                      |  356 ++++
 mm/vma_internal.h                             |  143 ++
 tools/testing/radix-tree/Makefile             |   68 +-
 tools/testing/radix-tree/maple.c              |   14 +-
 tools/testing/radix-tree/xarray.c             |    9 +-
 tools/testing/shared/autoconf.h               |    2 +
 tools/testing/{radix-tree => shared}/bitmap.c |    0
 tools/testing/{radix-tree => shared}/linux.c  |    0
 .../{radix-tree => shared}/linux/bug.h        |    0
 .../{radix-tree => shared}/linux/cpu.h        |    0
 .../{radix-tree => shared}/linux/idr.h        |    0
 .../{radix-tree => shared}/linux/init.h       |    0
 .../{radix-tree => shared}/linux/kconfig.h    |    0
 .../{radix-tree => shared}/linux/kernel.h     |    0
 .../{radix-tree => shared}/linux/kmemleak.h   |    0
 .../{radix-tree => shared}/linux/local_lock.h |    0
 .../{radix-tree => shared}/linux/lockdep.h    |    0
 .../{radix-tree => shared}/linux/maple_tree.h |    0
 .../{radix-tree => shared}/linux/percpu.h     |    0
 .../{radix-tree => shared}/linux/preempt.h    |    0
 .../{radix-tree => shared}/linux/radix-tree.h |    0
 .../{radix-tree => shared}/linux/rcupdate.h   |    0
 .../{radix-tree => shared}/linux/xarray.h     |    0
 tools/testing/shared/maple-shared.h           |    9 +
 tools/testing/shared/maple-shim.c             |    7 +
 tools/testing/shared/shared.h                 |   34 +
 tools/testing/shared/shared.mk                |   68 +
 .../testing/shared/trace/events/maple_tree.h  |    5 +
 tools/testing/shared/xarray-shared.c          |    5 +
 tools/testing/shared/xarray-shared.h          |    4 +
 tools/testing/vma/.gitignore                  |    7 +
 tools/testing/vma/Makefile                    |   18 +
 tools/testing/vma/errors.txt                  |    0
 tools/testing/vma/generated/autoconf.h        |    2 +
 tools/testing/vma/linux/atomic.h              |   19 +
 tools/testing/vma/linux/mmzone.h              |   37 +
 tools/testing/vma/main.c                      |  161 ++
 tools/testing/vma/vma.h                       |    3 +
 tools/testing/vma/vma_internal.h              |  843 ++++++++
 tools/testing/vma/vma_stub.c                  |    6 +
 61 files changed, 3800 insertions(+), 2262 deletions(-)
 create mode 100644 mm/vma.c
 create mode 100644 mm/vma.h
 create mode 100644 mm/vma_internal.h
 create mode 100644 tools/testing/shared/autoconf.h
 rename tools/testing/{radix-tree => shared}/bitmap.c (100%)
 rename tools/testing/{radix-tree => shared}/linux.c (100%)
 rename tools/testing/{radix-tree => shared}/linux/bug.h (100%)
 rename tools/testing/{radix-tree => shared}/linux/cpu.h (100%)
 rename tools/testing/{radix-tree => shared}/linux/idr.h (100%)
 rename tools/testing/{radix-tree => shared}/linux/init.h (100%)
 rename tools/testing/{radix-tree => shared}/linux/kconfig.h (100%)
 rename tools/testing/{radix-tree => shared}/linux/kernel.h (100%)
 rename tools/testing/{radix-tree => shared}/linux/kmemleak.h (100%)
 rename tools/testing/{radix-tree => shared}/linux/local_lock.h (100%)
 rename tools/testing/{radix-tree => shared}/linux/lockdep.h (100%)
 rename tools/testing/{radix-tree => shared}/linux/maple_tree.h (100%)
 rename tools/testing/{radix-tree => shared}/linux/percpu.h (100%)
 rename tools/testing/{radix-tree => shared}/linux/preempt.h (100%)
 rename tools/testing/{radix-tree => shared}/linux/radix-tree.h (100%)
 rename tools/testing/{radix-tree => shared}/linux/rcupdate.h (100%)
 rename tools/testing/{radix-tree => shared}/linux/xarray.h (100%)
 create mode 100644 tools/testing/shared/maple-shared.h
 create mode 100644 tools/testing/shared/maple-shim.c
 create mode 100644 tools/testing/shared/shared.h
 create mode 100644 tools/testing/shared/shared.mk
 create mode 100644 tools/testing/shared/trace/events/maple_tree.h
 create mode 100644 tools/testing/shared/xarray-shared.c
 create mode 100644 tools/testing/shared/xarray-shared.h
 create mode 100644 tools/testing/vma/.gitignore
 create mode 100644 tools/testing/vma/Makefile
 create mode 100644 tools/testing/vma/errors.txt
 create mode 100644 tools/testing/vma/generated/autoconf.h
 create mode 100644 tools/testing/vma/linux/atomic.h
 create mode 100644 tools/testing/vma/linux/mmzone.h
 create mode 100644 tools/testing/vma/main.c
 create mode 100644 tools/testing/vma/vma.h
 create mode 100644 tools/testing/vma/vma_internal.h
 create mode 100644 tools/testing/vma/vma_stub.c

--
2.45.1
.

From: Ekansh Gupta <quic_ekangupt@quicinc.com>
To: <srinivas.kandagatla@linaro.org>, <linux-arm-msm@vger.kernel.org>
CC: <gregkh@linuxfoundation.org>, <quic_bkumar@quicinc.com>,
        <linux-kernel@vger.kernel.org>, <quic_chennak@quicinc.com>,
        <dri-devel@lists.freedesktop.org>, <arnd@arndb.de>,
        Dmitry Baryshkov
	<dmitry.baryshkov@linaro.org>
Subject: [PATCH v3] misc: fastrpc: Move fastrpc driver to misc/fastrpc/
Date: Thu, 27 Jun 2024 16:12:44 +0530
Message-ID: <20240627104245.1651214-1-quic_ekangupt@quicinc.com>
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1260721
Newsgroups: org.kernel.vger.linux-kernel,org.kernel.vger.linux-arm-msm
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

Move fastrpc.c from misc/ to misc/fastrpc/. New C files are planned
to be added for PD notifications and other missing features. Adding
and maintaining new files from within fastrpc directory would be easy.

Example of feature that is being planned to be introduced in a new C
file:
https://lore.kernel.org/all/20240606165939.12950-6-quic_ekangupt@quicinc.com/

Signed-off-by: Ekansh Gupta <quic_ekangupt@quicinc.com>
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
---
Changes in v2:
  - Updated Kconfig.
Changes in v3:
  - Added newline in kconfig.

 MAINTAINERS                          |  2 +-
 drivers/misc/Kconfig                 | 13 +------------
 drivers/misc/Makefile                |  2 +-
 drivers/misc/fastrpc/Kconfig         | 16 ++++++++++++++++
 drivers/misc/fastrpc/Makefile        |  2 ++
 drivers/misc/{ => fastrpc}/fastrpc.c |  0
 6 files changed, 21 insertions(+), 14 deletions(-)
 create mode 100644 drivers/misc/fastrpc/Kconfig
 create mode 100644 drivers/misc/fastrpc/Makefile
 rename drivers/misc/{ => fastrpc}/fastrpc.c (100%)

diff --git a/MAINTAINERS b/MAINTAINERS
index 0b99543d9c6e..55d0fecd1a74 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -18502,7 +18502,7 @@ L:	linux-arm-msm@vger.kernel.org
 L:	dri-devel@lists.freedesktop.org
 S:	Maintained
 F:	Documentation/devicetree/bindings/misc/qcom,fastrpc.yaml
-F:	drivers/misc/fastrpc.c
+F:	drivers/misc/fastrpc/
 F:	include/uapi/misc/fastrpc.h
 
 QUALCOMM HEXAGON ARCHITECTURE
diff --git a/drivers/misc/Kconfig b/drivers/misc/Kconfig
index faf983680040..630e8ccd8669 100644
--- a/drivers/misc/Kconfig
+++ b/drivers/misc/Kconfig
@@ -276,18 +276,6 @@ config QCOM_COINCELL
 	  to maintain PMIC register and RTC state in the absence of
 	  external power.
 
-config QCOM_FASTRPC
-	tristate "Qualcomm FastRPC"
-	depends on ARCH_QCOM || COMPILE_TEST
-	depends on RPMSG
-	select DMA_SHARED_BUFFER
-	select QCOM_SCM
-	help
-	  Provides a communication mechanism that allows for clients to
-	  make remote method invocations across processor boundary to
-	  applications DSP processor. Say M if you want to enable this
-	  module.
-
 config SGI_GRU
 	tristate "SGI GRU driver"
 	depends on X86_UV && SMP
@@ -602,4 +590,5 @@ source "drivers/misc/cardreader/Kconfig"
 source "drivers/misc/uacce/Kconfig"
 source "drivers/misc/pvpanic/Kconfig"
 source "drivers/misc/mchp_pci1xxxx/Kconfig"
+source "drivers/misc/fastrpc/Kconfig"
 endmenu
diff --git a/drivers/misc/Makefile b/drivers/misc/Makefile
index 153a3f4837e8..f83d73844ea5 100644
--- a/drivers/misc/Makefile
+++ b/drivers/misc/Makefile
@@ -16,7 +16,6 @@ obj-$(CONFIG_TIFM_CORE)       	+= tifm_core.o
 obj-$(CONFIG_TIFM_7XX1)       	+= tifm_7xx1.o
 obj-$(CONFIG_PHANTOM)		+= phantom.o
 obj-$(CONFIG_QCOM_COINCELL)	+= qcom-coincell.o
-obj-$(CONFIG_QCOM_FASTRPC)	+= fastrpc.o
 obj-$(CONFIG_SENSORS_BH1770)	+= bh1770glc.o
 obj-$(CONFIG_SENSORS_APDS990X)	+= apds990x.o
 obj-$(CONFIG_ENCLOSURE_SERVICES) += enclosure.o
@@ -69,3 +68,4 @@ obj-$(CONFIG_TMR_INJECT)	+= xilinx_tmr_inject.o
 obj-$(CONFIG_TPS6594_ESM)	+= tps6594-esm.o
 obj-$(CONFIG_TPS6594_PFSM)	+= tps6594-pfsm.o
 obj-$(CONFIG_NSM)		+= nsm.o
+obj-y				+= fastrpc/
diff --git a/drivers/misc/fastrpc/Kconfig b/drivers/misc/fastrpc/Kconfig
new file mode 100644
index 000000000000..0f238560f855
--- /dev/null
+++ b/drivers/misc/fastrpc/Kconfig
@@ -0,0 +1,16 @@
+# SPDX-License-Identifier: GPL-2.0-only
+#
+# Qualcomm FastRPC devices
+#
+
+config QCOM_FASTRPC
+	tristate "Qualcomm FastRPC"
+	depends on ARCH_QCOM || COMPILE_TEST
+	depends on RPMSG
+	select DMA_SHARED_BUFFER
+	select QCOM_SCM
+	help
+	  Provides a communication mechanism that facilitate high-speed
+	  Remote Procedure Call (RPC) mechanisms between the host CPU and
+	  offload processors Qualcomm Digital Signal Processors (DSPs).
+	  Say M if you want to enable this module.
diff --git a/drivers/misc/fastrpc/Makefile b/drivers/misc/fastrpc/Makefile
new file mode 100644
index 000000000000..77fd2b763b6b
--- /dev/null
+++ b/drivers/misc/fastrpc/Makefile
@@ -0,0 +1,2 @@
+# SPDX-License-Identifier: GPL-2.0
+obj-$(CONFIG_QCOM_FASTRPC)	+= fastrpc.o
diff --git a/drivers/misc/fastrpc.c b/drivers/misc/fastrpc/fastrpc.c
similarity index 100%
rename from drivers/misc/fastrpc.c
rename to drivers/misc/fastrpc/fastrpc.c
-- 
2.34.1

.

From: Vitor Soares <ivitro@gmail.com>
To: Rob Herring <robh@kernel.org>,
	Krzysztof Kozlowski <krzk+dt@kernel.org>,
	Conor Dooley <conor+dt@kernel.org>,
	Shawn Guo <shawnguo@kernel.org>,
	Sascha Hauer <s.hauer@pengutronix.de>,
	Pengutronix Kernel Team <kernel@pengutronix.de>,
	Fabio Estevam <festevam@gmail.com>
Cc: Vitor Soares <vitor.soares@toradex.com>,
	devicetree@vger.kernel.org,
	imx@lists.linux.dev,
	linux-arm-kernel@lists.infradead.org,
	linux-kernel@vger.kernel.org,
	ivitro@gmail.com
Subject: [PATCH v2] arm64: dts: imx8mm-verdin: add TPM device
Date: Thu, 27 Jun 2024 11:48:39 +0100
Message-Id: <20240627104839.645778-1-ivitro@gmail.com>
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1260725
Newsgroups: org.kernel.vger.linux-kernel,dev.linux.lists.imx,org.infradead.lists.linux-arm-kernel,org.kernel.vger.linux-devicetree
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

From: Vitor Soares <vitor.soares@toradex.com>

Add TPM device found on Verdin iMX8M Mini PID4 0090 variant.

While adding the node, rename `pinctrl_pmic_tpm_ena` to
`pinctrl_tpm_spi_cs`.

Signed-off-by: Vitor Soares <vitor.soares@toradex.com>
---
v1->v2
  - rename `pinctrl_pmic_tpm_ena` to `pinctrl_tpm_spi_cs`.

 .../boot/dts/freescale/imx8mm-verdin.dtsi      | 18 ++++++++++++------
 1 file changed, 12 insertions(+), 6 deletions(-)

diff --git a/arch/arm64/boot/dts/freescale/imx8mm-verdin.dtsi b/arch/arm64/boot/dts/freescale/imx8mm-verdin.dtsi
index 98544741ce17..6e066bd5d982 100644
--- a/arch/arm64/boot/dts/freescale/imx8mm-verdin.dtsi
+++ b/arch/arm64/boot/dts/freescale/imx8mm-verdin.dtsi
@@ -228,15 +228,16 @@ &ecspi2 {
 	pinctrl-0 = <&pinctrl_ecspi2>;
 };
 
-/* Verdin CAN_1 (On-module) */
+/* On-module SPI */
 &ecspi3 {
 	#address-cells = <1>;
 	#size-cells = <0>;
-	cs-gpios = <&gpio5 25 GPIO_ACTIVE_LOW>;
+	cs-gpios = <&gpio5 25 GPIO_ACTIVE_LOW>, <&gpio4 19 GPIO_ACTIVE_LOW>;
 	pinctrl-names = "default";
-	pinctrl-0 = <&pinctrl_ecspi3>;
+	pinctrl-0 = <&pinctrl_ecspi3>, <&pinctrl_tpm_spi_cs>;
 	status = "okay";
 
+	/* Verdin CAN_1 */
 	can1: can@0 {
 		compatible = "microchip,mcp251xfd";
 		clocks = <&clk40m>;
@@ -246,6 +247,12 @@ can1: can@0 {
 		reg = <0>;
 		spi-max-frequency = <8500000>;
 	};
+
+	verdin_som_tpm: tpm@1 {
+		compatible = "atmel,attpm20p", "tcg,tpm_tis-spi";
+		reg = <0x1>;
+		spi-max-frequency = <36000000>;
+	};
 };
 
 /* Verdin ETH_1 (On-module PHY) */
@@ -808,8 +815,7 @@ &iomuxc {
 	pinctrl-0 = <&pinctrl_gpio1>, <&pinctrl_gpio2>,
 		    <&pinctrl_gpio3>, <&pinctrl_gpio4>,
 		    <&pinctrl_gpio7>, <&pinctrl_gpio8>,
-		    <&pinctrl_gpio_hog1>, <&pinctrl_gpio_hog2>, <&pinctrl_gpio_hog3>,
-		    <&pinctrl_pmic_tpm_ena>;
+		    <&pinctrl_gpio_hog1>, <&pinctrl_gpio_hog2>, <&pinctrl_gpio_hog3>;
 
 	pinctrl_can1_int: can1intgrp {
 		fsl,pins =
@@ -1111,7 +1117,7 @@ pinctrl_sai5: sai5grp {
 	};
 
 	/* control signal for optional ATTPM20P or SE050 */
-	pinctrl_pmic_tpm_ena: pmictpmenagrp {
+	pinctrl_tpm_spi_cs: pmictpmenagrp {
 		fsl,pins =
 			<MX8MM_IOMUXC_SAI1_TXD7_GPIO4_IO19		0x106>;	/* PMIC_TPM_ENA */
 	};
-- 
2.34.1

.

From: Sudeepgoud Patil <quic_sudeepgo@quicinc.com>
To: <quic_bjorande@quicinc.com>, <andersson@kernel.org>,
        <quic_clew@quicinc.com>, <mathieu.poirier@linaro.org>
CC: <linux-kernel@vger.kernel.org>, <quic_deesin@quicinc.com>,
        <quic_sudeepgo@quicinc.com>, <linux-arm-msm@vger.kernel.org>,
        <linux-remoteproc@vger.kernel.org>
Subject: [PATCH V3 0/2] Use of devname for interrupt descriptions and tracepoint support for smp2p
Date: Thu, 27 Jun 2024 16:18:29 +0530
Message-ID: <20240627104831.4176799-1-quic_sudeepgo@quicinc.com>
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1260727
Newsgroups: org.kernel.vger.linux-kernel,org.kernel.vger.linux-arm-msm,org.kernel.vger.linux-remoteproc
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

This commit enhances the smp2p driver by adding support for using the device
name in interrupt descriptions and introducing tracepoint functionality.
These improvements facilitate more effective debugging of smp2p-related issues.

The devname patch, along with the callback to print the irq chip name as the
device name and the removal of the ‘smp2p’ string from the irq request,
results in a unique interrupt description.

Tracepoint functionality captures essential details such as subsystem name,
negotiation specifics, supported features, bit changes, and subsystem restart
activity. These enhancements significantly improve debugging capabilities
for inter-subsystem issues.

Changes in v3:
- Updated patch to use devname for interrupt descriptions with a different approach.
- Modified tracepoint patch by removing remote_pid field from all tracepoints.
- Using SMP2P_FEATURE_SSR_ACK definition from smp2p.c instead of redefiniton. 
- Link to v2: https://lore.kernel.org/all/20240611123351.3813190-1-quic_sudeepgo@quicinc.com

Changes in v2:
- Added support to include the remote name in the smp2p IRQ devname, allowing for remote PID-name mapping
- Mapped the remote PID (Process ID) along with the remote name in tracepoints, as suggested by Chris
- Modified to capture all `out->features` instead of just the `ssr_ack`, following Chris's recommendation
- Expanded the commit description to provide additional context
- Link to v1: https://lore.kernel.org/all/20240429075528.1723133-1-quic_sudeepgo@quicinc.com

Chris Lew (1):
  soc: qcom: smp2p: Use devname for interrupt descriptions

Sudeepgoud Patil (1):
  soc: qcom: smp2p: Introduce tracepoint support

 drivers/soc/qcom/Makefile      |  1 +
 drivers/soc/qcom/smp2p.c       | 20 ++++++-
 drivers/soc/qcom/trace-smp2p.h | 98 ++++++++++++++++++++++++++++++++++
 3 files changed, 118 insertions(+), 1 deletion(-)
 create mode 100644 drivers/soc/qcom/trace-smp2p.h

-- 

.

From: Animesh Agarwal <animeshagarwal28@gmail.com>
To: 
Cc: animeshagarwal28@gmail.com,
	Daniel Baluta <daniel.baluta@nxp.com>,
	Liam Girdwood <lgirdwood@gmail.com>,
	Mark Brown <broonie@kernel.org>,
	Rob Herring <robh@kernel.org>,
	Krzysztof Kozlowski <krzk+dt@kernel.org>,
	Conor Dooley <conor+dt@kernel.org>,
	linux-sound@vger.kernel.org,
	devicetree@vger.kernel.org,
	linux-kernel@vger.kernel.org
Subject: [PATCH v2] ASoC: dt-bindings: realtek,rt5677: Convert to dtschema
Date: Thu, 27 Jun 2024 16:20:26 +0530
Message-ID: <20240627105030.14360-1-animeshagarwal28@gmail.com>
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1260730
Newsgroups: org.kernel.vger.linux-kernel,org.kernel.vger.linux-devicetree,org.kernel.vger.linux-sound
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

Convert the RT5677 audio CODEC bindings to DT schema.

Signed-off-by: Animesh Agarwal <animeshagarwal28@gmail.com>
Cc: Daniel Baluta <daniel.baluta@nxp.com>

---
Changes in v2:
  - Used consistant quotes.
  - Listed jack detect as properties instead of patternProperties.
---
 .../bindings/sound/realtek,rt5677.yaml        | 135 ++++++++++++++++++
 .../devicetree/bindings/sound/rt5677.txt      |  78 ----------
 2 files changed, 135 insertions(+), 78 deletions(-)
 create mode 100644 Documentation/devicetree/bindings/sound/realtek,rt5677.yaml
 delete mode 100644 Documentation/devicetree/bindings/sound/rt5677.txt

diff --git a/Documentation/devicetree/bindings/sound/realtek,rt5677.yaml b/Documentation/devicetree/bindings/sound/realtek,rt5677.yaml
new file mode 100644
index 000000000000..9ce23e58e5ea
--- /dev/null
+++ b/Documentation/devicetree/bindings/sound/realtek,rt5677.yaml
@@ -0,0 +1,135 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/sound/realtek,rt5677.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: RT5677 audio CODEC
+
+maintainers:
+  - Animesh Agarwal <animeshagarwal28@gmail.com>
+
+description: |
+  This device supports I2C only.
+
+  Pins on the device (for linking into audio routes):
+    * IN1P
+    * IN1N
+    * IN2P
+    * IN2N
+    * MICBIAS1
+    * DMIC1
+    * DMIC2
+    * DMIC3
+    * DMIC4
+    * LOUT1
+    * LOUT2
+    * LOUT3
+
+allOf:
+  - $ref: dai-common.yaml#
+
+properties:
+  compatible:
+    const: realtek,rt5677
+
+  reg:
+    maxItems: 1
+
+  interrupts:
+    maxItems: 1
+
+  gpio-controller: true
+
+  '#gpio-cells':
+    const: 2
+
+  realtek,pow-ldo2-gpio:
+    maxItems: 1
+    description: CODEC's POW_LDO2 pin.
+
+  realtek,reset-gpio:
+    maxItems: 1
+    description: CODEC's RESET pin. Active low.
+
+  realtek,gpio-config:
+    description: |
+      Array of six 8bit elements that configures GPIO.
+      0 - floating (reset value)
+      1 - pull down
+      2 - pull up
+    $ref: /schemas/types.yaml#/definitions/uint32-array
+    minItems: 6
+    maxItems: 6
+    items:
+      maximum: 2
+
+  realtek,jd1-gpio:
+    $ref: /schemas/types.yaml#/definitions/uint32
+    enum:
+      - 0 # OFF
+      - 1 # GPIO1 for jd1.
+      - 2 # GPIO2 for jd1.
+      - 3 # GPIO3 for jd1.
+    description: Configures GPIO Mic Jack detection 1.
+
+  realtek,jd2-gpio:
+    $ref: /schemas/types.yaml#/definitions/uint32
+    enum:
+      - 0 # OFF
+      - 1 # GPIO4 for jd2.
+      - 2 # GPIO5 for jd2.
+      - 3 # GPIO6 for jd2.
+    description: Configures GPIO Mic Jack detection 2.
+
+  realtek,jd3-gpio:
+    $ref: /schemas/types.yaml#/definitions/uint32
+    enum:
+      - 0 # OFF
+      - 1 # GPIO4 for jd3.
+      - 2 # GPIO5 for jd3.
+      - 3 # GPIO6 for jd3.
+    description: Configures GPIO Mic Jack detection 3.
+
+patternProperties:
+  '^realtek,in[1-2]-differential$':
+    type: boolean
+    description: Indicate MIC1/2 input are differential, rather than
+      single-ended.
+
+  '^realtek,lout[1-3]-differential$':
+    type: boolean
+    description: Indicate LOUT1/2/3 outputs are differential, rather than
+      single-ended.
+
+required:
+  - compatible
+  - reg
+  - interrupts
+  - gpio-controller
+  - '#gpio-cells'
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/gpio/gpio.h>
+    #include <dt-bindings/interrupt-controller/irq.h>
+
+    i2c {
+        #address-cells = <1>;
+        #size-cells = <0>;
+
+        codec@2c {
+            compatible = "realtek,rt5677";
+            reg = <0x2c>;
+            interrupt-parent = <&gpio>;
+            interrupts = <3 IRQ_TYPE_LEVEL_HIGH>;
+            gpio-controller;
+            #gpio-cells = <2>;
+            realtek,pow-ldo2-gpio = <&gpio 3 GPIO_ACTIVE_HIGH>;
+            realtek,reset-gpio = <&gpio 3 GPIO_ACTIVE_LOW>;
+            realtek,in1-differential;
+            realtek,gpio-config = <0 0 0 0 0 2>;
+        };
+    };
diff --git a/Documentation/devicetree/bindings/sound/rt5677.txt b/Documentation/devicetree/bindings/sound/rt5677.txt
deleted file mode 100644
index da2430099181..000000000000
--- a/Documentation/devicetree/bindings/sound/rt5677.txt
+++ /dev/null
@@ -1,78 +0,0 @@
-RT5677 audio CODEC
-
-This device supports I2C only.
-
-Required properties:
-
-- compatible : "realtek,rt5677".
-
-- reg : The I2C address of the device.
-
-- interrupts : The CODEC's interrupt output.
-
-- gpio-controller : Indicates this device is a GPIO controller.
-
-- #gpio-cells : Should be two. The first cell is the pin number and the
-  second cell is used to specify optional parameters (currently unused).
-
-Optional properties:
-
-- realtek,pow-ldo2-gpio : The GPIO that controls the CODEC's POW_LDO2 pin.
-- realtek,reset-gpio : The GPIO that controls the CODEC's RESET pin. Active low.
-
-- realtek,in1-differential
-- realtek,in2-differential
-- realtek,lout1-differential
-- realtek,lout2-differential
-- realtek,lout3-differential
-  Boolean. Indicate MIC1/2 input and LOUT1/2/3 outputs are differential,
-  rather than single-ended.
-
-- realtek,gpio-config
-  Array of six 8bit elements that configures GPIO.
-    0 - floating (reset value)
-    1 - pull down
-    2 - pull up
-
-- realtek,jd1-gpio
-  Configures GPIO Mic Jack detection 1.
-  Select 0 ~ 3 as OFF, GPIO1, GPIO2 and GPIO3 respectively.
-
-- realtek,jd2-gpio
-- realtek,jd3-gpio
-  Configures GPIO Mic Jack detection 2 and 3.
-  Select 0 ~ 3 as OFF, GPIO4, GPIO5 and GPIO6 respectively.
-
-Pins on the device (for linking into audio routes):
-
-  * IN1P
-  * IN1N
-  * IN2P
-  * IN2N
-  * MICBIAS1
-  * DMIC1
-  * DMIC2
-  * DMIC3
-  * DMIC4
-  * LOUT1
-  * LOUT2
-  * LOUT3
-
-Example:
-
-rt5677 {
-	compatible = "realtek,rt5677";
-	reg = <0x2c>;
-	interrupt-parent = <&gpio>;
-	interrupts = <TEGRA_GPIO(W, 3) IRQ_TYPE_LEVEL_HIGH>;
-
-	gpio-controller;
-	#gpio-cells = <2>;
-
-	realtek,pow-ldo2-gpio =
-		<&gpio TEGRA_GPIO(V, 3) GPIO_ACTIVE_HIGH>;
-	realtek,reset-gpio = <&gpio TEGRA_GPIO(BB, 3) GPIO_ACTIVE_LOW>;
-	realtek,in1-differential = "true";
-	realtek,gpio-config = /bits/ 8  <0 0 0 0 0 2>;   /* pull up GPIO6 */
-	realtek,jd2-gpio = <3>;  /* Enables Jack detection for GPIO6 */
-};
-- 
2.45.2

.

From: Usama Arif <usamaarif642@gmail.com>
To: akpm@linux-foundation.org
Cc: hannes@cmpxchg.org,
	shakeel.butt@linux.dev,
	david@redhat.com,
	ying.huang@intel.com,
	hughd@google.com,
	willy@infradead.org,
	yosryahmed@google.com,
	nphamcs@gmail.com,
	chengming.zhou@linux.dev,
	linux-mm@kvack.org,
	linux-kernel@vger.kernel.org,
	kernel-team@meta.com,
	Usama Arif <usamaarif642@gmail.com>
Subject: [PATCH v7 0/2] mm: store zero pages to be swapped out in a bitmap
Date: Thu, 27 Jun 2024 11:55:28 +0100
Message-ID: <20240627105730.3110705-1-usamaarif642@gmail.com>
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1260732 org.kvack.linux-mm:201607
Newsgroups: org.kernel.vger.linux-kernel,org.kvack.linux-mm
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

As shown in the patchseries that introduced the zswap same-filled
optimization [1], 10-20% of the pages stored in zswap are same-filled.
This is also observed across Meta's server fleet.
By using VM counters in swap_writepage (not included in this
patchseries) it was found that less than 1% of the same-filled
pages to be swapped out are non-zero pages.

For conventional swap setup (without zswap), rather than reading/writing
these pages to flash resulting in increased I/O and flash wear, a bitmap
can be used to mark these pages as zero at write time, and the pages can
be filled at read time if the bit corresponding to the page is set.

When using zswap with swap, this also means that a zswap_entry does not
need to be allocated for zero filled pages resulting in memory savings
which would offset the memory used for the bitmap.

A similar attempt was made earlier in [2] where zswap would only track
zero-filled pages instead of same-filled.
This patchseries adds zero-filled pages optimization to swap
(hence it can be used even if zswap is disabled) and removes the
same-filled code from zswap (as only 1% of the same-filled pages are
non-zero), simplifying code.

This patchseries is based on mm-unstable.

[1] https://lore.kernel.org/all/20171018104832epcms5p1b2232e2236258de3d03d1344dde9fce0@epcms5p1/
[2] https://lore.kernel.org/lkml/20240325235018.2028408-1-yosryahmed@google.com/

---
v6 -> v7: (Yosry and David):
- Change to kvmalloc_array for zeromap allocation instead of kvzalloc
  as it does an additional overflow check, and use sizeof(unsigned long)
  for allocation size calculation to take into account 32 bit kernels.

v5 -> v6 (kernel test robot <oliver.sang@intel.com>):
- change bitmap_zalloc/free to kvzalloc/free as a very large swap
  file will result in the allocation order to exceed MAX_PAGE_ORDER
  retulting in bitmap_zalloc to fail.

v4 -> v5 (Yosry):
- Correct comment about using clear_bit instead of bitmp_clear.
- Remove clearing the zeromap from swap_cluster_schedule_discard
  and swap_do_scheduled_discard.

v3 -> v4:
- remove folio_start/end_writeback when folio is zero filled at
  swap_writepage (Matthew)
- check if a large folio is partially in zeromap and return without
  folio_mark_uptodate so that an IO error is emitted, rather than
  checking zswap/disk (Yosry)
- clear zeromap in swap_free_cluster (Nhat)

v2 -> v3:
- Going back to the v1 version of the implementation (David and Shakeel)
- convert unatomic bitmap_set/clear to atomic set/clear_bit (Johannes)
- use clear_highpage instead of folio_page_zero_fill (Yosry)

v1 -> v2:
- instead of using a bitmap in swap, clear pte for zero pages and let
  do_pte_missing handle this page at page fault. (Yosry and Matthew)
- Check end of page first when checking if folio is zero filled as
  it could lead to better performance. (Yosry)

Usama Arif (2):
  mm: store zero pages to be swapped out in a bitmap
  mm: remove code to handle same filled pages

 include/linux/swap.h |   1 +
 mm/page_io.c         | 113 ++++++++++++++++++++++++++++++++++++++++++-
 mm/swapfile.c        |  20 ++++++++
 mm/zswap.c           |  86 +++-----------------------------
 4 files changed, 141 insertions(+), 79 deletions(-)

-- 
2.43.0

.

From: Wolfram Sang <wsa+renesas@sang-engineering.com>
To: linux-renesas-soc@vger.kernel.org
Cc: Wolfram Sang <wsa+renesas@sang-engineering.com>,
	linux-i2c@vger.kernel.org,
	linux-kernel@vger.kernel.org
Subject: [PATCH 0/2] i2c: testunit: regression fixes
Date: Thu, 27 Jun 2024 13:14:46 +0200
Message-ID: <20240627111445.29751-4-wsa+renesas@sang-engineering.com>
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1260754
Newsgroups: org.kernel.vger.linux-kernel,org.kernel.vger.linux-i2c,org.kernel.vger.linux-renesas-soc
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

My bad, when adding SMBUS_PROC_CALL support to the testunit, I didn't
check the old commands :( Consequently, two regressions were introduced
which get fixed by this series.


Wolfram Sang (2):
  i2c: testunit: don't erase registers after STOP
  i2c: testunit: discard write requests while old command is running

 drivers/i2c/i2c-slave-testunit.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

-- 
2.43.0

.

From: Yu Kuai <yukuai1@huaweicloud.com>
To: song@kernel.org,
	mateusz.kusiak@linux.intel.com,
	mariusz.tkaczyk@linux.intel.com,
	nfbrown@suse.de,
	hare@suse.de
Cc: linux-raid@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	yukuai3@huawei.com,
	yukuai1@huaweicloud.com,
	yi.zhang@huawei.com,
	yangerkun@huawei.com
Subject: [PATCH -next] md: don't wait for MD_RECOVERY_NEEDED for HOT_REMOVE_DISK ioctl
Date: Thu, 27 Jun 2024 19:23:21 +0800
Message-Id: <20240627112321.3044744-1-yukuai1@huaweicloud.com>
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1260767
Newsgroups: org.kernel.vger.linux-kernel,org.kernel.vger.linux-raid
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

From: Yu Kuai <yukuai3@huawei.com>

Commit 90f5f7ad4f38 ("md: Wait for md_check_recovery before attempting
device removal.") explained in the commit message that failed device
must be reomoved from the personality first by md_check_recovery(),
before it can be removed from the array. That's the reason the commit
add the code to wait for MD_RECOVERY_NEEDED.

However, this is not the case now, because remove_and_add_spares() is
called directly from hot_remove_disk() from ioctl path, hence failed
device(marked faulty) can be removed from the personality by ioctl.

On the other hand, the commit introduced a performance problem that
if MD_RECOVERY_NEEDED is set and the array is not running, ioctl will
wait for 5s before it can return failure to user.

Since the waiting is not needed now, fix the problem by removing the
waiting.

Fixes: 90f5f7ad4f38 ("md: Wait for md_check_recovery before attempting device removal.")
Reported-by: Mateusz Kusiak <mateusz.kusiak@linux.intel.com>
Closes: https://lore.kernel.org/all/814ff6ee-47a2-4ba0-963e-cf256ee4ecfa@linux.intel.com/
Signed-off-by: Yu Kuai <yukuai3@huawei.com>
---
 drivers/md/md.c | 6 ------
 1 file changed, 6 deletions(-)

diff --git a/drivers/md/md.c b/drivers/md/md.c
index c0426a6d2fd1..da3065a3c2fb 100644
--- a/drivers/md/md.c
+++ b/drivers/md/md.c
@@ -7827,12 +7827,6 @@ static int md_ioctl(struct block_device *bdev, blk_mode_t mode,
 		return get_bitmap_file(mddev, argp);
 	}
 
-	if (cmd == HOT_REMOVE_DISK)
-		/* need to ensure recovery thread has run */
-		wait_event_interruptible_timeout(mddev->sb_wait,
-						 !test_bit(MD_RECOVERY_NEEDED,
-							   &mddev->recovery),
-						 msecs_to_jiffies(5000));
 	if (cmd == STOP_ARRAY || cmd == STOP_ARRAY_RO) {
 		/* Need to flush page cache, and ensure no-one else opens
 		 * and writes
-- 
2.39.2

.

From: Xianwei Zhao via B4 Relay <devnull+xianwei.zhao.amlogic.com@kernel.org>
Subject: [PATCH 0/3] Power: A5: add power domain driver
Date: Thu, 27 Jun 2024 19:47:50 +0800
Message-Id: <20240627-a5_secpower-v1-0-1f47dde1270c@amlogic.com>
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit
To: Rob Herring <robh@kernel.org>, Krzysztof Kozlowski <krzk+dt@kernel.org>, 
 Conor Dooley <conor+dt@kernel.org>, 
 Neil Armstrong <neil.armstrong@linaro.org>, 
 Kevin Hilman <khilman@baylibre.com>, Jerome Brunet <jbrunet@baylibre.com>, 
 Martin Blumenstingl <martin.blumenstingl@googlemail.com>, 
 Jianxin Pan <jianxin.pan@amlogic.com>, Ulf Hansson <ulf.hansson@linaro.org>
Cc: devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org, 
 linux-amlogic@lists.infradead.org, linux-kernel@vger.kernel.org, 
 linux-pm@vger.kernel.org, Xianwei Zhao <xianwei.zhao@amlogic.com>, 
 Hongyu Chen <hongyu.chen1@amlogic.com>
X-Original-From: Xianwei Zhao <xianwei.zhao@amlogic.com>
Reply-To: xianwei.zhao@amlogic.com
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1260787
Newsgroups: org.kernel.vger.linux-kernel,org.infradead.lists.linux-amlogic,org.infradead.lists.linux-arm-kernel,org.kernel.feeds.b4-sent,org.kernel.vger.linux-devicetree,org.kernel.vger.linux-pm
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

Add power controller driver support for Amlogic A5 SoC. 

Signed-off-by: Xianwei Zhao <xianwei.zhao@amlogic.com>
---
Xianwei Zhao (3):
      dt-bindings: power: add Amlogic A5 power domains
      pmdomain: amlogic: Add support for A5 power domains controller
      arm64: dts: amlogic: a5: add power domain controller node

 .../bindings/power/amlogic,meson-sec-pwrc.yaml     |  1 +
 arch/arm64/boot/dts/amlogic/amlogic-a5.dtsi        | 10 +++++++++
 drivers/pmdomain/amlogic/meson-secure-pwrc.c       | 26 ++++++++++++++++++++++
 include/dt-bindings/power/amlogic,a5-pwrc.h        | 21 +++++++++++++++++
 4 files changed, 58 insertions(+)
---
base-commit: cc647e931a249605e06d3eb3ec89a7e320fc28cc
change-id: 20240627-a5_secpower-bfa1bb4bd9c4

Best regards,
-- 
Xianwei Zhao <xianwei.zhao@amlogic.com>


.

From: Bartosz Golaszewski <brgl@bgdev.pl>
To: Linus Walleij <linus.walleij@linaro.org>,
	Andy Shevchenko <andriy.shevchenko@linux.intel.com>,
	Wolfram Sang <wsa@the-dreams.de>
Cc: linux-gpio@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
Subject: [PATCH v9] gpio: virtuser: new virtual testing driver for the GPIO API
Date: Thu, 27 Jun 2024 13:51:12 +0200
Message-ID: <20240627115112.25769-1-brgl@bgdev.pl>
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1260791
Newsgroups: org.kernel.vger.linux-kernel,org.kernel.vger.linux-gpio
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

From: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>

The GPIO subsystem used to have a serious problem with undefined behavior
and use-after-free bugs on hot-unplug of GPIO chips. This can be
considered a corner-case by some as most GPIO controllers are enabled
early in the boot process and live until the system goes down but most
GPIO drivers do allow unbind over sysfs, many are loadable modules that
can be (force) unloaded and there are also GPIO devices that can be
dynamically detached, for instance CP2112 which is a USB GPIO expender.

Bugs can be triggered both from user-space as well as by in-kernel users.
We have the means of testing it from user-space via the character device
but the issues manifest themselves differently in the kernel.

This is a proposition of adding a new virtual driver - a configurable
GPIO consumer that can be configured over configfs (similarly to
gpio-sim) or described on the device-tree.

This driver is aimed as a helper in spotting any regressions in
hot-unplug handling in GPIOLIB.

Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
---
v8 -> v9:
- use debugfs instead of sysfs for more flexibility on attribute formats
- move the module back to drivers/gpio/
- extend Kconfig description
- minor tweaks and improvements across the driver
Link to v8: https://lore.kernel.org/linux-doc/20240613092830.15761-1-brgl@bgdev.pl/

v7 -> v8:
- move the driver to drivers/misc/ as it's not a GPIO provider and so
  its place is not in drivers/gpio/
- rework the data structures to make them more compact using unions
- use correct string helpers for given use-cases
- drop dependency on the gpio/driver.h, string.h and kernel.h headers
- add a patch exporting to_ext_attribute() to be used by this driver
- various minor improvements suggested by Andy
Link to v7: https://lore.kernel.org/linux-gpio/20240527144054.155503-1-brgl@bgdev.pl/

v6 -> v7:
- this is a complete rewrite of the original idea, the entire interface
  has changed so it warrants a new round of reviews
Link to v6: https://lore.kernel.org/linux-gpio/20230817184356.25020-1-brgl@bgdev.pl/

v5 -> v6:
- initialize the flags temp variables at declaration and hopefully make
  Andy happy finally :)

v4 -> v5:
- add the gpio-consumer docs to the admin-guide/gpio/ index (reported
  by kernel test robot <lkp@intel.com>)

v3 -> v4:
- fix the toggle value assignment
- use guard(mutex)() wherever we can return directly from the subsequent
  function call
- use skip_spaces() + strim() to avoid having to do a memmove() when
  stripping strings off whitespaces
- DON'T try to save a couple LOC in ifdefs if that makes them less
  readable (Andy :) )

v2 -> v3:
- use cleanup.h interfaces
- add some clarifying commets
- more minor code tweaks

RFC -> v2:
- add documentation
- fix various issues pointed out by Andy: use struct_size() where
  applicable, improve the logic when storing the 'live' property,
  improve log messages, remove commas in terminators, etc.

 .../admin-guide/gpio/gpio-virtuser.rst        |  177 ++
 Documentation/admin-guide/gpio/index.rst      |    1 +
 drivers/gpio/Kconfig                          |   16 +
 drivers/gpio/Makefile                         |    1 +
 drivers/gpio/gpio-virtuser.c                  | 1807 +++++++++++++++++
 5 files changed, 2002 insertions(+)
 create mode 100644 Documentation/admin-guide/gpio/gpio-virtuser.rst
 create mode 100644 drivers/gpio/gpio-virtuser.c

diff --git a/Documentation/admin-guide/gpio/gpio-virtuser.rst b/Documentation/admin-guide/gpio/gpio-virtuser.rst
new file mode 100644
index 000000000000..2aca70db9f3b
--- /dev/null
+++ b/Documentation/admin-guide/gpio/gpio-virtuser.rst
@@ -0,0 +1,177 @@
+.. SPDX-License-Identifier: GPL-2.0-only
+
+Virtual GPIO Consumer
+=====================
+
+The virtual GPIO Consumer module allows users to instantiate virtual devices
+that request GPIOs and then control their behavior over debugfs. Virtual
+consumer devices can be instantiated from device-tree or over configfs.
+
+A virtual consumer uses the driver-facing GPIO APIs and allows to cover it with
+automated tests driven by user-space. The GPIOs are requested using
+``gpiod_get_array()`` and so we support multiple GPIOs per connector ID.
+
+Creating GPIO consumers
+-----------------------
+
+The gpio-consumer module registers a configfs subsystem called
+``'gpio-virtuser'``. For details of the configfs filesystem, please refer to
+the configfs documentation.
+
+The user can create a hierarchy of configfs groups and items as well as modify
+values of exposed attributes. Once the consumer is instantiated, this hierarchy
+will be translated to appropriate device properties. The general structure is:
+
+**Group:** ``/config/gpio-virtuser``
+
+This is the top directory of the gpio-consumer configfs tree.
+
+**Group:** ``/config/gpio-consumer/example-name``
+
+**Attribute:** ``/config/gpio-consumer/example-name/live``
+
+**Attribute:** ``/config/gpio-consumer/example-name/dev_name``
+
+This is a directory representing a GPIO consumer device.
+
+The read-only ``dev_name`` attribute exposes the name of the device as it will
+appear in the system on the platform bus. This is useful for locating the
+associated debugfs directory under
+``/sys/kernel/debug/gpio-virtuser/$dev_name``.
+
+The ``'live'`` attribute allows to trigger the actual creation of the device
+once it's fully configured. The accepted values are: ``'1'`` to enable the
+virtual device and ``'0'`` to disable and tear it down.
+
+Creating GPIO lookup tables
+---------------------------
+
+Users can create a number of configfs groups under the device group:
+
+**Group:** ``/config/gpio-consumer/example-name/con_id``
+
+The ``'con_id'`` directory represents a single GPIO lookup and its value maps
+to the ``'con_id'`` argument of the ``gpiod_get()`` function. For example:
+``con_id`` == ``'reset'`` maps to the ``reset-gpios`` device property.
+
+Users can assign a number of GPIOs to each lookup. Each GPIO is a sub-directory
+with a user-defined name under the ``'con_id'`` group.
+
+**Attribute:** ``/config/gpio-consumer/example-name/con_id/0/key``
+
+**Attribute:** ``/config/gpio-consumer/example-name/con_id/0/offset``
+
+**Attribute:** ``/config/gpio-consumer/example-name/con_id/0/drive``
+
+**Attribute:** ``/config/gpio-consumer/example-name/con_id/0/pull``
+
+**Attribute:** ``/config/gpio-consumer/example-name/con_id/0/active_low``
+
+**Attribute:** ``/config/gpio-consumer/example-name/con_id/0/transitory``
+
+This is a group describing a single GPIO in the ``con_id-gpios`` property.
+
+For virtual consumers created using configfs we use machine lookup tables so
+this group can be considered as a mapping between the filesystem and the fields
+of a single entry in ``'struct gpiod_lookup'``.
+
+The ``'key'`` attribute represents either the name of the chip this GPIO
+belongs to or the GPIO line name. This depends on the value of the ``'offset'``
+attribute: if its value is >= 0, then ``'key'`` represents the label of the
+chip to lookup while ``'offset'`` represents the offset of the line in that
+chip. If ``'offset'`` is < 0, then ``'key'`` represents the name of the line.
+
+The remaining attributes map to the ``'flags'`` field of the GPIO lookup
+struct. The first two take string values as arguments:
+
+**``'drive'``:** ``'push-pull'``, ``'open-drain'``, ``'open-source'``
+**``'pull'``:** ``'pull-up'``, ``'pull-down'``, ``'pull-disabled'``, ``'as-is'``
+
+``'active_low'`` and ``'transitory'`` are boolean attributes.
+
+Activating GPIO consumers
+-------------------------
+
+Once the confiuration is complete, the ``'live'`` attribute must be set to 1 in
+order to instantiate the consumer. It can be set back to 0 to destroy the
+virtual device. The module will synchronously wait for the new simulated device
+to be successfully probed and if this doesn't happen, writing to ``'live'`` will
+result in an error.
+
+Device-tree
+-----------
+
+Virtual GPIO consumers can also be defined in device-tree. The compatible string
+must be: ``"gpio-virtuser"`` with at least one property following the
+standardized GPIO pattern.
+
+An example device-tree code defining a virtual GPIO consumer:
+
+.. code-block :: none
+
+    gpio-virt-consumer {
+        compatible = "gpio-virtuser";
+
+        foo-gpios = <&gpio0 5 GPIO_ACTIVE_LOW>, <&gpio1 2 0>;
+        bar-gpios = <&gpio0 6 0>;
+    };
+
+Controlling virtual GPIO consumers
+----------------------------------
+
+Once active, the device will export debugfs attributes for controlling GPIO
+arrays as well as each requested GPIO line separately. Let's consider the
+following device property: ``foo-gpios = <&gpio0 0 0>, <&gpio0 4 0>;``.
+
+The following debugfs attribute groups will be created:
+
+**Group:** ``/sys/kernel/debug/gpio-virtuser/$dev_name/gpiod:foo/``
+
+This is the group that will contain the attributes for the entire GPIO array.
+
+**Attribute:** ``/sys/kernel/debug/gpio-virtuser/$dev_name/gpiod:foo/values``
+
+**Attribute:** ``/sys/kernel/debug/gpio-virtuser/$dev_name/gpiod:foo/values_atomic``
+
+Both attributes allow to read and set arrays of GPIO values. User must pass
+exactly the number of values that the array contains in the form of a string
+containing zeroes and ones representing inactive and active GPIO states
+respectively. In this example: ``echo 11 > values``.
+
+The ``values_atomic`` attribute works the same as ``values`` but the kernel
+will execute the GPIO driver callbacks in interrupt context.
+
+**Group:** ``/sys/kernel/debug/gpio-virtuser/$dev_name/gpiod:foo:$index/``
+
+This is a group that represents a single GPIO with ``$index`` being its offset
+in the array.
+
+**Attribute:** ``/sys/kernel/debug/gpio-virtuser/$dev_name/gpiod:foo:$index/consumer``
+
+Allows to set and read the consumer label of the GPIO line.
+
+**Attribute:** ``/sys/kernel/debug/gpio-virtuser/$dev_name/gpiod:foo:$index/debounce``
+
+Allows to set and read the debounce period of the GPIO line.
+
+**Attribute:** ``/sys/kernel/debug/gpio-virtuser/$dev_name/gpiod:foo:$index/direction``
+
+**Attribute:** ``/sys/kernel/debug/gpio-virtuser/$dev_name/gpiod:foo:$index/direction_atomic``
+
+These two attributes allow to set the direction of the GPIO line. They accept
+"input" and "output" as values. The atomic variant executes the driver callback
+in interrupt context.
+
+**Attribute:** ``/sys/kernel/debug/gpio-virtuser/$dev_name/gpiod:foo:$index/interrupts``
+
+If the line is requested in input mode, writing ``1`` to this attribute will
+make the module listen for edge interrupts on the GPIO. Writing ``0`` disables
+the monitoring. Reading this attribute returns the current number of registered
+interrupts (both edges).
+
+**Attribute:** ``/sys/kernel/debug/gpio-virtuser/$dev_name/gpiod:foo:$index/value``
+
+**Attribute:** ``/sys/kernel/debug/gpio-virtuser/$dev_name/gpiod:foo:$index/value_atomic``
+
+Both attributes allow to read and set values of individual requested GPIO lines.
+They accept the following values: ``1`` and ``0``.
diff --git a/Documentation/admin-guide/gpio/index.rst b/Documentation/admin-guide/gpio/index.rst
index 460afd29617e..712f379731cb 100644
--- a/Documentation/admin-guide/gpio/index.rst
+++ b/Documentation/admin-guide/gpio/index.rst
@@ -10,6 +10,7 @@ GPIO
     Character Device Userspace API <../../userspace-api/gpio/chardev>
     gpio-aggregator
     gpio-sim
+    gpio-virtuser
     Obsolete APIs <obsolete>
 
 .. only::  subproject and html
diff --git a/drivers/gpio/Kconfig b/drivers/gpio/Kconfig
index dfb8dc850f3c..412e7a9ec49e 100644
--- a/drivers/gpio/Kconfig
+++ b/drivers/gpio/Kconfig
@@ -1891,4 +1891,20 @@ config GPIO_SIM
 
 endmenu
 
+menu "GPIO Debugging utilities"
+
+config GPIO_VIRTUSER
+	tristate "GPIO Virtual User Testing Module"
+	select DEBUG_FS
+	select CONFIGFS_FS
+	select IRQ_WORK
+	help
+	  Say Y here to enable the configurable, configfs-based virtual GPIO
+	  consumer testing driver.
+
+	  This driver is aimed as a helper in spotting any regressions in
+	  hot-unplug handling in GPIOLIB.
+
+endmenu
+
 endif
diff --git a/drivers/gpio/Makefile b/drivers/gpio/Makefile
index e2a53013780e..7813edd4ed68 100644
--- a/drivers/gpio/Makefile
+++ b/drivers/gpio/Makefile
@@ -181,6 +181,7 @@ obj-$(CONFIG_GPIO_TWL6040)		+= gpio-twl6040.o
 obj-$(CONFIG_GPIO_UNIPHIER)		+= gpio-uniphier.o
 obj-$(CONFIG_GPIO_VF610)		+= gpio-vf610.o
 obj-$(CONFIG_GPIO_VIPERBOARD)		+= gpio-viperboard.o
+obj-$(CONFIG_GPIO_VIRTUSER)		+= gpio-virtuser.o
 obj-$(CONFIG_GPIO_VIRTIO)		+= gpio-virtio.o
 obj-$(CONFIG_GPIO_VISCONTI)		+= gpio-visconti.o
 obj-$(CONFIG_GPIO_VX855)		+= gpio-vx855.o
diff --git a/drivers/gpio/gpio-virtuser.c b/drivers/gpio/gpio-virtuser.c
new file mode 100644
index 000000000000..a412b2f5954e
--- /dev/null
+++ b/drivers/gpio/gpio-virtuser.c
@@ -0,0 +1,1807 @@
+// SPDX-License-Identifier: GPL-2.0-only
+/*
+ * Configurable virtual GPIO consumer module.
+ *
+ * Copyright (C) 2023-2024 Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
+ */
+
+#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
+
+#include <linux/array_size.h>
+#include <linux/atomic.h>
+#include <linux/bitmap.h>
+#include <linux/cleanup.h>
+#include <linux/completion.h>
+#include <linux/configfs.h>
+#include <linux/debugfs.h>
+#include <linux/device.h>
+#include <linux/err.h>
+#include <linux/gpio/consumer.h>
+#include <linux/gpio/machine.h>
+#include <linux/idr.h>
+#include <linux/interrupt.h>
+#include <linux/irq_work.h>
+#include <linux/limits.h>
+#include <linux/list.h>
+#include <linux/lockdep.h>
+#include <linux/mod_devicetable.h>
+#include <linux/module.h>
+#include <linux/mutex.h>
+#include <linux/notifier.h>
+#include <linux/of.h>
+#include <linux/overflow.h>
+#include <linux/platform_device.h>
+#include <linux/printk.h>
+#include <linux/property.h>
+#include <linux/slab.h>
+#include <linux/string_helpers.h>
+#include <linux/types.h>
+
+#define GPIO_VIRTUSER_NAME_BUF_LEN 32
+
+static DEFINE_IDA(gpio_virtuser_ida);
+static struct dentry *gpio_virtuser_dbg_root;
+
+struct gpio_virtuser_attr_data {
+	union {
+		struct gpio_desc *desc;
+		struct gpio_descs *descs;
+	};
+	struct dentry *dbgfs_dir;
+};
+
+struct gpio_virtuser_line_array_data {
+	struct gpio_virtuser_attr_data ad;
+};
+
+struct gpio_virtuser_line_data {
+	struct gpio_virtuser_attr_data ad;
+	char consumer[GPIO_VIRTUSER_NAME_BUF_LEN];
+	struct mutex consumer_lock;
+	unsigned int debounce;
+	atomic_t irq;
+	atomic_t irq_count;
+};
+
+struct gpio_virtuser_dbgfs_attr_descr {
+	const char *name;
+	const struct file_operations *fops;
+};
+
+struct gpio_virtuser_irq_work_context {
+	struct irq_work work;
+	struct completion work_completion;
+	union {
+		struct {
+			struct gpio_desc *desc;
+			int dir;
+			int val;
+			int ret;
+		};
+		struct {
+			struct gpio_descs *descs;
+			unsigned long *values;
+		};
+	};
+};
+
+static struct gpio_virtuser_irq_work_context *
+to_gpio_virtuser_irq_work_context(struct irq_work *work)
+{
+	return container_of(work, struct gpio_virtuser_irq_work_context, work);
+}
+
+static void
+gpio_virtuser_init_irq_work_context(struct gpio_virtuser_irq_work_context *ctx)
+{
+	memset(ctx, 0, sizeof(*ctx));
+	init_completion(&ctx->work_completion);
+}
+
+static void
+gpio_virtuser_irq_work_queue_sync(struct gpio_virtuser_irq_work_context *ctx)
+{
+	irq_work_queue(&ctx->work);
+	wait_for_completion(&ctx->work_completion);
+}
+
+static void gpio_virtuser_dbgfs_emit_value_array(char *buf,
+						 unsigned long *values,
+						 size_t num_values)
+{
+	size_t i;
+
+	for (i = 0; i < num_values; i++)
+		buf[i] = test_bit(i, values) ? '1' : '0';
+
+	buf[i++] = '\n';
+}
+
+static void gpio_virtuser_get_value_array_atomic(struct irq_work *work)
+{
+	struct gpio_virtuser_irq_work_context *ctx =
+				to_gpio_virtuser_irq_work_context(work);
+	struct gpio_descs *descs = ctx->descs;
+
+	ctx->ret = gpiod_get_array_value(descs->ndescs, descs->desc,
+					 descs->info, ctx->values);
+	complete(&ctx->work_completion);
+}
+
+static int gpio_virtuser_get_array_value(struct gpio_descs *descs,
+					 unsigned long *values, bool atomic)
+{
+	struct gpio_virtuser_irq_work_context ctx;
+
+	if (!atomic)
+		return gpiod_get_array_value_cansleep(descs->ndescs,
+						      descs->desc,
+						      descs->info, values);
+
+	gpio_virtuser_init_irq_work_context(&ctx);
+	ctx.work = IRQ_WORK_INIT_HARD(gpio_virtuser_get_value_array_atomic);
+	ctx.descs = descs;
+	ctx.values = values;
+
+	gpio_virtuser_irq_work_queue_sync(&ctx);
+
+	return ctx.ret;
+}
+
+static ssize_t gpio_virtuser_value_array_do_read(struct file *file,
+						 char __user *user_buf,
+						 size_t size, loff_t *ppos,
+						 bool atomic)
+{
+	struct gpio_virtuser_line_data *data = file->private_data;
+	struct gpio_descs *descs = data->ad.descs;
+	size_t bufsize;
+	int ret;
+
+	unsigned long *values __free(bitmap) = bitmap_zalloc(descs->ndescs,
+							     GFP_KERNEL);
+	if (!values)
+		return -ENOMEM;
+
+	ret = gpio_virtuser_get_array_value(descs, values, atomic);
+	if (ret)
+		return ret;
+
+	bufsize = descs->ndescs + 2;
+
+	char *buf __free(kfree) = kzalloc(bufsize, GFP_KERNEL);
+	if (!buf)
+		return -ENOMEM;
+
+	gpio_virtuser_dbgfs_emit_value_array(buf, values, descs->ndescs);
+
+	return simple_read_from_buffer(user_buf, size, ppos, buf,
+				       descs->ndescs + 1);
+}
+
+static int gpio_virtuser_dbgfs_parse_value_array(const char *buf,
+						 size_t len,
+						 unsigned long *values)
+{
+	size_t i;
+
+	for (i = 0; i < len; i++) {
+		if (buf[i] == '0')
+			clear_bit(i, values);
+		else if (buf[i] == '1')
+			set_bit(i, values);
+		else
+			return -EINVAL;
+	}
+
+	return 0;
+}
+
+static void gpio_virtuser_set_value_array_atomic(struct irq_work *work)
+{
+	struct gpio_virtuser_irq_work_context *ctx =
+				to_gpio_virtuser_irq_work_context(work);
+	struct gpio_descs *descs = ctx->descs;
+
+	ctx->ret = gpiod_set_array_value(descs->ndescs, descs->desc,
+					 descs->info, ctx->values);
+	complete(&ctx->work_completion);
+}
+
+static int gpio_virtuser_set_array_value(struct gpio_descs *descs,
+					 unsigned long *values, bool atomic)
+{
+	struct gpio_virtuser_irq_work_context ctx;
+
+	if (!atomic)
+		return gpiod_set_array_value_cansleep(descs->ndescs,
+						      descs->desc,
+						      descs->info, values);
+
+	gpio_virtuser_init_irq_work_context(&ctx);
+	ctx.work = IRQ_WORK_INIT_HARD(gpio_virtuser_set_value_array_atomic);
+	ctx.descs = descs;
+	ctx.values = values;
+
+	gpio_virtuser_irq_work_queue_sync(&ctx);
+
+	return ctx.ret;
+}
+
+static ssize_t gpio_virtuser_value_array_do_write(struct file *file,
+						  const char __user *user_buf,
+						  size_t count, loff_t *ppos,
+						  bool atomic)
+{
+	struct gpio_virtuser_line_data *data = file->private_data;
+	struct gpio_descs *descs = data->ad.descs;
+	int ret;
+
+	if (count - 1 != descs->ndescs)
+		return -EINVAL;
+
+	char *buf __free(kfree) = kzalloc(count, GFP_KERNEL);
+	if (!buf)
+		return -ENOMEM;
+
+	ret = simple_write_to_buffer(buf, count, ppos, user_buf, count);
+	if (ret < 0)
+		return ret;
+
+	unsigned long *values __free(bitmap) = bitmap_zalloc(descs->ndescs,
+							     GFP_KERNEL);
+	if (!values)
+		return -ENOMEM;
+
+	ret = gpio_virtuser_dbgfs_parse_value_array(buf, count - 1, values);
+	if (ret)
+		return ret;
+
+	ret = gpio_virtuser_set_array_value(descs, values, atomic);
+	if (ret)
+		return ret;
+
+	return count;
+}
+
+static ssize_t gpio_virtuser_value_array_read(struct file *file,
+					      char __user *user_buf,
+					      size_t count, loff_t *ppos)
+{
+	return gpio_virtuser_value_array_do_read(file, user_buf, count, ppos,
+						 false);
+}
+
+static ssize_t gpio_virtuser_value_array_write(struct file *file,
+					       const char __user *user_buf,
+					       size_t count, loff_t *ppos)
+{
+	return gpio_virtuser_value_array_do_write(file, user_buf, count, ppos,
+						  false);
+}
+
+static const struct file_operations gpio_virtuser_value_array_fops = {
+	.read = gpio_virtuser_value_array_read,
+	.write = gpio_virtuser_value_array_write,
+	.open = simple_open,
+	.owner = THIS_MODULE,
+	.llseek = default_llseek,
+};
+
+static ssize_t
+gpio_virtuser_value_array_atomic_read(struct file *file, char __user *user_buf,
+				      size_t count, loff_t *ppos)
+{
+	return gpio_virtuser_value_array_do_read(file, user_buf, count, ppos,
+						 true);
+}
+
+static ssize_t
+gpio_virtuser_value_array_atomic_write(struct file *file,
+				       const char __user *user_buf,
+				       size_t count, loff_t *ppos)
+{
+	return gpio_virtuser_value_array_do_write(file, user_buf, count, ppos,
+						  true);
+}
+
+static const struct file_operations gpio_virtuser_value_array_atomic_fops = {
+	.read = gpio_virtuser_value_array_atomic_read,
+	.write = gpio_virtuser_value_array_atomic_write,
+	.open = simple_open,
+	.owner = THIS_MODULE,
+	.llseek = default_llseek,
+};
+
+static void gpio_virtuser_do_get_direction_atomic(struct irq_work *work)
+{
+	struct gpio_virtuser_irq_work_context *ctx =
+				to_gpio_virtuser_irq_work_context(work);
+
+	ctx->ret = gpiod_get_direction(ctx->desc);
+	complete(&ctx->work_completion);
+}
+
+static int gpio_virtuser_get_direction_atomic(struct gpio_desc *desc)
+{
+	struct gpio_virtuser_irq_work_context ctx;
+
+	gpio_virtuser_init_irq_work_context(&ctx);
+	ctx.work = IRQ_WORK_INIT_HARD(gpio_virtuser_do_get_direction_atomic);
+	ctx.desc = desc;
+
+	gpio_virtuser_irq_work_queue_sync(&ctx);
+
+	return ctx.ret;
+}
+
+static ssize_t gpio_virtuser_direction_do_read(struct file *file,
+					       char __user *user_buf,
+					       size_t size, loff_t *ppos,
+					       bool atomic)
+{
+	struct gpio_virtuser_line_data *data = file->private_data;
+	struct gpio_desc *desc = data->ad.desc;
+	char buf[32];
+	int dir;
+
+	if (!atomic)
+		dir = gpiod_get_direction(desc);
+	else
+		dir = gpio_virtuser_get_direction_atomic(desc);
+	if (dir < 0)
+		return dir;
+
+	snprintf(buf, sizeof(buf), "%s\n", dir ? "input" : "output");
+
+	return simple_read_from_buffer(user_buf, size, ppos, buf, strlen(buf));
+}
+
+static int gpio_virtuser_set_direction(struct gpio_desc *desc, int dir, int val)
+{
+	if (dir)
+		return gpiod_direction_input(desc);
+
+	return gpiod_direction_output(desc, val);
+}
+
+static void gpio_virtuser_do_set_direction_atomic(struct irq_work *work)
+{
+	struct gpio_virtuser_irq_work_context *ctx =
+				to_gpio_virtuser_irq_work_context(work);
+
+	ctx->ret = gpio_virtuser_set_direction(ctx->desc, ctx->dir, ctx->val);
+	complete(&ctx->work_completion);
+}
+
+static int gpio_virtuser_set_direction_atomic(struct gpio_desc *desc,
+					      int dir, int val)
+{
+	struct gpio_virtuser_irq_work_context ctx;
+
+	gpio_virtuser_init_irq_work_context(&ctx);
+	ctx.work = IRQ_WORK_INIT_HARD(gpio_virtuser_do_set_direction_atomic);
+	ctx.desc = desc;
+	ctx.dir = dir;
+	ctx.val = val;
+
+	gpio_virtuser_irq_work_queue_sync(&ctx);
+
+	return ctx.ret;
+}
+
+static ssize_t gpio_virtuser_direction_do_write(struct file *file,
+						const char __user *user_buf,
+						size_t count, loff_t *ppos,
+						bool atomic)
+{
+	struct gpio_virtuser_line_data *data = file->private_data;
+	struct gpio_desc *desc = data->ad.desc;
+	char buf[32], *trimmed;
+	int ret, dir, val = 0;
+
+	ret = simple_write_to_buffer(buf, sizeof(buf), ppos, user_buf, count);
+	if (ret < 0)
+		return ret;
+
+	trimmed = strim(buf);
+
+	if (strcmp(buf, "input") == 0) {
+		dir = 1;
+	} else if (strcmp(buf, "output-high") == 0) {
+		dir = 0;
+		val = 1;
+	} else if (strcmp(buf, "output-low") == 0) {
+		dir = val = 0;
+	} else {
+		return -EINVAL;
+	}
+
+	if (!atomic)
+		ret = gpio_virtuser_set_direction(desc, dir, val);
+	else
+		ret = gpio_virtuser_set_direction_atomic(desc, dir, val);
+	if (ret)
+		return ret;
+
+	return count;
+}
+
+static ssize_t gpio_virtuser_direction_read(struct file *file,
+					    char __user *user_buf,
+					    size_t size, loff_t *ppos)
+{
+	return gpio_virtuser_direction_do_read(file, user_buf, size, ppos,
+					       false);
+}
+
+static ssize_t gpio_virtuser_direction_write(struct file *file,
+					     const char __user *user_buf,
+					     size_t count, loff_t *ppos)
+{
+	return gpio_virtuser_direction_do_write(file, user_buf, count, ppos,
+						false);
+}
+
+static const struct file_operations gpio_virtuser_direction_fops = {
+	.read = gpio_virtuser_direction_read,
+	.write = gpio_virtuser_direction_write,
+	.open = simple_open,
+	.owner = THIS_MODULE,
+	.llseek = default_llseek,
+};
+
+static ssize_t gpio_virtuser_direction_atomic_read(struct file *file,
+						   char __user *user_buf,
+						   size_t size, loff_t *ppos)
+{
+	return gpio_virtuser_direction_do_read(file, user_buf, size, ppos,
+					       true);
+}
+
+static ssize_t gpio_virtuser_direction_atomic_write(struct file *file,
+						    const char __user *user_buf,
+						    size_t count, loff_t *ppos)
+{
+	return gpio_virtuser_direction_do_write(file, user_buf, count, ppos,
+						true);
+}
+
+static const struct file_operations gpio_virtuser_direction_atomic_fops = {
+	.read = gpio_virtuser_direction_atomic_read,
+	.write = gpio_virtuser_direction_atomic_write,
+	.open = simple_open,
+	.owner = THIS_MODULE,
+	.llseek = default_llseek,
+};
+
+static int gpio_virtuser_value_get(void *data, u64 *val)
+{
+	struct gpio_virtuser_line_data *ld = data;
+	int ret;
+
+	ret = gpiod_get_value_cansleep(ld->ad.desc);
+	if (ret < 0)
+		return ret;
+
+	*val = ret;
+
+	return 0;
+}
+
+static int gpio_virtuser_value_set(void *data, u64 val)
+{
+	struct gpio_virtuser_line_data *ld = data;
+
+	if (val > 1)
+		return -EINVAL;
+
+	gpiod_set_value_cansleep(ld->ad.desc, (int)val);
+
+	return 0;
+}
+
+DEFINE_DEBUGFS_ATTRIBUTE(gpio_virtuser_value_fops,
+			 gpio_virtuser_value_get,
+			 gpio_virtuser_value_set,
+			 "%llu\n");
+
+static void gpio_virtuser_get_value_atomic(struct irq_work *work)
+{
+	struct gpio_virtuser_irq_work_context *ctx =
+				to_gpio_virtuser_irq_work_context(work);
+
+	ctx->val = gpiod_get_value(ctx->desc);
+	complete(&ctx->work_completion);
+}
+
+static int gpio_virtuser_value_atomic_get(void *data, u64 *val)
+{
+	struct gpio_virtuser_line_data *ld = data;
+	struct gpio_virtuser_irq_work_context ctx;
+
+	gpio_virtuser_init_irq_work_context(&ctx);
+	ctx.work = IRQ_WORK_INIT_HARD(gpio_virtuser_get_value_atomic);
+	ctx.desc = ld->ad.desc;
+
+	gpio_virtuser_irq_work_queue_sync(&ctx);
+
+	if (ctx.val < 0)
+		return ctx.val;
+
+	*val = ctx.val;
+
+	return 0;
+}
+
+static void gpio_virtuser_set_value_atomic(struct irq_work *work)
+{
+	struct gpio_virtuser_irq_work_context *ctx =
+			to_gpio_virtuser_irq_work_context(work);
+
+	gpiod_set_value(ctx->desc, ctx->val);
+	complete(&ctx->work_completion);
+}
+
+static int gpio_virtuser_value_atomic_set(void *data, u64 val)
+{
+	struct gpio_virtuser_line_data *ld = data;
+	struct gpio_virtuser_irq_work_context ctx;
+
+	if (val > 1)
+		return -EINVAL;
+
+	gpio_virtuser_init_irq_work_context(&ctx);
+	ctx.work = IRQ_WORK_INIT_HARD(gpio_virtuser_set_value_atomic);
+	ctx.desc = ld->ad.desc;
+	ctx.val = (int)val;
+
+	gpio_virtuser_irq_work_queue_sync(&ctx);
+
+	return 0;
+}
+
+DEFINE_DEBUGFS_ATTRIBUTE(gpio_virtuser_value_atomic_fops,
+			 gpio_virtuser_value_atomic_get,
+			 gpio_virtuser_value_atomic_set,
+			 "%llu\n");
+
+static int gpio_virtuser_debounce_get(void *data, u64 *val)
+{
+	struct gpio_virtuser_line_data *ld = data;
+
+	*val = READ_ONCE(ld->debounce);
+
+	return 0;
+}
+
+static int gpio_virtuser_debounce_set(void *data, u64 val)
+{
+	struct gpio_virtuser_line_data *ld = data;
+	int ret;
+
+	if (val > UINT_MAX)
+		return -E2BIG;
+
+	ret = gpiod_set_debounce(ld->ad.desc, (unsigned int)val);
+	if (ret)
+		/* Don't propagate errno unknown to user-space. */
+		return ret == -ENOTSUPP ? -EOPNOTSUPP : ret;
+
+	WRITE_ONCE(ld->debounce, (unsigned int)val);
+
+	return 0;
+}
+
+DEFINE_DEBUGFS_ATTRIBUTE(gpio_virtuser_debounce_fops,
+			 gpio_virtuser_debounce_get,
+			 gpio_virtuser_debounce_set,
+			 "%llu\n");
+
+static ssize_t gpio_virtuser_consumer_read(struct file *file,
+					   char __user *user_buf,
+					   size_t size, loff_t *ppos)
+{
+	struct gpio_virtuser_line_data *data = file->private_data;
+	char buf[GPIO_VIRTUSER_NAME_BUF_LEN + 1];
+	ssize_t ret;
+
+	memset(buf, 0x0, sizeof(buf));
+
+	scoped_guard(mutex, &data->consumer_lock)
+		ret = snprintf(buf, sizeof(buf), "%s\n", data->consumer);
+
+	return simple_read_from_buffer(user_buf, size, ppos, buf, ret);
+}
+
+static ssize_t gpio_virtuser_consumer_write(struct file *file,
+					    const char __user *user_buf,
+					    size_t count, loff_t *ppos)
+{
+	struct gpio_virtuser_line_data *data = file->private_data;
+	char buf[GPIO_VIRTUSER_NAME_BUF_LEN + 2];
+	int ret;
+
+	ret = simple_write_to_buffer(buf, GPIO_VIRTUSER_NAME_BUF_LEN, ppos,
+				     user_buf, count);
+	if (ret < 0)
+		return ret;
+
+	buf[strlen(buf) - 1] = '\0';
+
+	ret = gpiod_set_consumer_name(data->ad.desc, buf);
+	if (ret)
+		return ret;
+
+	scoped_guard(mutex, &data->consumer_lock)
+		strscpy(data->consumer, buf, sizeof(buf));
+
+	return count;
+}
+
+static const struct file_operations gpio_virtuser_consumer_fops = {
+	.read = gpio_virtuser_consumer_read,
+	.write = gpio_virtuser_consumer_write,
+	.open = simple_open,
+	.owner = THIS_MODULE,
+	.llseek = default_llseek,
+};
+
+static int gpio_virtuser_interrupts_get(void *data, u64 *val)
+{
+	struct gpio_virtuser_line_data *ld = data;
+
+	*val = atomic_read(&ld->irq_count);
+
+	return 0;
+}
+
+static irqreturn_t gpio_virtuser_irq_handler(int irq, void *data)
+{
+	struct gpio_virtuser_line_data *ld = data;
+
+	atomic_inc(&ld->irq_count);
+
+	return IRQ_HANDLED;
+}
+
+static int gpio_virtuser_interrupts_set(void *data, u64 val)
+{
+	struct gpio_virtuser_line_data *ld = data;
+	int irq, ret;
+
+	if (val > 1)
+		return -EINVAL;
+
+	if (val) {
+		irq = gpiod_to_irq(ld->ad.desc);
+		if (irq < 0)
+			return irq;
+
+		ret = request_threaded_irq(irq, NULL,
+					   gpio_virtuser_irq_handler,
+					   IRQF_TRIGGER_RISING |
+					   IRQF_TRIGGER_FALLING |
+					   IRQF_ONESHOT,
+					   ld->consumer, data);
+		if (ret)
+			return ret;
+
+		atomic_set(&ld->irq, irq);
+	} else {
+		irq = atomic_xchg(&ld->irq, 0);
+		free_irq(irq, ld);
+	}
+
+	return 0;
+}
+
+DEFINE_DEBUGFS_ATTRIBUTE(gpio_virtuser_interrupts_fops,
+			 gpio_virtuser_interrupts_get,
+			 gpio_virtuser_interrupts_set,
+			 "%llu\n");
+
+static const struct gpio_virtuser_dbgfs_attr_descr
+gpio_virtuser_line_array_dbgfs_attrs[] = {
+	{
+		.name = "values",
+		.fops = &gpio_virtuser_value_array_fops,
+	},
+	{
+		.name = "values_atomic",
+		.fops = &gpio_virtuser_value_array_atomic_fops,
+	},
+};
+
+static const struct gpio_virtuser_dbgfs_attr_descr
+gpio_virtuser_line_dbgfs_attrs[] = {
+	{
+		.name = "direction",
+		.fops = &gpio_virtuser_direction_fops,
+	},
+	{
+		.name = "direction_atomic",
+		.fops = &gpio_virtuser_direction_atomic_fops,
+	},
+	{
+		.name = "value",
+		.fops = &gpio_virtuser_value_fops,
+	},
+	{
+		.name = "value_atomic",
+		.fops = &gpio_virtuser_value_atomic_fops,
+	},
+	{
+		.name = "debounce",
+		.fops = &gpio_virtuser_debounce_fops,
+	},
+	{
+		.name = "consumer",
+		.fops = &gpio_virtuser_consumer_fops,
+	},
+	{
+		.name = "interrupts",
+		.fops = &gpio_virtuser_interrupts_fops,
+	},
+};
+
+static int gpio_virtuser_create_debugfs_attrs(
+			const struct gpio_virtuser_dbgfs_attr_descr *attr,
+			size_t num_attrs, struct dentry *parent, void *data)
+{
+	struct dentry *ret;
+	size_t i;
+
+	for (i = 0; i < num_attrs; i++, attr++) {
+		ret = debugfs_create_file(attr->name, 0644, parent, data,
+					  attr->fops);
+		if (IS_ERR(ret))
+			return PTR_ERR(ret);
+	}
+
+	return 0;
+}
+
+static int gpio_virtuser_dbgfs_init_line_array_attrs(struct device *dev,
+						     struct gpio_descs *descs,
+						     const char *id,
+						     struct dentry *dbgfs_entry)
+{
+	struct gpio_virtuser_line_array_data *data;
+	char *name;
+
+	data = devm_kzalloc(dev, sizeof(*data), GFP_KERNEL);
+	if (!data)
+		return -ENOMEM;
+
+	data->ad.descs = descs;
+
+	name = devm_kasprintf(dev, GFP_KERNEL, "gpiod:%s", id);
+	if (!name)
+		return -ENOMEM;
+
+	data->ad.dbgfs_dir = debugfs_create_dir(name, dbgfs_entry);
+	if (IS_ERR(data->ad.dbgfs_dir))
+		return PTR_ERR(data->ad.dbgfs_dir);
+
+	return gpio_virtuser_create_debugfs_attrs(
+			gpio_virtuser_line_array_dbgfs_attrs,
+			ARRAY_SIZE(gpio_virtuser_line_array_dbgfs_attrs),
+			data->ad.dbgfs_dir, data);
+}
+
+static int gpio_virtuser_dbgfs_init_line_attrs(struct device *dev,
+					       struct gpio_desc *desc,
+					       const char *id,
+					       unsigned int index,
+					       struct dentry *dbgfs_entry)
+{
+	struct gpio_virtuser_line_data *data;
+	char *name;
+	int ret;
+
+	data = devm_kzalloc(dev, sizeof(*data), GFP_KERNEL);
+	if (!data)
+		return -ENOMEM;
+
+	data->ad.desc = desc;
+	sprintf(data->consumer, id);
+	atomic_set(&data->irq, 0);
+	atomic_set(&data->irq_count, 0);
+
+	name = devm_kasprintf(dev, GFP_KERNEL, "gpiod:%s:%u", id, index);
+	if (!name)
+		return -ENOMEM;
+
+	ret = devm_mutex_init(dev, &data->consumer_lock);
+	if (ret)
+		return ret;
+
+	data->ad.dbgfs_dir = debugfs_create_dir(name, dbgfs_entry);
+	if (IS_ERR(data->ad.dbgfs_dir))
+		return PTR_ERR(data->ad.dbgfs_dir);
+
+	return gpio_virtuser_create_debugfs_attrs(
+				gpio_virtuser_line_dbgfs_attrs,
+				ARRAY_SIZE(gpio_virtuser_line_dbgfs_attrs),
+				data->ad.dbgfs_dir, data);
+}
+
+static void gpio_virtuser_debugfs_remove(void *data)
+{
+	struct dentry *dbgfs_entry = data;
+
+	debugfs_remove_recursive(dbgfs_entry);
+}
+
+static int gpio_virtuser_prop_is_gpio(struct property *prop)
+{
+	char *dash = strrchr(prop->name, '-');
+
+	return dash && strcmp(dash, "-gpios") == 0;
+}
+
+/*
+ * If this is an OF-based system, then we iterate over properties and consider
+ * all whose names end in "-gpios". For configfs we expect an additional string
+ * array property - "gpio-virtuser,ids" - containing the list of all GPIO IDs
+ * to request.
+ */
+static int gpio_virtuser_count_ids(struct device *dev)
+{
+	struct device_node *of_node = dev_of_node(dev);
+	struct property *prop;
+	int ret = 0;
+
+	if (!of_node)
+		return device_property_string_array_count(dev,
+							  "gpio-virtuser,ids");
+
+	for_each_property_of_node(of_node, prop) {
+		if (gpio_virtuser_prop_is_gpio(prop))
+			++ret;
+	}
+
+	return ret;
+}
+
+static int gpio_virtuser_get_ids(struct device *dev, const char **ids,
+				 int num_ids)
+{
+	struct device_node *of_node = dev_of_node(dev);
+	struct property *prop;
+	size_t pos = 0, diff;
+	char *dash, *tmp;
+
+	if (!of_node)
+		return device_property_read_string_array(dev,
+							 "gpio-virtuser,ids",
+							 ids, num_ids);
+
+	for_each_property_of_node(of_node, prop) {
+		if (!gpio_virtuser_prop_is_gpio(prop))
+			continue;
+
+		dash = strrchr(prop->name, '-');
+		diff = dash - prop->name;
+
+		tmp = devm_kmemdup(dev, prop->name, diff + 1,
+				   GFP_KERNEL);
+		if (!tmp)
+			return -ENOMEM;
+
+		tmp[diff] = '\0';
+		ids[pos++] = tmp;
+	}
+
+	return 0;
+}
+
+static int gpio_virtuser_probe(struct platform_device *pdev)
+{
+	struct device *dev = &pdev->dev;
+	struct dentry *dbgfs_entry;
+	struct gpio_descs *descs;
+	int ret, num_ids = 0, i;
+	const char **ids;
+	unsigned int j;
+
+	num_ids = gpio_virtuser_count_ids(dev);
+	if (num_ids < 0)
+		return dev_err_probe(dev, num_ids,
+				     "Failed to get the number of GPIOs to request\n");
+
+	if (num_ids == 0)
+		return dev_err_probe(dev, -EINVAL, "No GPIO IDs specified\n");
+
+	ids = devm_kcalloc(dev, num_ids, sizeof(*ids), GFP_KERNEL);
+	if (!ids)
+		return -ENOMEM;
+
+	ret = gpio_virtuser_get_ids(dev, ids, num_ids);
+	if (ret < 0)
+		return dev_err_probe(dev, ret,
+				     "Failed to get the IDs of GPIOs to request\n");
+
+	dbgfs_entry = debugfs_create_dir(dev_name(dev), gpio_virtuser_dbg_root);
+	ret = devm_add_action_or_reset(dev, gpio_virtuser_debugfs_remove,
+				       dbgfs_entry);
+	if (ret)
+		return ret;
+
+	for (i = 0; i < num_ids; i++) {
+		descs = devm_gpiod_get_array(dev, ids[i], GPIOD_ASIS);
+		if (IS_ERR(descs))
+			return dev_err_probe(dev, PTR_ERR(descs),
+					     "Failed to request the '%s' GPIOs\n",
+					     ids[i]);
+
+		ret = gpio_virtuser_dbgfs_init_line_array_attrs(dev, descs,
+								ids[i],
+								dbgfs_entry);
+		if (ret)
+			return dev_err_probe(dev, ret,
+					     "Failed to setup the debugfs array interface for the '%s' GPIOs\n",
+					     ids[i]);
+
+		for (j = 0; j < descs->ndescs; j++) {
+			ret = gpio_virtuser_dbgfs_init_line_attrs(dev,
+							descs->desc[j], ids[i],
+							j, dbgfs_entry);
+			if (ret)
+				return dev_err_probe(dev, ret,
+						     "Failed to setup the debugfs line interface for the '%s' GPIOs\n",
+						     ids[i]);
+		}
+	}
+
+	return 0;
+}
+
+static const struct of_device_id gpio_virtuser_of_match[] = {
+	{ .compatible = "gpio-virtuser" },
+	{ }
+};
+MODULE_DEVICE_TABLE(of, gpio_virtuser_of_match);
+
+static struct platform_driver gpio_virtuser_driver = {
+	.driver = {
+		.name = "gpio-virtuser",
+		.of_match_table = gpio_virtuser_of_match,
+	},
+	.probe = gpio_virtuser_probe,
+};
+
+struct gpio_virtuser_device {
+	struct config_group group;
+
+	struct platform_device *pdev;
+	int id;
+	struct mutex lock;
+
+	struct notifier_block bus_notifier;
+	struct completion probe_completion;
+	bool driver_bound;
+
+	struct gpiod_lookup_table *lookup_table;
+
+	struct list_head lookup_list;
+};
+
+static int gpio_virtuser_bus_notifier_call(struct notifier_block *nb,
+					   unsigned long action, void *data)
+{
+	struct gpio_virtuser_device *vdev;
+	struct device *dev = data;
+	char devname[32];
+
+	vdev = container_of(nb, struct gpio_virtuser_device, bus_notifier);
+	snprintf(devname, sizeof(devname), "gpio-virtuser.%d", vdev->id);
+
+	if (!device_match_name(dev, devname))
+		return NOTIFY_DONE;
+
+	switch (action) {
+	case BUS_NOTIFY_BOUND_DRIVER:
+		vdev->driver_bound = true;
+		break;
+	case BUS_NOTIFY_DRIVER_NOT_BOUND:
+		vdev->driver_bound = false;
+		break;
+	default:
+		return NOTIFY_DONE;
+	}
+
+	complete(&vdev->probe_completion);
+	return NOTIFY_OK;
+}
+
+static struct gpio_virtuser_device *
+to_gpio_virtuser_device(struct config_item *item)
+{
+	struct config_group *group = to_config_group(item);
+
+	return container_of(group, struct gpio_virtuser_device, group);
+}
+
+static bool
+gpio_virtuser_device_is_live(struct gpio_virtuser_device *dev)
+{
+	lockdep_assert_held(&dev->lock);
+
+	return !!dev->pdev;
+}
+
+struct gpio_virtuser_lookup {
+	struct config_group group;
+
+	struct gpio_virtuser_device *parent;
+	struct list_head siblings;
+
+	char *con_id;
+
+	struct list_head entry_list;
+};
+
+static struct gpio_virtuser_lookup *
+to_gpio_virtuser_lookup(struct config_item *item)
+{
+	struct config_group *group = to_config_group(item);
+
+	return container_of(group, struct gpio_virtuser_lookup, group);
+}
+
+struct gpio_virtuser_lookup_entry {
+	struct config_group group;
+
+	struct gpio_virtuser_lookup *parent;
+	struct list_head siblings;
+
+	char *key;
+	/* Can be negative to indicate lookup by name. */
+	int offset;
+	enum gpio_lookup_flags flags;
+};
+
+static struct gpio_virtuser_lookup_entry *
+to_gpio_virtuser_lookup_entry(struct config_item *item)
+{
+	struct config_group *group = to_config_group(item);
+
+	return container_of(group, struct gpio_virtuser_lookup_entry, group);
+}
+
+static ssize_t
+gpio_virtuser_lookup_entry_config_key_show(struct config_item *item, char *page)
+{
+	struct gpio_virtuser_lookup_entry *entry =
+					to_gpio_virtuser_lookup_entry(item);
+	struct gpio_virtuser_device *dev = entry->parent->parent;
+
+	guard(mutex)(&dev->lock);
+
+	return sprintf(page, "%s\n", entry->key ?: "");
+}
+
+static ssize_t
+gpio_virtuser_lookup_entry_config_key_store(struct config_item *item,
+					    const char *page, size_t count)
+{
+	struct gpio_virtuser_lookup_entry *entry =
+					to_gpio_virtuser_lookup_entry(item);
+	struct gpio_virtuser_device *dev = entry->parent->parent;
+
+	char *key __free(kfree) = kstrndup(skip_spaces(page), count,
+					   GFP_KERNEL);
+	if (!key)
+		return -ENOMEM;
+
+	strim(key);
+
+	guard(mutex)(&dev->lock);
+
+	if (gpio_virtuser_device_is_live(dev))
+		return -EBUSY;
+
+	kfree(entry->key);
+	entry->key = no_free_ptr(key);
+
+	return count;
+}
+
+CONFIGFS_ATTR(gpio_virtuser_lookup_entry_config_, key);
+
+static ssize_t
+gpio_virtuser_lookup_entry_config_offset_show(struct config_item *item,
+					      char *page)
+{
+	struct gpio_virtuser_lookup_entry *entry =
+					to_gpio_virtuser_lookup_entry(item);
+	struct gpio_virtuser_device *dev = entry->parent->parent;
+	unsigned int offset;
+
+	scoped_guard(mutex, &dev->lock)
+		offset = entry->offset;
+
+	return sprintf(page, "%d\n", offset);
+}
+
+static ssize_t
+gpio_virtuser_lookup_entry_config_offset_store(struct config_item *item,
+					       const char *page, size_t count)
+{
+	struct gpio_virtuser_lookup_entry *entry =
+					to_gpio_virtuser_lookup_entry(item);
+	struct gpio_virtuser_device *dev = entry->parent->parent;
+	int offset, ret;
+
+	ret = kstrtoint(page, 0, &offset);
+	if (ret)
+		return ret;
+
+	/*
+	 * Negative number here means: 'key' represents a line name to lookup.
+	 * Non-negative means: 'key' represents the label of the chip with
+	 * the 'offset' value representing the line within that chip.
+	 *
+	 * GPIOLIB uses the U16_MAX value to indicate lookup by line name so
+	 * the greatest offset we can accept is (U16_MAX - 1).
+	 */
+	if (offset > (U16_MAX - 1))
+		return -EINVAL;
+
+	guard(mutex)(&dev->lock);
+
+	if (gpio_virtuser_device_is_live(dev))
+		return -EBUSY;
+
+	entry->offset = offset;
+
+	return count;
+}
+
+CONFIGFS_ATTR(gpio_virtuser_lookup_entry_config_, offset);
+
+static enum gpio_lookup_flags
+gpio_virtuser_lookup_get_flags(struct config_item *item)
+{
+	struct gpio_virtuser_lookup_entry *entry =
+					to_gpio_virtuser_lookup_entry(item);
+	struct gpio_virtuser_device *dev = entry->parent->parent;
+
+	guard(mutex)(&dev->lock);
+
+	return entry->flags;
+}
+
+static ssize_t
+gpio_virtuser_lookup_entry_config_drive_show(struct config_item *item, char *page)
+{
+	enum gpio_lookup_flags flags = gpio_virtuser_lookup_get_flags(item);
+	const char *repr;
+
+	if (flags & GPIO_OPEN_DRAIN)
+		repr = "open-drain";
+	else if (flags & GPIO_OPEN_SOURCE)
+		repr = "open-source";
+	else
+		repr = "push-pull";
+
+	return sprintf(page, "%s\n", repr);
+}
+
+static ssize_t
+gpio_virtuser_lookup_entry_config_drive_store(struct config_item *item,
+					      const char *page, size_t count)
+{
+	struct gpio_virtuser_lookup_entry *entry =
+					to_gpio_virtuser_lookup_entry(item);
+	struct gpio_virtuser_device *dev = entry->parent->parent;
+
+	guard(mutex)(&dev->lock);
+
+	if (gpio_virtuser_device_is_live(dev))
+		return -EBUSY;
+
+	if (sysfs_streq(page, "push-pull")) {
+		entry->flags &= ~(GPIO_OPEN_DRAIN | GPIO_OPEN_SOURCE);
+	} else if (sysfs_streq(page, "open-drain")) {
+		entry->flags &= ~GPIO_OPEN_SOURCE;
+		entry->flags |= GPIO_OPEN_DRAIN;
+	} else if (sysfs_streq(page, "open-source")) {
+		entry->flags &= ~GPIO_OPEN_DRAIN;
+		entry->flags |= GPIO_OPEN_SOURCE;
+	} else {
+		count = -EINVAL;
+	}
+
+	return count;
+}
+
+CONFIGFS_ATTR(gpio_virtuser_lookup_entry_config_, drive);
+
+static ssize_t
+gpio_virtuser_lookup_entry_config_pull_show(struct config_item *item, char *page)
+{
+	enum gpio_lookup_flags flags = gpio_virtuser_lookup_get_flags(item);
+	const char *repr;
+
+	if (flags & GPIO_PULL_UP)
+		repr = "pull-up";
+	else if (flags & GPIO_PULL_DOWN)
+		repr = "pull-down";
+	else if (flags & GPIO_PULL_DISABLE)
+		repr = "pull-disabled";
+	else
+		repr = "as-is";
+
+	return sprintf(page, "%s\n", repr);
+}
+
+static ssize_t
+gpio_virtuser_lookup_entry_config_pull_store(struct config_item *item,
+					     const char *page, size_t count)
+{
+	struct gpio_virtuser_lookup_entry *entry =
+					to_gpio_virtuser_lookup_entry(item);
+	struct gpio_virtuser_device *dev = entry->parent->parent;
+
+	guard(mutex)(&dev->lock);
+
+	if (gpio_virtuser_device_is_live(dev))
+		return -EBUSY;
+
+	if (sysfs_streq(page, "pull-up")) {
+		entry->flags &= ~(GPIO_PULL_DOWN | GPIO_PULL_DISABLE);
+		entry->flags |= GPIO_PULL_UP;
+	} else if (sysfs_streq(page, "pull-down")) {
+		entry->flags &= ~(GPIO_PULL_UP | GPIO_PULL_DISABLE);
+		entry->flags |= GPIO_PULL_DOWN;
+	} else if (sysfs_streq(page, "pull-disabled")) {
+		entry->flags &= ~(GPIO_PULL_UP | GPIO_PULL_DOWN);
+		entry->flags |= GPIO_PULL_DISABLE;
+	} else if (sysfs_streq(page, "as-is")) {
+		entry->flags &= ~(GPIO_PULL_UP | GPIO_PULL_DOWN |
+				  GPIO_PULL_DISABLE);
+	} else {
+		count = -EINVAL;
+	}
+
+	return count;
+}
+
+CONFIGFS_ATTR(gpio_virtuser_lookup_entry_config_, pull);
+
+static ssize_t
+gpio_virtuser_lookup_entry_config_active_low_show(struct config_item *item,
+						  char *page)
+{
+	enum gpio_lookup_flags flags = gpio_virtuser_lookup_get_flags(item);
+
+	return sprintf(page, "%c\n", flags & GPIO_ACTIVE_LOW ? '1' : '0');
+}
+
+static ssize_t
+gpio_virtuser_lookup_entry_config_active_low_store(struct config_item *item,
+						   const char *page,
+						   size_t count)
+{
+	struct gpio_virtuser_lookup_entry *entry =
+					to_gpio_virtuser_lookup_entry(item);
+	struct gpio_virtuser_device *dev = entry->parent->parent;
+	bool active_low;
+	int ret;
+
+	ret = kstrtobool(page, &active_low);
+	if (ret)
+		return ret;
+
+	guard(mutex)(&dev->lock);
+
+	if (gpio_virtuser_device_is_live(dev))
+		return -EBUSY;
+
+	if (active_low)
+		entry->flags |= GPIO_ACTIVE_LOW;
+	else
+		entry->flags &= ~GPIO_ACTIVE_LOW;
+
+	return count;
+}
+
+CONFIGFS_ATTR(gpio_virtuser_lookup_entry_config_, active_low);
+
+static ssize_t
+gpio_virtuser_lookup_entry_config_transitory_show(struct config_item *item,
+						  char *page)
+{
+	enum gpio_lookup_flags flags = gpio_virtuser_lookup_get_flags(item);
+
+	return sprintf(page, "%c\n", flags & GPIO_TRANSITORY ? '1' : '0');
+}
+
+static ssize_t
+gpio_virtuser_lookup_entry_config_transitory_store(struct config_item *item,
+						   const char *page,
+						   size_t count)
+{
+	struct gpio_virtuser_lookup_entry *entry =
+					to_gpio_virtuser_lookup_entry(item);
+	struct gpio_virtuser_device *dev = entry->parent->parent;
+	bool transitory;
+	int ret;
+
+	ret = kstrtobool(page, &transitory);
+	if (ret)
+		return ret;
+
+	guard(mutex)(&dev->lock);
+
+	if (gpio_virtuser_device_is_live(dev))
+		return -EBUSY;
+
+	if (transitory)
+		entry->flags |= GPIO_TRANSITORY;
+	else
+		entry->flags &= ~GPIO_TRANSITORY;
+
+	return count;
+}
+
+CONFIGFS_ATTR(gpio_virtuser_lookup_entry_config_, transitory);
+
+static struct configfs_attribute *gpio_virtuser_lookup_entry_config_attrs[] = {
+	&gpio_virtuser_lookup_entry_config_attr_key,
+	&gpio_virtuser_lookup_entry_config_attr_offset,
+	&gpio_virtuser_lookup_entry_config_attr_drive,
+	&gpio_virtuser_lookup_entry_config_attr_pull,
+	&gpio_virtuser_lookup_entry_config_attr_active_low,
+	&gpio_virtuser_lookup_entry_config_attr_transitory,
+	NULL
+};
+
+static ssize_t
+gpio_virtuser_device_config_dev_name_show(struct config_item *item,
+					  char *page)
+{
+	struct gpio_virtuser_device *dev = to_gpio_virtuser_device(item);
+	struct platform_device *pdev;
+
+	guard(mutex)(&dev->lock);
+
+	pdev = dev->pdev;
+	if (pdev)
+		return sprintf(page, "%s\n", dev_name(&pdev->dev));
+
+	return sprintf(page, "gpio-sim.%d\n", dev->id);
+}
+
+CONFIGFS_ATTR_RO(gpio_virtuser_device_config_, dev_name);
+
+static ssize_t gpio_virtuser_device_config_live_show(struct config_item *item,
+						     char *page)
+{
+	struct gpio_virtuser_device *dev = to_gpio_virtuser_device(item);
+	bool live;
+
+	scoped_guard(mutex, &dev->lock)
+		live = gpio_virtuser_device_is_live(dev);
+
+	return sprintf(page, "%c\n", live ? '1' : '0');
+}
+
+static size_t
+gpio_virtuser_get_lookup_count(struct gpio_virtuser_device *dev)
+{
+	struct gpio_virtuser_lookup *lookup;
+	size_t count = 0;
+
+	lockdep_assert_held(&dev->lock);
+
+	list_for_each_entry(lookup, &dev->lookup_list, siblings)
+		count += list_count_nodes(&lookup->entry_list);
+
+	return count;
+}
+
+static int
+gpio_virtuser_make_lookup_table(struct gpio_virtuser_device *dev)
+{
+	size_t num_entries = gpio_virtuser_get_lookup_count(dev);
+	struct gpio_virtuser_lookup_entry *entry;
+	struct gpio_virtuser_lookup *lookup;
+	struct gpiod_lookup *curr;
+	unsigned int i = 0;
+
+	lockdep_assert_held(&dev->lock);
+
+	struct gpiod_lookup_table *table __free(kfree) =
+		kzalloc(struct_size(table, table, num_entries + 1), GFP_KERNEL);
+	if (!table)
+		return -ENOMEM;
+
+	table->dev_id = kasprintf(GFP_KERNEL, "gpio-virtuser.%d", dev->id);
+	if (!table->dev_id)
+		return -ENOMEM;
+
+	list_for_each_entry(lookup, &dev->lookup_list, siblings) {
+		list_for_each_entry(entry, &lookup->entry_list, siblings) {
+			curr = &table->table[i];
+
+			curr->con_id = lookup->con_id;
+			curr->idx = i;
+			curr->key = entry->key;
+			curr->chip_hwnum = entry->offset < 0 ?
+						U16_MAX : entry->offset;
+			curr->flags = entry->flags;
+			i++;
+		}
+	}
+
+	gpiod_add_lookup_table(table);
+	dev->lookup_table = no_free_ptr(table);
+
+	return 0;
+}
+
+static struct fwnode_handle *
+gpio_virtuser_make_device_swnode(struct gpio_virtuser_device *dev)
+{
+	struct property_entry properties[2];
+	struct gpio_virtuser_lookup *lookup;
+	unsigned int i = 0;
+	size_t num_ids;
+
+	memset(properties, 0, sizeof(properties));
+
+	num_ids = list_count_nodes(&dev->lookup_list);
+	char **ids __free(kfree) = kcalloc(num_ids + 1, sizeof(*ids),
+					   GFP_KERNEL);
+	if (!ids)
+		return ERR_PTR(-ENOMEM);
+
+	list_for_each_entry(lookup, &dev->lookup_list, siblings)
+		ids[i++] = lookup->con_id;
+
+	properties[0] = PROPERTY_ENTRY_STRING_ARRAY_LEN("gpio-virtuser,ids",
+							ids, num_ids);
+
+	return fwnode_create_software_node(properties, NULL);
+}
+
+static int
+gpio_virtuser_device_activate(struct gpio_virtuser_device *dev)
+{
+	struct platform_device_info pdevinfo;
+	struct fwnode_handle *swnode;
+	struct platform_device *pdev;
+	int ret;
+
+	lockdep_assert_held(&dev->lock);
+
+	if (list_empty(&dev->lookup_list))
+		return -ENODATA;
+
+	swnode = gpio_virtuser_make_device_swnode(dev);
+	if (IS_ERR(swnode))
+		return PTR_ERR(swnode);
+
+	memset(&pdevinfo, 0, sizeof(pdevinfo));
+	pdevinfo.name = "gpio-virtuser";
+	pdevinfo.id = dev->id;
+	pdevinfo.fwnode = swnode;
+
+	ret = gpio_virtuser_make_lookup_table(dev);
+	if (ret) {
+		fwnode_remove_software_node(swnode);
+		return ret;
+	}
+
+	reinit_completion(&dev->probe_completion);
+	dev->driver_bound = false;
+	bus_register_notifier(&platform_bus_type, &dev->bus_notifier);
+
+	pdev = platform_device_register_full(&pdevinfo);
+	if (IS_ERR(pdev)) {
+		bus_unregister_notifier(&platform_bus_type, &dev->bus_notifier);
+		fwnode_remove_software_node(swnode);
+		return PTR_ERR(pdev);
+	}
+
+	wait_for_completion(&dev->probe_completion);
+	bus_unregister_notifier(&platform_bus_type, &dev->bus_notifier);
+
+	if (!dev->driver_bound) {
+		platform_device_unregister(pdev);
+		fwnode_remove_software_node(swnode);
+		return -ENXIO;
+	}
+
+	dev->pdev = pdev;
+
+	return 0;
+}
+
+static void
+gpio_virtuser_device_deactivate(struct gpio_virtuser_device *dev)
+{
+	struct fwnode_handle *swnode;
+
+	lockdep_assert_held(&dev->lock);
+
+	swnode = dev_fwnode(&dev->pdev->dev);
+	platform_device_unregister(dev->pdev);
+	fwnode_remove_software_node(swnode);
+	dev->pdev = NULL;
+	gpiod_remove_lookup_table(dev->lookup_table);
+	kfree(dev->lookup_table);
+}
+
+static ssize_t
+gpio_virtuser_device_config_live_store(struct config_item *item,
+				       const char *page, size_t count)
+{
+	struct gpio_virtuser_device *dev = to_gpio_virtuser_device(item);
+	int ret = 0;
+	bool live;
+
+	ret = kstrtobool(page, &live);
+	if (ret)
+		return ret;
+
+	guard(mutex)(&dev->lock);
+
+	if (live == gpio_virtuser_device_is_live(dev))
+		return -EPERM;
+
+	if (live)
+		ret = gpio_virtuser_device_activate(dev);
+	else
+		gpio_virtuser_device_deactivate(dev);
+
+	return ret ?: count;
+}
+
+CONFIGFS_ATTR(gpio_virtuser_device_config_, live);
+
+static struct configfs_attribute *gpio_virtuser_device_config_attrs[] = {
+	&gpio_virtuser_device_config_attr_dev_name,
+	&gpio_virtuser_device_config_attr_live,
+	NULL
+};
+
+static void
+gpio_virtuser_lookup_entry_config_group_release(struct config_item *item)
+{
+	struct gpio_virtuser_lookup_entry *entry =
+					to_gpio_virtuser_lookup_entry(item);
+	struct gpio_virtuser_device *dev = entry->parent->parent;
+
+	guard(mutex)(&dev->lock);
+
+	list_del(&entry->siblings);
+
+	kfree(entry->key);
+	kfree(entry);
+}
+
+static struct
+configfs_item_operations gpio_virtuser_lookup_entry_config_item_ops = {
+	.release	= gpio_virtuser_lookup_entry_config_group_release,
+};
+
+static const struct
+config_item_type gpio_virtuser_lookup_entry_config_group_type = {
+	.ct_item_ops	= &gpio_virtuser_lookup_entry_config_item_ops,
+	.ct_attrs	= gpio_virtuser_lookup_entry_config_attrs,
+	.ct_owner	= THIS_MODULE,
+};
+
+static struct config_group *
+gpio_virtuser_make_lookup_entry_group(struct config_group *group,
+				      const char *name)
+{
+	struct gpio_virtuser_lookup *lookup =
+				to_gpio_virtuser_lookup(&group->cg_item);
+	struct gpio_virtuser_device *dev = lookup->parent;
+
+	guard(mutex)(&dev->lock);
+
+	if (gpio_virtuser_device_is_live(dev))
+		return ERR_PTR(-EBUSY);
+
+	struct gpio_virtuser_lookup_entry *entry __free(kfree) =
+				kzalloc(sizeof(*entry), GFP_KERNEL);
+	if (!entry)
+		return ERR_PTR(-ENOMEM);
+
+	config_group_init_type_name(&entry->group, name,
+			&gpio_virtuser_lookup_entry_config_group_type);
+	entry->flags = GPIO_LOOKUP_FLAGS_DEFAULT;
+	entry->parent = lookup;
+	list_add_tail(&entry->siblings, &lookup->entry_list);
+
+	return &no_free_ptr(entry)->group;
+}
+
+static void gpio_virtuser_lookup_config_group_release(struct config_item *item)
+{
+	struct gpio_virtuser_lookup *lookup = to_gpio_virtuser_lookup(item);
+	struct gpio_virtuser_device *dev = lookup->parent;
+
+	guard(mutex)(&dev->lock);
+
+	list_del(&lookup->siblings);
+
+	kfree(lookup->con_id);
+	kfree(lookup);
+}
+
+static struct configfs_item_operations gpio_virtuser_lookup_config_item_ops = {
+	.release	= gpio_virtuser_lookup_config_group_release,
+};
+
+static struct
+configfs_group_operations gpio_virtuser_lookup_config_group_ops = {
+	.make_group     = gpio_virtuser_make_lookup_entry_group,
+};
+
+static const struct config_item_type gpio_virtuser_lookup_config_group_type = {
+	.ct_group_ops	= &gpio_virtuser_lookup_config_group_ops,
+	.ct_item_ops	= &gpio_virtuser_lookup_config_item_ops,
+	.ct_owner	= THIS_MODULE,
+};
+
+static struct config_group *
+gpio_virtuser_make_lookup_group(struct config_group *group, const char *name)
+{
+	struct gpio_virtuser_device *dev =
+				to_gpio_virtuser_device(&group->cg_item);
+
+	if (strlen(name) > (GPIO_VIRTUSER_NAME_BUF_LEN - 1))
+		return ERR_PTR(-E2BIG);
+
+	guard(mutex)(&dev->lock);
+
+	if (gpio_virtuser_device_is_live(dev))
+		return ERR_PTR(-EBUSY);
+
+	struct gpio_virtuser_lookup *lookup __free(kfree) =
+				kzalloc(sizeof(*lookup), GFP_KERNEL);
+	if (!lookup)
+		return ERR_PTR(-ENOMEM);
+
+	lookup->con_id = kstrdup(name, GFP_KERNEL);
+	if (!lookup->con_id)
+		return ERR_PTR(-ENOMEM);
+
+	config_group_init_type_name(&lookup->group, name,
+				    &gpio_virtuser_lookup_config_group_type);
+	INIT_LIST_HEAD(&lookup->entry_list);
+	lookup->parent = dev;
+	list_add_tail(&lookup->siblings, &dev->lookup_list);
+
+	return &no_free_ptr(lookup)->group;
+}
+
+static void gpio_virtuser_device_config_group_release(struct config_item *item)
+{
+	struct gpio_virtuser_device *dev = to_gpio_virtuser_device(item);
+
+	guard(mutex)(&dev->lock);
+
+	if (gpio_virtuser_device_is_live(dev))
+		gpio_virtuser_device_deactivate(dev);
+
+	mutex_destroy(&dev->lock);
+	ida_free(&gpio_virtuser_ida, dev->id);
+	kfree(dev);
+}
+
+static struct configfs_item_operations gpio_virtuser_device_config_item_ops = {
+	.release	= gpio_virtuser_device_config_group_release,
+};
+
+static struct configfs_group_operations gpio_virtuser_device_config_group_ops = {
+	.make_group	= gpio_virtuser_make_lookup_group,
+};
+
+static const struct config_item_type gpio_virtuser_device_config_group_type = {
+	.ct_group_ops	= &gpio_virtuser_device_config_group_ops,
+	.ct_item_ops	= &gpio_virtuser_device_config_item_ops,
+	.ct_attrs	= gpio_virtuser_device_config_attrs,
+	.ct_owner	= THIS_MODULE,
+};
+
+static struct config_group *
+gpio_virtuser_config_make_device_group(struct config_group *group,
+				       const char *name)
+{
+	struct gpio_virtuser_device *dev __free(kfree) = kzalloc(sizeof(*dev),
+								 GFP_KERNEL);
+	if (!dev)
+		return ERR_PTR(-ENOMEM);
+
+	dev->id = ida_alloc(&gpio_virtuser_ida, GFP_KERNEL);
+	if (dev->id < 0)
+		return ERR_PTR(dev->id);
+
+	config_group_init_type_name(&dev->group, name,
+				    &gpio_virtuser_device_config_group_type);
+	mutex_init(&dev->lock);
+	INIT_LIST_HEAD(&dev->lookup_list);
+	dev->bus_notifier.notifier_call = gpio_virtuser_bus_notifier_call;
+	init_completion(&dev->probe_completion);
+
+	return &no_free_ptr(dev)->group;
+}
+
+static struct configfs_group_operations gpio_virtuser_config_group_ops = {
+	.make_group	= gpio_virtuser_config_make_device_group,
+};
+
+static const struct config_item_type gpio_virtuser_config_type = {
+	.ct_group_ops	= &gpio_virtuser_config_group_ops,
+	.ct_owner	= THIS_MODULE,
+};
+
+static struct configfs_subsystem gpio_virtuser_config_subsys = {
+	.su_group = {
+		.cg_item = {
+			.ci_namebuf	= "gpio-virtuser",
+			.ci_type	= &gpio_virtuser_config_type,
+		},
+	},
+};
+
+static int __init gpio_virtuser_init(void)
+{
+	int ret;
+
+	ret = platform_driver_register(&gpio_virtuser_driver);
+	if (ret) {
+		pr_err("Failed to register the platform driver: %d\n", ret);
+		return ret;
+	}
+
+	config_group_init(&gpio_virtuser_config_subsys.su_group);
+	mutex_init(&gpio_virtuser_config_subsys.su_mutex);
+	ret = configfs_register_subsystem(&gpio_virtuser_config_subsys);
+	if (ret) {
+		pr_err("Failed to register the '%s' configfs subsystem: %d\n",
+		       gpio_virtuser_config_subsys.su_group.cg_item.ci_namebuf,
+		       ret);
+		goto err_plat_drv_unreg;
+	}
+
+	gpio_virtuser_dbg_root = debugfs_create_dir("gpio-virtuser", NULL);
+	if (IS_ERR(gpio_virtuser_dbg_root)) {
+		ret = PTR_ERR(gpio_virtuser_dbg_root);
+		pr_err("Failed to create the debugfs tree: %d\n", ret);
+		goto err_configfs_unreg;
+	}
+
+	return 0;
+
+err_configfs_unreg:
+	configfs_unregister_subsystem(&gpio_virtuser_config_subsys);
+err_plat_drv_unreg:
+	mutex_destroy(&gpio_virtuser_config_subsys.su_mutex);
+	platform_driver_unregister(&gpio_virtuser_driver);
+
+	return ret;
+}
+module_init(gpio_virtuser_init);
+
+static void __exit gpio_virtuser_exit(void)
+{
+	configfs_unregister_subsystem(&gpio_virtuser_config_subsys);
+	mutex_destroy(&gpio_virtuser_config_subsys.su_mutex);
+	platform_driver_unregister(&gpio_virtuser_driver);
+	debugfs_remove_recursive(gpio_virtuser_dbg_root);
+}
+module_exit(gpio_virtuser_exit);
+
+MODULE_AUTHOR("Bartosz Golaszewski <bartosz.golaszewski@linaro.org>");
+MODULE_DESCRIPTION("Virtual GPIO consumer module");
+MODULE_LICENSE("GPL");
-- 
2.43.0

.

From: srinivas.kandagatla@linaro.org
Subject: [PATCH 0/6] ASoC: codecs: wsa88xx: add support for static port
 mapping.
Date: Thu, 27 Jun 2024 12:55:16 +0100
Message-Id: <20240626-port-map-v1-0-bd8987d2b332@linaro.org>
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit
To: Banajit Goswami <bgoswami@quicinc.com>, 
 Liam Girdwood <lgirdwood@gmail.com>, Mark Brown <broonie@kernel.org>, 
 Rob Herring <robh@kernel.org>, Krzysztof Kozlowski <krzk+dt@kernel.org>, 
 Conor Dooley <conor+dt@kernel.org>, Jaroslav Kysela <perex@perex.cz>, 
 Takashi Iwai <tiwai@suse.com>, Bjorn Andersson <andersson@kernel.org>, 
 Konrad Dybcio <konrad.dybcio@linaro.org>
Cc: linux-arm-msm@vger.kernel.org, 
 Neil Armstrong <neil.armstrong@linaro.org>, alsa-devel@alsa-project.org, 
 linux-sound@vger.kernel.org, devicetree@vger.kernel.org, 
 linux-kernel@vger.kernel.org, 
 Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>, 
 Srinivas Kandagatla <srinivas.kandagatla@linaro.org>, 
 Manikantan R <quic_manrav@quicinc.com>
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1260797
Newsgroups: org.kernel.vger.linux-kernel,org.alsa-project.alsa-devel,org.kernel.vger.linux-arm-msm,org.kernel.vger.linux-devicetree,org.kernel.vger.linux-sound
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

Existing way of allocating soundwire master ports on Qualcommm platforms is
dynamic, and in linear order starting from 1 to MAX_PORTS.
This will work as long as soundwire device ports are 1:1 mapped
linearly. However on most Qcom SoCs like SM8550, SM8650, x1e80100, these
are NOT mapped in that order.

The result of this is that only one speaker among the pair of speakers
is always silent, With recent changes for WSA codec to support codec
versions and along with these patches we are able to get all speakers
working on these SoCs.

Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
---
Manikantan R (1):
      ASoC: dt-bindings: wsa883x: Document port mapping property

Srinivas Kandagatla (5):
      ASoC: codecs: wsa883x: parse port-mapping information
      ASoC: dt-bindings: wsa8840: Document port mapping property
      ASoC: codecs: wsa884x: parse port-mapping information
      arm64: dts: x1e80100-crd: fix wsa soundwire port mapping
      arm64: dts: x1e80100-qcp: fix wsa soundwire port mapping

 Documentation/devicetree/bindings/sound/qcom,wsa883x.yaml | 8 ++++++++
 Documentation/devicetree/bindings/sound/qcom,wsa8840.yaml | 8 ++++++++
 arch/arm64/boot/dts/qcom/x1e80100-crd.dts                 | 4 ++++
 arch/arm64/boot/dts/qcom/x1e80100-qcp.dts                 | 2 ++
 sound/soc/codecs/wsa883x.c                                | 8 ++++++++
 sound/soc/codecs/wsa884x.c                                | 8 ++++++++
 6 files changed, 38 insertions(+)
---
base-commit: 9935be184a55dd84fc3275094f2df095491f6ea1
change-id: 20240626-port-map-ef50c3304d4a

Best regards,
-- 
Srinivas Kandagatla <srinivas.kandagatla@linaro.org>

.

From: Esteban Blanc <eblanc@baylibre.com>
Subject: [PATCH RFC 0/5] iio: adc: ad4030: new driver for AD4030 and
 similar ADCs
Date: Thu, 27 Jun 2024 13:59:11 +0200
Message-Id: <20240627-eblanc-ad4630_v1-v1-0-fdc0610c23b0@baylibre.com>
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit
To: baylibre-upstreaming@groups.io, Lars-Peter Clausen <lars@metafoo.de>, 
 Michael Hennerich <Michael.Hennerich@analog.com>, 
 Jonathan Cameron <jic23@kernel.org>, Rob Herring <robh@kernel.org>, 
 Krzysztof Kozlowski <krzk+dt@kernel.org>, 
 Conor Dooley <conor+dt@kernel.org>, Nuno Sa <nuno.sa@analog.com>
Cc: Michael Hennerich <michael.hennerich@analog.com>, 
 linux-iio@vger.kernel.org, devicetree@vger.kernel.org, 
 linux-kernel@vger.kernel.org, David Lechner <dlechner@baylibre.com>, 
 Esteban Blanc <eblanc@baylibre.com>
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1260808
Newsgroups: org.kernel.vger.linux-kernel,org.kernel.vger.linux-devicetree,org.kernel.vger.linux-iio
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

This is adding DT bindings and a new driver for AD4030, AD4630 and
AD4632 ADCs.

This work is being done in collaboration with Analog Devices Inc.,
hence they are listed as maintainers rather than me.

The code has been tested on a Zedboard with an EVAL-AD4030-24FMCZ,
an EVAL-AD4630-24FMCZ and an EVAL-AD4630-16FMCZ. As there is no eval
board for AD4632 the support can't be tested at the moment. The main
difference is the reduced throughput.

This series is taged as RFC because I think I'm misusing
IIO_CHAN_INFO_CALIB*. For CALIBBIAS the doc in sysfs-bus-iio says
"Hardware applied calibration offset (assumed to fix production
inaccuracies)" but AD4030 offset in on 24bits and I would argue that at
this point it's not just here to fix production inaccuracies. Same this
for CALIBSCALE. What IIO attributes should I use instead?

Signed-off-by: Esteban Blanc <eblanc@baylibre.com>
---
Esteban Blanc (5):
      dt-bindings: iio: adc: add ADI ad4030 and ad4630
      iio: adc: ad4030: add driver for ad4030-24
      iio: adc: ad4030: add averaging support
      iio: adc: ad4030: add support for ad4630-24 and ad4630-16
      iio: adc: ad4030: add support for ad4632-16 and ad4632-24

 .../devicetree/bindings/iio/adc/adi,ad4030.yaml    |  113 ++
 MAINTAINERS                                        |    9 +
 drivers/iio/adc/Kconfig                            |   13 +
 drivers/iio/adc/Makefile                           |    1 +
 drivers/iio/adc/ad4030.c                           | 1081 ++++++++++++++++++++
 5 files changed, 1217 insertions(+)
---
base-commit: 07d4d0bb4a8ddcc463ed599b22f510d5926c2495
change-id: 20240624-eblanc-ad4630_v1-1a074097eb91

Best regards,
-- 
Esteban Blanc <eblanc@baylibre.com>

.

From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
To: linux-kernel@vger.kernel.org,
	akpm@linux-foundation.org,
	torvalds@linux-foundation.org,
	stable@vger.kernel.org
Cc: lwn@lwn.net,
	jslaby@suse.cz,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Subject: Linux 6.1.96
Date: Thu, 27 Jun 2024 14:01:44 +0200
Message-ID: <2024062745-cache-popcorn-0e44@gregkh>
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1260815
Newsgroups: org.kernel.vger.linux-kernel,org.kernel.vger.stable
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

I'm announcing the release of the 6.1.96 kernel.

All users of the 6.1 kernel series must upgrade.

The updated 6.1.y git tree can be found at:
	git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git linux-6.1.y
and can be browsed at the normal kernel.org git web browser:
	https://git.kernel.org/?p=linux/kernel/git/stable/linux-stable.git;a=summary

thanks,

greg k-h

------------

 Documentation/devicetree/bindings/i2c/google,cros-ec-i2c-tunnel.yaml |    2 
 Makefile                                                             |    7 
 arch/arm/boot/dts/exynos4210-smdkv310.dts                            |    2 
 arch/arm/boot/dts/exynos4412-origen.dts                              |    2 
 arch/arm/boot/dts/exynos4412-smdk4412.dts                            |    2 
 arch/arm64/boot/dts/freescale/imx8mm-verdin.dtsi                     |    2 
 arch/arm64/boot/dts/freescale/imx8qm-mek.dts                         |    2 
 arch/arm64/boot/dts/freescale/imx93-11x11-evk.dts                    |    1 
 arch/arm64/kvm/vgic/vgic-init.c                                      |    2 
 arch/arm64/kvm/vgic/vgic-mmio-v3.c                                   |   15 +
 arch/arm64/kvm/vgic/vgic.h                                           |    2 
 arch/mips/bmips/setup.c                                              |    3 
 arch/mips/boot/dts/brcm/bcm63268.dtsi                                |    2 
 arch/mips/pci/ops-rc32434.c                                          |    4 
 arch/mips/pci/pcie-octeon.c                                          |    6 
 arch/powerpc/include/asm/hvcall.h                                    |    8 
 arch/powerpc/include/asm/io.h                                        |   24 +-
 arch/x86/include/asm/cpu_device_id.h                                 |   98 ++++++++++
 arch/x86/kernel/cpu/match.c                                          |    4 
 arch/x86/kvm/x86.c                                                   |    9 
 block/ioctl.c                                                        |    2 
 drivers/acpi/acpica/exregion.c                                       |   23 --
 drivers/bluetooth/ath3k.c                                            |   25 +-
 drivers/crypto/hisilicon/sec2/sec_crypto.c                           |    4 
 drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c                       |    6 
 drivers/dma/dw-axi-dmac/dw-axi-dmac.h                                |    1 
 drivers/dma/idxd/irq.c                                               |    4 
 drivers/dma/ioat/init.c                                              |   67 +++---
 drivers/dma/ioat/registers.h                                         |    7 
 drivers/firmware/psci/psci.c                                         |    4 
 drivers/gpu/drm/amd/pm/legacy-dpm/kv_dpm.c                           |    2 
 drivers/gpu/drm/i915/display/intel_dp.c                              |    4 
 drivers/gpu/drm/lima/lima_bcast.c                                    |   12 +
 drivers/gpu/drm/lima/lima_bcast.h                                    |    3 
 drivers/gpu/drm/lima/lima_gp.c                                       |    8 
 drivers/gpu/drm/lima/lima_pp.c                                       |   18 +
 drivers/gpu/drm/lima/lima_sched.c                                    |    7 
 drivers/gpu/drm/lima/lima_sched.h                                    |    1 
 drivers/gpu/drm/radeon/sumo_dpm.c                                    |    2 
 drivers/hid/hid-asus.c                                               |   49 ++---
 drivers/hid/hid-ids.h                                                |    1 
 drivers/hid/hid-multitouch.c                                         |    6 
 drivers/i2c/busses/i2c-ocores.c                                      |    2 
 drivers/infiniband/hw/mlx5/srq.c                                     |   13 -
 drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c                          |    2 
 drivers/net/dsa/realtek/rtl8366rb.c                                  |   87 ++------
 drivers/net/ethernet/broadcom/bnxt/bnxt.c                            |    5 
 drivers/net/ethernet/intel/ice/ice.h                                 |    1 
 drivers/net/ethernet/intel/ice/ice_idc.c                             |   52 +++++
 drivers/net/ethernet/intel/ice/ice_main.c                            |   36 +--
 drivers/net/ethernet/intel/ice/ice_switch.c                          |    6 
 drivers/net/ethernet/marvell/octeontx2/nic/otx2_txrx.c               |    5 
 drivers/net/ethernet/microchip/lan743x_ethtool.c                     |   44 ++++
 drivers/net/ethernet/microchip/lan743x_main.c                        |   48 ++++
 drivers/net/ethernet/microchip/lan743x_main.h                        |   28 ++
 drivers/net/ethernet/qualcomm/qca_debug.c                            |    6 
 drivers/net/ethernet/qualcomm/qca_spi.c                              |   16 -
 drivers/net/ethernet/qualcomm/qca_spi.h                              |    3 
 drivers/net/ethernet/stmicro/stmmac/stmmac_hwtstamp.c                |    6 
 drivers/net/ethernet/stmicro/stmmac/stmmac_tc.c                      |   40 ++--
 drivers/net/phy/mxl-gpy.c                                            |   93 ++++++---
 drivers/net/usb/ax88179_178a.c                                       |   18 +
 drivers/net/usb/rtl8150.c                                            |    3 
 drivers/net/virtio_net.c                                             |   12 +
 drivers/net/wireless/ath/ath.h                                       |    6 
 drivers/net/wireless/ath/ath9k/main.c                                |    3 
 drivers/net/wireless/mediatek/mt76/mt7921/mac.c                      |    2 
 drivers/net/wireless/mediatek/mt76/mt7921/pci_mac.c                  |    2 
 drivers/net/wireless/mediatek/mt76/mt7921/sdio_mac.c                 |    2 
 drivers/net/wireless/mediatek/mt76/sdio.c                            |    3 
 drivers/pci/pci.c                                                    |   12 +
 drivers/platform/x86/p2sb.c                                          |   29 +-
 drivers/platform/x86/toshiba_acpi.c                                  |   36 +++
 drivers/power/supply/cros_usbpd-charger.c                            |   11 -
 drivers/ptp/ptp_sysfs.c                                              |    3 
 drivers/regulator/bd71815-regulator.c                                |    2 
 drivers/regulator/core.c                                             |    1 
 drivers/scsi/qedi/qedi_debugfs.c                                     |   12 -
 drivers/soc/ti/ti_sci_pm_domains.c                                   |   20 +-
 drivers/spi/spi-stm32-qspi.c                                         |   12 -
 drivers/tty/serial/8250/8250_exar.c                                  |   42 ++++
 drivers/tty/serial/imx.c                                             |    7 
 drivers/tty/tty_ldisc.c                                              |    6 
 drivers/tty/vt/vt.c                                                  |   10 +
 drivers/usb/dwc3/dwc3-pci.c                                          |    8 
 drivers/usb/gadget/function/f_hid.c                                  |    6 
 drivers/usb/gadget/function/f_printer.c                              |    6 
 drivers/usb/gadget/function/rndis.c                                  |    4 
 drivers/usb/misc/uss720.c                                            |   20 +-
 fs/btrfs/block-group.c                                               |   11 -
 fs/f2fs/super.c                                                      |    2 
 fs/smb/client/cifsfs.c                                               |    2 
 fs/udf/udftime.c                                                     |   11 -
 include/linux/kcov.h                                                 |    2 
 include/linux/mod_devicetable.h                                      |    2 
 include/linux/tty_driver.h                                           |    8 
 include/net/sch_generic.h                                            |    1 
 io_uring/sqpoll.c                                                    |    8 
 kernel/gcov/gcc_4_7.c                                                |    4 
 kernel/gen_kheaders.sh                                               |    9 
 kernel/kcov.c                                                        |    1 
 kernel/padata.c                                                      |    8 
 kernel/rcu/rcutorture.c                                              |   16 -
 kernel/trace/Kconfig                                                 |    4 
 kernel/trace/preemptirq_delay_test.c                                 |    1 
 mm/page_table_check.c                                                |   11 +
 net/batman-adv/originator.c                                          |    2 
 net/core/drop_monitor.c                                              |   20 +-
 net/core/filter.c                                                    |    5 
 net/core/net_namespace.c                                             |    9 
 net/core/netpoll.c                                                   |    2 
 net/core/sock.c                                                      |    3 
 net/ipv4/cipso_ipv4.c                                                |   12 -
 net/ipv4/tcp_input.c                                                 |    1 
 net/ipv6/route.c                                                     |    4 
 net/ipv6/seg6_local.c                                                |    8 
 net/ipv6/xfrm6_policy.c                                              |    8 
 net/netfilter/ipset/ip_set_core.c                                    |   11 -
 net/netrom/nr_timer.c                                                |    3 
 net/packet/af_packet.c                                               |   26 +-
 net/sched/act_api.c                                                  |   66 ++++--
 net/sched/act_ct.c                                                   |   16 +
 net/sched/sch_api.c                                                  |    1 
 net/sched/sch_generic.c                                              |    4 
 net/sched/sch_htb.c                                                  |   22 --
 net/tipc/node.c                                                      |    1 
 sound/hda/intel-dsp-config.c                                         |    2 
 sound/pci/hda/patch_realtek.c                                        |   10 -
 sound/soc/intel/boards/sof_sdw.c                                     |    9 
 tools/perf/Documentation/perf-script.txt                             |    7 
 tools/perf/builtin-script.c                                          |   24 +-
 tools/testing/selftests/arm64/tags/tags_test.c                       |    4 
 tools/testing/selftests/bpf/prog_tests/btf_map_in_map.c              |   26 --
 tools/testing/selftests/bpf/test_tc_tunnel.sh                        |   13 +
 virt/kvm/kvm_main.c                                                  |    5 
 135 files changed, 1109 insertions(+), 560 deletions(-)

Adrian Hunter (1):
      perf script: Show also errors for --insn-trace option

Ajrat Makhmutov (1):
      ALSA: hda/realtek: Enable headset mic on IdeaPad 330-17IKB 81DM

Aleksandr Aprelkov (1):
      iommu/arm-smmu-v3: Free MSIs in case of ENOMEM

Aleksandr Nogikh (1):
      kcov: don't lose track of remote references during softirqs

Alessandro Carminati (Red Hat) (1):
      selftests/bpf: Prevent client connect before server bind in test_tc_tunnel.sh

Alex Deucher (2):
      drm/radeon: fix UBSAN warning in kv_dpm.c
      drm/amdgpu: fix UBSAN warning in kv_dpm.c

Alex Henrie (1):
      usb: misc: uss720: check for incompatible versions of the Belkin F5U002

Andrew Ballance (1):
      hid: asus: asus_report_fixup: fix potential read out of bounds

Andy Chi (1):
      ALSA: hda/realtek: fix mute/micmute LEDs don't work for ProBook 445/465 G11.

Arnd Bergmann (1):
      wifi: ath9k: work around memset overflow warning

Arvid Norlander (1):
      platform/x86: toshiba_acpi: Add quirk for buttons on Z830

Ben Fradella (1):
      platform/x86: p2sb: Don't init until unassigned resources have been assigned

Biju Das (1):
      regulator: core: Fix modpost error "regulator_get_regmap" undefined

Bjorn Helgaas (2):
      dmaengine: ioat: Drop redundant pci_enable_pcie_error_reporting()
      dmaengine: ioat: use PCI core macros for PCIe Capability

Boris Burkov (1):
      btrfs: retry block group reclaim without infinite loop

Breno Leitao (2):
      netpoll: Fix race condition in netpoll_owner_active
      KVM: Fix a data race on last_boosted_vcpu in kvm_vcpu_on_spin()

Changbin Du (1):
      perf: script: add raw|disasm arguments to --insn-trace option

Chenghai Huang (1):
      crypto: hisilicon/sec - Fix memory leak for sec resource release

Christian Marangi (1):
      mips: bmips: BCM6358: make sure CBR is correctly set

Christophe JAILLET (1):
      usb: gadget: function: Remove usage of the deprecated ida_simple_xx() API

Dan Carpenter (1):
      ptp: fix integer overflow in max_vclocks_store

David Ruth (1):
      net/sched: act_api: fix possible infinite loop in tcf_idr_check_alloc()

Davide Caratti (2):
      net/sched: fix false lockdep warning on qdisc root lock
      net/sched: unregister lockdep keys in qdisc_create/qdisc_alloc error path

Dustin L. Howett (1):
      ALSA: hda/realtek: Remove Framework Laptop 16 from quirks

Edson Juliano Drosdeck (1):
      ALSA: hda/realtek: Limit mic boost on N14AP7

En-Wei Wu (1):
      ice: avoid IRQ collision to fix init failure on ACPI S3 resume

Eric Dumazet (6):
      batman-adv: bypass empty buckets in batadv_purge_orig_ref()
      af_packet: avoid a false positive warning in packet_setsockopt()
      ipv6: prevent possible NULL deref in fib6_nh_init()
      ipv6: prevent possible NULL dereference in rt6_probe()
      xfrm6: check ip6_dst_idev() return value in xfrm6_get_saddr()
      tcp: clear tp->retrans_stamp in tcp_rcv_fastopen_synack()

Erico Nunes (2):
      drm/lima: add mask irq callback to gp and pp
      drm/lima: mask irqs in timeout path before hard reset

Esben Haabendal (1):
      serial: imx: Introduce timeout when waiting on transmitter empty

Fabio Estevam (1):
      arm64: dts: imx93-11x11-evk: Remove the 'no-sdio' property

Florian Fainelli (1):
      MIPS: dts: bcm63268: Add missing properties to the TWD node

Florian Westphal (1):
      bpf: Avoid splat in pskb_pull_reason

Frank Li (1):
      arm64: dts: imx8qm-mek: fix gpio number for reg_usdhc2_vmmc

Gavrilov Ilia (1):
      netrom: Fix a memory leak in nr_heartbeat_expiry()

Greg Kroah-Hartman (1):
      Linux 6.1.96

Grygorii Tertychnyi (1):
      i2c: ocores: set IACK bit after core is enabled

Hans de Goede (1):
      usb: dwc3: pci: Don't set "linux,phy_charger_detect" property on Lenovo Yoga Tab2 1380

Heng Qi (1):
      virtio_net: checksum offloading handling fix

Herbert Xu (1):
      padata: Disable BH when taking works lock on MT path

Ignat Korchagin (1):
      net: do not leave a dangling sk pointer, when socket creation fails

Ilpo Järvinen (1):
      MIPS: Routerboard 532: Fix vendor retry check code

Jani Nikula (1):
      drm/i915/mso: using joiner is not possible with eDP MSO

Jeff Johnson (1):
      tracing: Add MODULE_DESCRIPTION() to preemptirq_delay_test

Jens Axboe (1):
      io_uring/sqpoll: work around a potential audit memory leak

Jianguo Wu (1):
      seg6: fix parameter passing when calling NF_HOOK() in End.DX4 and End.DX6 behaviors

Joao Pinto (1):
      Avoid hw_desc array overrun in dw-axi-dmac

Jose Ignacio Tornos Martinez (1):
      net: usb: ax88179_178a: improve reset check

Jozsef Kadlecsik (1):
      netfilter: ipset: Fix suspicious rcu_dereference_protected()

Justin Stitt (1):
      block/ioctl: prefer different overflow check

Kalle Niemi (1):
      regulator: bd71815: fix ramp values

Krzysztof Kozlowski (4):
      dt-bindings: i2c: google,cros-ec-i2c-tunnel: correct path to i2c-controller schema
      ARM: dts: samsung: smdkv310: fix keypad no-autorepeat
      ARM: dts: samsung: exynos4412-origen: fix keypad no-autorepeat
      ARM: dts: samsung: smdk4412: fix keypad no-autorepeat

Kunwu Chan (1):
      kselftest: arm64: Add a null pointer check

Leon Yen (1):
      wifi: mt76: mt7921s: fix potential hung tasks during chip recovery

Li RongQing (1):
      dmaengine: idxd: Fix possible Use-After-Free in irq_process_work_list

Linus Torvalds (2):
      tty: add the option to have a tty reject a new ldisc
      Revert "mm: mmap: allow for the maximum number of bits for randomizing mmap_base by default"

Luiz Angelo Daros de Luca (1):
      net: dsa: realtek: keep default LED state in rtl8366rb

Luke D. Jones (1):
      HID: asus: fix more n-key report descriptors if n-key quirked

Manish Rangankar (1):
      scsi: qedi: Fix crash while reading debugfs attribute

Marc Zyngier (1):
      KVM: arm64: Disassociate vcpus from redistributor region on teardown

Marcin Szycik (1):
      ice: Fix VSI list rule with ICE_SW_LKUP_LAST type

Mario Limonciello (1):
      PCI/PM: Avoid D3cold for HP Pavilion 17 PC/1972 PCIe Ports

Martin Leung (1):
      drm/amd/display: revert Exit idle optimizations before HDCP execution

Masahiro Yamada (1):
      Revert "kheaders: substituting --sort in archive creation"

Masami Hiramatsu (Google) (1):
      tracing: Build event generation tests only as modules

Matthias Maennich (1):
      kheaders: explicitly define file modes for archived headers

Max Krummenacher (1):
      arm64: dts: freescale: imx8mm-verdin: enable hysteresis on slow input pin

Michael Ellerman (1):
      powerpc/io: Avoid clang null pointer arithmetic warnings

Michal Swiatkowski (1):
      ice: move RDMA init to ice_idc.c

Nathan Chancellor (1):
      kbuild: Remove support for Clang's ThinLTO caching

Nathan Lynch (1):
      powerpc/pseries: Enforce hcall result buffer validity and size

Nicholas Kazlauskas (1):
      drm/amd/display: Exit idle optimizations before HDCP execution

Nikita Shubin (4):
      dmaengine: ioatdma: Fix leaking on version mismatch
      dmaengine: ioatdma: Fix error path in ioat3_dma_probe()
      dmaengine: ioatdma: Fix kmemleak in ioat_pci_probe()
      dmaengine: ioatdma: Fix missing kmem_cache_destroy()

Oleksij Rempel (1):
      net: stmmac: Assign configured channel value to EXTTS event

Oliver Neukum (1):
      net: usb: rtl8150 fix unintiatilzed variables in rtl8150_get_link_ksettings

Ondrej Mosnacek (1):
      cipso: fix total option length computation

Parker Newman (1):
      serial: exar: adding missing CTI and Exar PCI ids

Patrice Chotard (2):
      spi: stm32: qspi: Fix dual flash mode sanity test in stm32_qspi_setup()
      spi: stm32: qspi: Clamp stm32_qspi_get_mode() output to CCR_BUSWIDTH_4

Patrisious Haddad (1):
      RDMA/mlx5: Add check for srq max_sge attribute

Paul E. McKenney (1):
      rcutorture: Fix rcu_torture_one_read() pipe_count overflow comment

Pavan Chebbi (1):
      bnxt_en: Restore PTP tx_avail count in case of skb_pad() error

Pedro Tammela (1):
      net/sched: act_api: rely on rcu in tcf_idr_check_alloc

Peter Oberparleiter (1):
      gcov: add support for GCC 14

Peter Ujfalusi (1):
      ALSA/hda: intel-dsp-config: Document AVS as dsp_driver option

Peter Xu (1):
      mm/page_table_check: fix crash on ZONE_DEVICE

Pierre-Louis Bossart (1):
      ASoC: Intel: sof_sdw: add JD2 quirk for HP Omen 14

Rafael Aquini (1):
      mm: mmap: allow for the maximum number of bits for randomizing mmap_base by default

Raju Lakkaraju (3):
      net: lan743x: disable WOL upon resume to restore full data path operation
      net: lan743x: Support WOL at both the PHY and MAC appropriately
      net: phy: mxl-gpy: Remove interrupt mask clearing from config_init

Raju Rangoju (1):
      ACPICA: Revert "ACPICA: avoid Info: mapping multiple BARs. Your kernel is fine."

Roman Smirnov (1):
      udf: udftime: prevent overflow in udf_disk_stamp_to_time()

Sean Christopherson (1):
      KVM: x86: Always sync PIR to IRR prior to scanning I/O APIC routes

Sean O'Brien (1):
      HID: Add quirk for Logitech Casa touchpad

Simon Horman (1):
      octeontx2-pf: Add error handling to VLAN unoffload handling

Songyang Li (1):
      MIPS: Octeon: Add PCIe link status check

Stefan Binding (1):
      ALSA: hda/realtek: Add quirks for Lenovo 13X

Stefan Wahren (1):
      qca_spi: Make interrupt remembering atomic

Steve French (1):
      cifs: fix typo in module parameter enable_gcm_256

Sudeep Holla (1):
      firmware: psci: Fix return value from psci_system_suspend()

Tomi Valkeinen (1):
      pmdomain: ti-sci: Fix duplicate PD referrals

Tony Luck (2):
      x86/cpu/vfm: Add new macros to work with (vendor/family/model) values
      x86/cpu: Fix x86_match_cpu() to match just X86_VENDOR_INTEL

Tzung-Bi Shih (1):
      power: supply: cros_usbpd: provide ID table for avoiding fallback match

Uri Arev (1):
      Bluetooth: ath3k: Fix multiple issues reported by checkpatch.pl

Wander Lairson Costa (1):
      drop_monitor: replace spin_lock by raw_spin_lock

Xiaolei Wang (1):
      net: stmmac: No need to calculate speed divider when offload is disabled

Xin Long (2):
      tipc: force a dst refcount before doing decryption
      sched: act_ct: add netns into the key of tcf_ct_flow_table

Xu Liang (1):
      net: phy: mxl-gpy: enhance delay time required by loopback disable function

Yonghong Song (1):
      selftests/bpf: Fix flaky test btf_map_in_map/lookup_update

Yue Haibing (1):
      netns: Make get_net_ns() handle zero refcount net

Yunlei He (1):
      f2fs: remove clear SB_INLINECRYPT flag in default_options

Zqiang (2):
      rcutorture: Make stall-tasks directly exit when rcutorture tests end
      rcutorture: Fix invalid context warning when enable srcu barrier testing

.

From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
To: linux-kernel@vger.kernel.org,
	akpm@linux-foundation.org,
	torvalds@linux-foundation.org,
	stable@vger.kernel.org
Cc: lwn@lwn.net,
	jslaby@suse.cz,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Subject: Linux 6.6.36
Date: Thu, 27 Jun 2024 14:01:51 +0200
Message-ID: <2024062751-emote-concur-7c40@gregkh>
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1260816
Newsgroups: org.kernel.vger.linux-kernel,org.kernel.vger.stable
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

I'm announcing the release of the 6.6.36 kernel.

All users of the 6.6 kernel series must upgrade.

The updated 6.6.y git tree can be found at:
	git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git linux-6.6.y
and can be browsed at the normal kernel.org git web browser:
	https://git.kernel.org/?p=linux/kernel/git/stable/linux-stable.git;a=summary

thanks,

greg k-h

------------

 Documentation/devicetree/bindings/dma/fsl,edma.yaml                  |    4 
 Documentation/devicetree/bindings/i2c/atmel,at91sam-i2c.yaml         |    2 
 Documentation/devicetree/bindings/i2c/google,cros-ec-i2c-tunnel.yaml |    2 
 Makefile                                                             |    2 
 arch/alpha/kernel/setup.c                                            |    2 
 arch/alpha/kernel/sys_sio.c                                          |    2 
 arch/arm64/boot/dts/freescale/imx8mm-verdin.dtsi                     |    2 
 arch/arm64/boot/dts/freescale/imx8mp-dhcom-som.dtsi                  |    4 
 arch/arm64/boot/dts/freescale/imx8mp-venice-gw73xx.dtsi              |    2 
 arch/arm64/boot/dts/freescale/imx8qm-mek.dts                         |    2 
 arch/arm64/boot/dts/freescale/imx93-11x11-evk.dts                    |    1 
 arch/arm64/configs/defconfig                                         |    1 
 arch/arm64/kvm/vgic/vgic-init.c                                      |    2 
 arch/arm64/kvm/vgic/vgic-mmio-v3.c                                   |   15 
 arch/arm64/kvm/vgic/vgic.h                                           |    2 
 arch/csky/kernel/probes/ftrace.c                                     |    3 
 arch/ia64/kernel/setup.c                                             |    6 
 arch/loongarch/include/asm/efi.h                                     |    2 
 arch/loongarch/include/asm/hw_breakpoint.h                           |    4 
 arch/loongarch/kernel/ftrace_dyn.c                                   |    3 
 arch/loongarch/kernel/head.S                                         |    3 
 arch/loongarch/kernel/hw_breakpoint.c                                |   96 ++---
 arch/loongarch/kernel/image-vars.h                                   |    1 
 arch/loongarch/kernel/ptrace.c                                       |   47 +-
 arch/loongarch/kernel/setup.c                                        |    2 
 arch/loongarch/kernel/vmlinux.lds.S                                  |   11 
 arch/mips/bmips/setup.c                                              |    3 
 arch/mips/kernel/setup.c                                             |    2 
 arch/mips/pci/ops-rc32434.c                                          |    4 
 arch/mips/pci/pcie-octeon.c                                          |    6 
 arch/mips/sibyte/swarm/setup.c                                       |    2 
 arch/mips/sni/setup.c                                                |    2 
 arch/parisc/kernel/ftrace.c                                          |    3 
 arch/powerpc/include/asm/hvcall.h                                    |    8 
 arch/powerpc/include/asm/io.h                                        |   24 -
 arch/powerpc/kernel/kprobes-ftrace.c                                 |    3 
 arch/riscv/kernel/probes/ftrace.c                                    |    3 
 arch/riscv/kernel/setup.c                                            |   11 
 arch/riscv/mm/init.c                                                 |   13 
 arch/s390/kernel/ftrace.c                                            |    3 
 arch/x86/include/asm/cpu_device_id.h                                 |   98 +++++
 arch/x86/include/asm/efi.h                                           |    1 
 arch/x86/kernel/cpu/match.c                                          |    4 
 arch/x86/kernel/kprobes/ftrace.c                                     |    3 
 arch/x86/kvm/x86.c                                                   |    9 
 arch/x86/platform/efi/memmap.c                                       |   12 
 block/ioctl.c                                                        |    2 
 drivers/acpi/acpica/acevents.h                                       |    4 
 drivers/acpi/acpica/evregion.c                                       |    6 
 drivers/acpi/acpica/evxfregn.c                                       |   54 ++
 drivers/acpi/acpica/exregion.c                                       |   23 -
 drivers/acpi/ec.c                                                    |   28 -
 drivers/acpi/internal.h                                              |    1 
 drivers/acpi/video_detect.c                                          |    8 
 drivers/acpi/x86/utils.c                                             |   20 -
 drivers/block/nbd.c                                                  |   34 -
 drivers/bluetooth/ath3k.c                                            |   25 -
 drivers/cpufreq/amd-pstate.c                                         |    7 
 drivers/crypto/hisilicon/qm.c                                        |    5 
 drivers/crypto/hisilicon/sec2/sec_crypto.c                           |    4 
 drivers/dma/Kconfig                                                  |    2 
 drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c                       |    6 
 drivers/dma/dw-axi-dmac/dw-axi-dmac.h                                |    1 
 drivers/dma/idxd/irq.c                                               |    4 
 drivers/dma/ioat/init.c                                              |   55 +-
 drivers/firmware/efi/libstub/loongarch-stub.c                        |    9 
 drivers/firmware/efi/libstub/loongarch-stub.h                        |    4 
 drivers/firmware/efi/libstub/loongarch.c                             |    8 
 drivers/firmware/efi/memmap.c                                        |    9 
 drivers/firmware/psci/psci.c                                         |    4 
 drivers/gpu/drm/amd/pm/legacy-dpm/kv_dpm.c                           |    2 
 drivers/gpu/drm/i915/display/intel_dp.c                              |    4 
 drivers/gpu/drm/lima/lima_bcast.c                                    |   12 
 drivers/gpu/drm/lima/lima_bcast.h                                    |    3 
 drivers/gpu/drm/lima/lima_gp.c                                       |    8 
 drivers/gpu/drm/lima/lima_pp.c                                       |   18 
 drivers/gpu/drm/lima/lima_sched.c                                    |    7 
 drivers/gpu/drm/lima/lima_sched.h                                    |    1 
 drivers/gpu/drm/radeon/sumo_dpm.c                                    |    2 
 drivers/hid/hid-asus.c                                               |   51 +-
 drivers/hid/hid-ids.h                                                |    1 
 drivers/hid/hid-multitouch.c                                         |    6 
 drivers/i2c/busses/i2c-ocores.c                                      |    2 
 drivers/infiniband/hw/bnxt_re/bnxt_re.h                              |    4 
 drivers/infiniband/hw/mana/mr.c                                      |    1 
 drivers/infiniband/hw/mlx5/main.c                                    |    4 
 drivers/infiniband/hw/mlx5/mr.c                                      |    5 
 drivers/infiniband/hw/mlx5/srq.c                                     |   13 
 drivers/infiniband/sw/rxe/rxe_resp.c                                 |   13 
 drivers/infiniband/sw/rxe/rxe_verbs.c                                |    2 
 drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c                          |    2 
 drivers/media/pci/intel/ipu-bridge.c                                 |   66 ++-
 drivers/media/platform/mediatek/vcodec/common/mtk_vcodec_fw_scp.c    |    2 
 drivers/net/dsa/realtek/rtl8366rb.c                                  |   87 +---
 drivers/net/ethernet/broadcom/bnxt/bnxt.c                            |    5 
 drivers/net/ethernet/intel/ice/ice_main.c                            |    7 
 drivers/net/ethernet/intel/ice/ice_switch.c                          |    6 
 drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c                      |    5 
 drivers/net/ethernet/marvell/octeontx2/nic/Makefile                  |    3 
 drivers/net/ethernet/marvell/octeontx2/nic/otx2_dcbnl.c              |    7 
 drivers/net/ethernet/marvell/octeontx2/nic/otx2_devlink.c            |    2 
 drivers/net/ethernet/marvell/octeontx2/nic/otx2_txrx.c               |    5 
 drivers/net/ethernet/microchip/lan743x_ethtool.c                     |   44 ++
 drivers/net/ethernet/microchip/lan743x_main.c                        |   48 ++
 drivers/net/ethernet/microchip/lan743x_main.h                        |   28 +
 drivers/net/ethernet/qualcomm/qca_debug.c                            |    6 
 drivers/net/ethernet/qualcomm/qca_spi.c                              |   16 
 drivers/net/ethernet/qualcomm/qca_spi.h                              |    3 
 drivers/net/ethernet/stmicro/stmmac/stmmac_hwtstamp.c                |    6 
 drivers/net/ethernet/stmicro/stmmac/stmmac_tc.c                      |   40 +-
 drivers/net/phy/mxl-gpy.c                                            |   58 +--
 drivers/net/phy/sfp.c                                                |    3 
 drivers/net/usb/ax88179_178a.c                                       |   18 
 drivers/net/usb/rtl8150.c                                            |    3 
 drivers/net/virtio_net.c                                             |   32 +
 drivers/net/wireless/ath/ath.h                                       |    6 
 drivers/net/wireless/ath/ath9k/main.c                                |    3 
 drivers/net/wireless/mediatek/mt76/mt7921/mac.c                      |    2 
 drivers/net/wireless/mediatek/mt76/mt7921/pci_mac.c                  |    2 
 drivers/net/wireless/mediatek/mt76/mt7921/sdio_mac.c                 |    2 
 drivers/net/wireless/mediatek/mt76/sdio.c                            |    3 
 drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu.h                     |    9 
 drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c                |    7 
 drivers/pci/pci.c                                                    |   17 
 drivers/platform/x86/p2sb.c                                          |   29 -
 drivers/platform/x86/toshiba_acpi.c                                  |   36 +
 drivers/power/supply/cros_usbpd-charger.c                            |   11 
 drivers/ptp/ptp_sysfs.c                                              |    3 
 drivers/regulator/bd71815-regulator.c                                |    2 
 drivers/regulator/core.c                                             |    1 
 drivers/scsi/qedi/qedi_debugfs.c                                     |   12 
 drivers/spi/spi-cs42l43.c                                            |    2 
 drivers/spi/spi-imx.c                                                |   14 
 drivers/spi/spi-stm32-qspi.c                                         |   12 
 drivers/ssb/main.c                                                   |    4 
 drivers/thermal/mediatek/lvts_thermal.c                              |    6 
 drivers/tty/serial/8250/8250_dw.c                                    |   27 +
 drivers/tty/serial/8250/8250_dwlib.h                                 |   32 -
 drivers/tty/serial/8250/8250_exar.c                                  |   42 ++
 drivers/tty/serial/imx.c                                             |    7 
 drivers/tty/tty_ldisc.c                                              |    6 
 drivers/tty/vt/vt.c                                                  |   10 
 drivers/ufs/core/ufshcd.c                                            |    1 
 drivers/usb/dwc3/dwc3-pci.c                                          |    8 
 drivers/usb/gadget/function/f_hid.c                                  |    6 
 drivers/usb/gadget/function/f_printer.c                              |    6 
 drivers/usb/gadget/function/rndis.c                                  |    4 
 drivers/usb/gadget/function/uvc_configfs.c                           |   14 
 drivers/usb/misc/uss720.c                                            |   20 -
 drivers/usb/typec/ucsi/ucsi_glink.c                                  |    8 
 drivers/vfio/pci/vfio_pci_core.c                                     |   78 ++--
 fs/btrfs/bio.c                                                       |    4 
 fs/btrfs/block-group.c                                               |   11 
 fs/ext4/mballoc.c                                                    |    4 
 fs/ext4/super.c                                                      |   22 -
 fs/ext4/sysfs.c                                                      |   24 -
 fs/f2fs/super.c                                                      |   12 
 fs/fs-writeback.c                                                    |    7 
 fs/ocfs2/acl.c                                                       |    4 
 fs/ocfs2/alloc.c                                                     |    6 
 fs/ocfs2/aops.c                                                      |    6 
 fs/ocfs2/dir.c                                                       |    9 
 fs/ocfs2/dlmfs/dlmfs.c                                               |    4 
 fs/ocfs2/dlmglue.c                                                   |   29 -
 fs/ocfs2/file.c                                                      |   30 -
 fs/ocfs2/inode.c                                                     |   28 -
 fs/ocfs2/journal.c                                                   |  192 +++++-----
 fs/ocfs2/move_extents.c                                              |    4 
 fs/ocfs2/namei.c                                                     |   18 
 fs/ocfs2/ocfs2.h                                                     |   27 +
 fs/ocfs2/refcounttree.c                                              |   12 
 fs/ocfs2/super.c                                                     |    4 
 fs/ocfs2/xattr.c                                                     |    4 
 fs/overlayfs/export.c                                                |    6 
 fs/smb/client/cifsfs.c                                               |    2 
 fs/udf/udftime.c                                                     |   11 
 include/acpi/acpixf.h                                                |    4 
 include/linux/atomic/atomic-arch-fallback.h                          |    6 
 include/linux/atomic/atomic-instrumented.h                           |    8 
 include/linux/atomic/atomic-long.h                                   |    4 
 include/linux/kcov.h                                                 |    2 
 include/linux/kprobes.h                                              |    7 
 include/linux/mod_devicetable.h                                      |    2 
 include/linux/pci.h                                                  |    7 
 include/linux/tty_driver.h                                           |    8 
 include/net/netns/netfilter.h                                        |    3 
 include/net/sch_generic.h                                            |    1 
 io_uring/rsrc.c                                                      |    1 
 io_uring/sqpoll.c                                                    |    8 
 kernel/gcov/gcc_4_7.c                                                |    4 
 kernel/kcov.c                                                        |    1 
 kernel/kprobes.c                                                     |    6 
 kernel/padata.c                                                      |    8 
 kernel/rcu/rcutorture.c                                              |   16 
 kernel/trace/Kconfig                                                 |    4 
 kernel/trace/ftrace.c                                                |    1 
 kernel/trace/preemptirq_delay_test.c                                 |    1 
 mm/page_table_check.c                                                |   11 
 net/batman-adv/originator.c                                          |    2 
 net/core/drop_monitor.c                                              |   20 -
 net/core/filter.c                                                    |    5 
 net/core/net_namespace.c                                             |    9 
 net/core/netpoll.c                                                   |    2 
 net/core/sock.c                                                      |    3 
 net/ipv4/cipso_ipv4.c                                                |   12 
 net/ipv4/tcp_input.c                                                 |    1 
 net/ipv6/route.c                                                     |    4 
 net/ipv6/seg6_local.c                                                |    8 
 net/ipv6/xfrm6_policy.c                                              |    8 
 net/netfilter/core.c                                                 |   13 
 net/netfilter/ipset/ip_set_core.c                                    |   11 
 net/netfilter/nf_conntrack_standalone.c                              |   15 
 net/netfilter/nf_hooks_lwtunnel.c                                    |   67 +++
 net/netfilter/nf_internals.h                                         |    6 
 net/netrom/nr_timer.c                                                |    3 
 net/packet/af_packet.c                                               |   26 -
 net/sched/act_api.c                                                  |   66 ++-
 net/sched/act_ct.c                                                   |   16 
 net/sched/sch_api.c                                                  |    1 
 net/sched/sch_generic.c                                              |    4 
 net/sched/sch_htb.c                                                  |   22 -
 net/tipc/node.c                                                      |    1 
 scripts/atomic/kerneldoc/sub_and_test                                |    2 
 sound/core/seq/seq_ump_convert.c                                     |    2 
 sound/hda/intel-dsp-config.c                                         |    2 
 sound/pci/hda/cs35l41_hda.c                                          |    2 
 sound/pci/hda/cs35l56_hda.c                                          |    4 
 sound/pci/hda/patch_realtek.c                                        |   11 
 sound/pci/hda/tas2781_hda_i2c.c                                      |    4 
 sound/soc/intel/boards/sof_sdw.c                                     |   18 
 tools/perf/Documentation/perf-script.txt                             |    7 
 tools/perf/builtin-script.c                                          |   24 -
 tools/testing/selftests/arm64/tags/tags_test.c                       |    4 
 tools/testing/selftests/bpf/prog_tests/btf_map_in_map.c              |   26 -
 tools/testing/selftests/bpf/test_tc_tunnel.sh                        |   13 
 tools/testing/selftests/net/openvswitch/openvswitch.sh               |    2 
 virt/kvm/kvm_main.c                                                  |    5 
 237 files changed, 1925 insertions(+), 992 deletions(-)

Adrian Hunter (1):
      perf script: Show also errors for --insn-trace option

Ajrat Makhmutov (1):
      ALSA: hda/realtek: Enable headset mic on IdeaPad 330-17IKB 81DM

Aleksandr Aprelkov (1):
      iommu/arm-smmu-v3: Free MSIs in case of ENOMEM

Aleksandr Nogikh (1):
      kcov: don't lose track of remote references during softirqs

Alessandro Carminati (Red Hat) (1):
      selftests/bpf: Prevent client connect before server bind in test_tc_tunnel.sh

Alex Deucher (2):
      drm/radeon: fix UBSAN warning in kv_dpm.c
      drm/amdgpu: fix UBSAN warning in kv_dpm.c

Alex Henrie (1):
      usb: misc: uss720: check for incompatible versions of the Belkin F5U002

Alex Williamson (1):
      vfio/pci: Collect hot-reset devices to local buffer

Alexandre Ghiti (1):
      riscv: Don't use PGD entries for the linear mapping

Andrew Ballance (1):
      hid: asus: asus_report_fixup: fix potential read out of bounds

Andy Chi (1):
      ALSA: hda/realtek: fix mute/micmute LEDs don't work for ProBook 445/465 G11.

Andy Shevchenko (1):
      serial: 8250_dw: Revert "Move definitions to the shared header"

Ard Biesheuvel (1):
      efi/x86: Free EFI memory map only when installing a new one.

Arnd Bergmann (3):
      wifi: ath9k: work around memset overflow warning
      dmaengine: fsl-edma: avoid linking both modules
      vgacon: rework screen_info #ifdef checks

Arvid Norlander (1):
      platform/x86: toshiba_acpi: Add quirk for buttons on Z830

Aryan Srivastava (1):
      net: mvpp2: use slab_build_skb for oversized frames

Baokun Li (3):
      ext4: fix uninitialized ratelimit_state->lock access in __ext4_fill_super()
      ext4: avoid overflow when setting values via sysfs
      ext4: fix slab-out-of-bounds in ext4_mb_find_good_group_avg_frag_lists()

Bart Van Assche (2):
      nbd: Improve the documentation of the locking assumptions
      nbd: Fix signal handling

Ben Fradella (1):
      platform/x86: p2sb: Don't init until unassigned resources have been assigned

Biju Das (1):
      regulator: core: Fix modpost error "regulator_get_regmap" undefined

Boris Burkov (1):
      btrfs: retry block group reclaim without infinite loop

Breno Leitao (2):
      netpoll: Fix race condition in netpoll_owner_active
      KVM: Fix a data race on last_boosted_vcpu in kvm_vcpu_on_spin()

Carlos Llamas (1):
      locking/atomic: scripts: fix ${atomic}_sub_and_test() kerneldoc

Changbin Du (1):
      perf: script: add raw|disasm arguments to --insn-trace option

Charles Keepax (1):
      spi: cs42l43: Correct SPI root clock speed

Chenghai Huang (2):
      crypto: hisilicon/sec - Fix memory leak for sec resource release
      crypto: hisilicon/qm - Add the err memory release process to qm uninit

Chenliang Li (1):
      io_uring/rsrc: fix incorrect assignment of iter->nr_segs in io_import_fixed

Christian Marangi (1):
      mips: bmips: BCM6358: make sure CBR is correctly set

Christophe JAILLET (1):
      usb: gadget: function: Remove usage of the deprecated ida_simple_xx() API

Dan Carpenter (1):
      ptp: fix integer overflow in max_vclocks_store

Daniel Golle (1):
      net: sfp: add quirk for ATS SFP-GE-T 1000Base-TX module

David Ruth (1):
      net/sched: act_api: fix possible infinite loop in tcf_idr_check_alloc()

Davide Caratti (2):
      net/sched: fix false lockdep warning on qdisc root lock
      net/sched: unregister lockdep keys in qdisc_create/qdisc_alloc error path

Dmitry Baryshkov (1):
      usb: typec: ucsi_glink: drop special handling for CCI_BUSY

Dustin L. Howett (1):
      ALSA: hda/realtek: Remove Framework Laptop 16 from quirks

Edson Juliano Drosdeck (1):
      ALSA: hda/realtek: Limit mic boost on N14AP7

En-Wei Wu (1):
      ice: avoid IRQ collision to fix init failure on ACPI S3 resume

Eric Dumazet (6):
      batman-adv: bypass empty buckets in batadv_purge_orig_ref()
      af_packet: avoid a false positive warning in packet_setsockopt()
      ipv6: prevent possible NULL deref in fib6_nh_init()
      ipv6: prevent possible NULL dereference in rt6_probe()
      xfrm6: check ip6_dst_idev() return value in xfrm6_get_saddr()
      tcp: clear tp->retrans_stamp in tcp_rcv_fastopen_synack()

Erico Nunes (2):
      drm/lima: add mask irq callback to gp and pp
      drm/lima: mask irqs in timeout path before hard reset

Esben Haabendal (1):
      serial: imx: Introduce timeout when waiting on transmitter empty

Fabio Estevam (1):
      arm64: dts: imx93-11x11-evk: Remove the 'no-sdio' property

Florian Westphal (1):
      bpf: Avoid splat in pskb_pull_reason

Frank Li (1):
      arm64: dts: imx8qm-mek: fix gpio number for reg_usdhc2_vmmc

Fullway Wang (1):
      media: mtk-vcodec: potential null pointer deference in SCP

Gavrilov Ilia (1):
      netrom: Fix a memory leak in nr_heartbeat_expiry()

Geetha sowjanya (1):
      octeontx2-pf: Fix linking objects into multiple modules

Greg Kroah-Hartman (1):
      Linux 6.6.36

Grygorii Tertychnyi (1):
      i2c: ocores: set IACK bit after core is enabled

Hans de Goede (2):
      ACPI: x86: Add PNP_UART1_SKIP quirk for Lenovo Blade2 tablets
      usb: dwc3: pci: Don't set "linux,phy_charger_detect" property on Lenovo Yoga Tab2 1380

Heng Qi (2):
      virtio_net: checksum offloading handling fix
      virtio_net: fixing XDP for fully checksummed packets handling

Herbert Xu (1):
      padata: Disable BH when taking works lock on MT path

Honggang LI (2):
      RDMA/rxe: Fix responder length checking for UD request packets
      RDMA/rxe: Fix data copy for IB_SEND_INLINE

Hui Li (3):
      LoongArch: Fix watchpoint setting error
      LoongArch: Trigger user-space watchpoints correctly
      LoongArch: Fix multiple hardware watchpoint issues

Ignat Korchagin (1):
      net: do not leave a dangling sk pointer, when socket creation fails

Ilpo Järvinen (2):
      PCI: Do not wait for disconnected devices when resuming
      MIPS: Routerboard 532: Fix vendor retry check code

Jaegeuk Kim (1):
      f2fs: don't set RO when shutting down f2fs

Jani Nikula (1):
      drm/i915/mso: using joiner is not possible with eDP MSO

Jason Gunthorpe (2):
      RDMA/mlx5: Remove extra unlock on error path
      RDMA/mlx5: Follow rb_key.ats when creating new mkeys

Jeff Johnson (1):
      tracing: Add MODULE_DESCRIPTION() to preemptirq_delay_test

Jeff Layton (1):
      ocfs2: convert to new timestamp accessors

Jens Axboe (1):
      io_uring/sqpoll: work around a potential audit memory leak

Jianguo Wu (2):
      seg6: fix parameter passing when calling NF_HOOK() in End.DX4 and End.DX6 behaviors
      netfilter: move the sysctl nf_hooks_lwtunnel into the netfilter core

Jiaxun Yang (1):
      LoongArch: Fix entry point in kernel image header

Joao Pinto (1):
      Avoid hw_desc array overrun in dw-axi-dmac

Joel Slebodnick (1):
      scsi: ufs: core: Free memory allocated for model before reinit

Johannes Thumshirn (1):
      btrfs: zoned: allocate dummy checksums for zoned NODATASUM writes

Jose Ignacio Tornos Martinez (1):
      net: usb: ax88179_178a: improve reset check

Joseph Qi (2):
      ocfs2: fix NULL pointer dereference in ocfs2_journal_dirty()
      ocfs2: fix NULL pointer dereference in ocfs2_abort_trigger()

Jozsef Kadlecsik (1):
      netfilter: ipset: Fix suspicious rcu_dereference_protected()

Julien Panis (1):
      thermal/drivers/mediatek/lvts_thermal: Return error in case of invalid efuse data

Justin Stitt (1):
      block/ioctl: prefer different overflow check

Kalle Niemi (1):
      regulator: bd71815: fix ramp values

Kemeng Shi (1):
      fs/writeback: bail out if there is no more inodes for IO and queued once

Konstantin Taranov (1):
      RDMA/mana_ib: Ignore optional access flags for MRs

Krzysztof Kozlowski (3):
      dt-bindings: dma: fsl-edma: fix dma-channels constraints
      dt-bindings: i2c: atmel,at91sam: correct path to i2c-controller schema
      dt-bindings: i2c: google,cros-ec-i2c-tunnel: correct path to i2c-controller schema

Kunwu Chan (1):
      kselftest: arm64: Add a null pointer check

Leon Yen (1):
      wifi: mt76: mt7921s: fix potential hung tasks during chip recovery

Li RongQing (1):
      dmaengine: idxd: Fix possible Use-After-Free in irq_process_work_list

Linus Torvalds (3):
      tty: add the option to have a tty reject a new ldisc
      kprobe/ftrace: fix build error due to bad function definition
      Revert "mm: mmap: allow for the maximum number of bits for randomizing mmap_base by default"

Luiz Angelo Daros de Luca (1):
      net: dsa: realtek: keep default LED state in rtl8366rb

Luke D. Jones (1):
      HID: asus: fix more n-key report descriptors if n-key quirked

Manish Rangankar (1):
      scsi: qedi: Fix crash while reading debugfs attribute

Marc Kleine-Budde (1):
      spi: spi-imx: imx51: revert burst length calculation back to bits_per_word

Marc Zyngier (1):
      KVM: arm64: Disassociate vcpus from redistributor region on teardown

Marcin Szycik (1):
      ice: Fix VSI list rule with ICE_SW_LKUP_LAST type

Marek Vasut (2):
      arm64: dts: imx8mp: Fix TC9595 reset GPIO on DH i.MX8M Plus DHCOM SoM
      arm64: dts: imx8mp: Fix TC9595 input clock on DH i.MX8M Plus DHCOM SoM

Mario Limonciello (1):
      PCI/PM: Avoid D3cold for HP Pavilion 17 PC/1972 PCIe Ports

Martin Kaiser (1):
      arm64: defconfig: enable the vf610 gpio driver

Martin Kaistra (1):
      wifi: rtl8xxxu: enable MFP support with security flag of RX descriptor

Martin Leung (1):
      drm/amd/display: revert Exit idle optimizations before HDCP execution

Masami Hiramatsu (Google) (1):
      tracing: Build event generation tests only as modules

Max Krummenacher (1):
      arm64: dts: freescale: imx8mm-verdin: enable hysteresis on slow input pin

Michael Ellerman (1):
      powerpc/io: Avoid clang null pointer arithmetic warnings

Michael Grzeschik (1):
      usb: gadget: uvc: configfs: ensure guid to be valid before set

Miklos Szeredi (1):
      ovl: fix encoding fid for lower only root

Nam Cao (1):
      riscv: force PAGE_SIZE linear mapping if debug_pagealloc is enabled

Nathan Lynch (1):
      powerpc/pseries: Enforce hcall result buffer validity and size

Nicholas Kazlauskas (1):
      drm/amd/display: Exit idle optimizations before HDCP execution

Nikita Shubin (4):
      dmaengine: ioatdma: Fix leaking on version mismatch
      dmaengine: ioatdma: Fix error path in ioat3_dma_probe()
      dmaengine: ioatdma: Fix kmemleak in ioat_pci_probe()
      dmaengine: ioatdma: Fix missing kmem_cache_destroy()

Oleksij Rempel (1):
      net: stmmac: Assign configured channel value to EXTTS event

Oliver Neukum (1):
      net: usb: rtl8150 fix unintiatilzed variables in rtl8150_get_link_ksettings

Ondrej Mosnacek (1):
      cipso: fix total option length computation

Pablo Caño (1):
      ALSA: hda/realtek: Add quirk for Lenovo Yoga Pro 7 14AHP9

Parker Newman (1):
      serial: exar: adding missing CTI and Exar PCI ids

Patrice Chotard (2):
      spi: stm32: qspi: Fix dual flash mode sanity test in stm32_qspi_setup()
      spi: stm32: qspi: Clamp stm32_qspi_get_mode() output to CCR_BUSWIDTH_4

Patrisious Haddad (1):
      RDMA/mlx5: Add check for srq max_sge attribute

Paul E. McKenney (1):
      rcutorture: Fix rcu_torture_one_read() pipe_count overflow comment

Pavan Chebbi (1):
      bnxt_en: Restore PTP tx_avail count in case of skb_pad() error

Pedro Tammela (1):
      net/sched: act_api: rely on rcu in tcf_idr_check_alloc

Peng Ma (1):
      cpufreq: amd-pstate: fix memory leak on CPU EPP exit

Peter Oberparleiter (1):
      gcov: add support for GCC 14

Peter Ujfalusi (1):
      ALSA/hda: intel-dsp-config: Document AVS as dsp_driver option

Peter Xu (1):
      mm/page_table_check: fix crash on ZONE_DEVICE

Pierre-Louis Bossart (3):
      ASoC: Intel: sof_sdw: add JD2 quirk for HP Omen 14
      ASoC: Intel: sof_sdw: add quirk for Dell SKU 0C0F
      ASoC: Intel: sof-sdw: really remove FOUR_SPEAKER quirk

Rafael Aquini (1):
      mm: mmap: allow for the maximum number of bits for randomizing mmap_base by default

Rafael J. Wysocki (2):
      ACPI: EC: Install address space handler at the namespace root
      ACPI: EC: Evaluate orphan _REG under EC device

Raju Lakkaraju (3):
      net: lan743x: disable WOL upon resume to restore full data path operation
      net: lan743x: Support WOL at both the PHY and MAC appropriately
      net: phy: mxl-gpy: Remove interrupt mask clearing from config_init

Raju Rangoju (1):
      ACPICA: Revert "ACPICA: avoid Info: mapping multiple BARs. Your kernel is fine."

Rand Deeb (1):
      ssb: Fix potential NULL pointer dereference in ssb_device_uevent()

Ricardo Ribalda (1):
      media: intel/ipu6: Fix build with !ACPI

Roman Smirnov (1):
      udf: udftime: prevent overflow in udf_disk_stamp_to_time()

Sean Christopherson (1):
      KVM: x86: Always sync PIR to IRR prior to scanning I/O APIC routes

Sean O'Brien (1):
      HID: Add quirk for Logitech Casa touchpad

Selvin Xavier (1):
      RDMA/bnxt_re: Fix the max msix vectors macro

Simon Horman (2):
      selftests: openvswitch: Use bash as interpreter
      octeontx2-pf: Add error handling to VLAN unoffload handling

Simon Trimmer (3):
      ALSA: hda: cs35l41: Possible null pointer dereference in cs35l41_hda_unbind()
      ALSA: hda: cs35l56: Component should be unbound before deconstruction
      ALSA: hda: tas2781: Component should be unbound before deconstruction

Songyang Li (1):
      MIPS: Octeon: Add PCIe link status check

Stefan Binding (1):
      ALSA: hda/realtek: Add quirks for Lenovo 13X

Stefan Wahren (1):
      qca_spi: Make interrupt remembering atomic

Stephen Brennan (1):
      kprobe/ftrace: bail out if ftrace was killed

Steve French (1):
      cifs: fix typo in module parameter enable_gcm_256

Su Yue (1):
      ocfs2: update inode fsync transaction id in ocfs2_unlink and ocfs2_link

Sudeep Holla (1):
      firmware: psci: Fix return value from psci_system_suspend()

Takashi Iwai (2):
      ACPI: video: Add backlight=native quirk for Lenovo Slim 7 16ARH7
      ALSA: seq: ump: Fix missing System Reset message handling

Tim Harvey (1):
      arm64: dts: freescale: imx8mp-venice-gw73xx-2x: fix BT shutdown GPIO

Tony Luck (2):
      x86/cpu/vfm: Add new macros to work with (vendor/family/model) values
      x86/cpu: Fix x86_match_cpu() to match just X86_VENDOR_INTEL

Tzung-Bi Shih (1):
      power: supply: cros_usbpd: provide ID table for avoiding fallback match

Uri Arev (1):
      Bluetooth: ath3k: Fix multiple issues reported by checkpatch.pl

Wander Lairson Costa (1):
      drop_monitor: replace spin_lock by raw_spin_lock

Wang Yao (1):
      efi/loongarch: Directly position the loaded image file

Xiaolei Wang (1):
      net: stmmac: No need to calculate speed divider when offload is disabled

Xin Long (2):
      tipc: force a dst refcount before doing decryption
      sched: act_ct: add netns into the key of tcf_ct_flow_table

Yishai Hadas (1):
      RDMA/mlx5: Fix unwind flow as part of mlx5_ib_stage_init_init

Yonghong Song (1):
      selftests/bpf: Fix flaky test btf_map_in_map/lookup_update

Yue Haibing (1):
      netns: Make get_net_ns() handle zero refcount net

Yunlei He (1):
      f2fs: remove clear SB_INLINECRYPT flag in default_options

Zqiang (2):
      rcutorture: Make stall-tasks directly exit when rcutorture tests end
      rcutorture: Fix invalid context warning when enable srcu barrier testing

.

From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
To: linux-kernel@vger.kernel.org,
	akpm@linux-foundation.org,
	torvalds@linux-foundation.org,
	stable@vger.kernel.org
Cc: lwn@lwn.net,
	jslaby@suse.cz,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Subject: Linux 6.9.7
Date: Thu, 27 Jun 2024 14:01:57 +0200
Message-ID: <2024062757-armband-happiest-339b@gregkh>
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1260817
Newsgroups: org.kernel.vger.linux-kernel,org.kernel.vger.stable
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

I'm announcing the release of the 6.9.7 kernel.

All users of the 6.9 kernel series must upgrade.

The updated 6.9.y git tree can be found at:
	git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git linux-6.9.y
and can be browsed at the normal kernel.org git web browser:
	https://git.kernel.org/?p=linux/kernel/git/stable/linux-stable.git;a=summary

thanks,

greg k-h

------------

 Documentation/devicetree/bindings/dma/fsl,edma.yaml                  |    4 
 Documentation/devicetree/bindings/i2c/atmel,at91sam-i2c.yaml         |    2 
 Documentation/devicetree/bindings/i2c/google,cros-ec-i2c-tunnel.yaml |    2 
 Makefile                                                             |    2 
 arch/arm/boot/dts/nxp/imx/imx53-qsb-common.dtsi                      |    2 
 arch/arm/boot/dts/nxp/imx/imx53-qsb-hdmi.dtso                        |    6 
 arch/arm64/boot/dts/freescale/imx8mm-verdin.dtsi                     |    3 
 arch/arm64/boot/dts/freescale/imx8mp-dhcom-som.dtsi                  |    2 
 arch/arm64/boot/dts/freescale/imx8mp-venice-gw73xx.dtsi              |    2 
 arch/arm64/boot/dts/freescale/imx8qm-mek.dts                         |    2 
 arch/arm64/boot/dts/freescale/imx93-11x11-evk.dts                    |    1 
 arch/arm64/configs/defconfig                                         |    1 
 arch/arm64/include/asm/sysreg.h                                      |   24 -
 arch/arm64/kvm/vgic/vgic-init.c                                      |    2 
 arch/arm64/kvm/vgic/vgic-mmio-v3.c                                   |   15 
 arch/arm64/kvm/vgic/vgic.h                                           |    2 
 arch/csky/kernel/probes/ftrace.c                                     |    3 
 arch/loongarch/Kconfig                                               |    5 
 arch/loongarch/Kconfig.debug                                         |    1 
 arch/loongarch/include/asm/hw_breakpoint.h                           |    4 
 arch/loongarch/kernel/ftrace_dyn.c                                   |    3 
 arch/loongarch/kernel/hw_breakpoint.c                                |   96 ++--
 arch/loongarch/kernel/ptrace.c                                       |   47 +-
 arch/mips/bmips/setup.c                                              |    3 
 arch/mips/include/asm/mipsmtregs.h                                   |    2 
 arch/mips/pci/ops-rc32434.c                                          |    4 
 arch/mips/pci/pcie-octeon.c                                          |    6 
 arch/parisc/kernel/ftrace.c                                          |    3 
 arch/powerpc/crypto/.gitignore                                       |    2 
 arch/powerpc/include/asm/hvcall.h                                    |    8 
 arch/powerpc/include/asm/io.h                                        |   24 -
 arch/powerpc/kernel/kprobes-ftrace.c                                 |    3 
 arch/riscv/kernel/probes/ftrace.c                                    |    3 
 arch/s390/kernel/ftrace.c                                            |    3 
 arch/x86/include/asm/cpu_device_id.h                                 |   98 ++++
 arch/x86/include/asm/efi.h                                           |    1 
 arch/x86/kernel/cpu/match.c                                          |    4 
 arch/x86/kernel/cpu/resctrl/monitor.c                                |    3 
 arch/x86/kernel/kprobes/ftrace.c                                     |    3 
 arch/x86/kvm/x86.c                                                   |    9 
 arch/x86/platform/efi/memmap.c                                       |   12 
 block/ioctl.c                                                        |    2 
 drivers/acpi/acpica/acevents.h                                       |    4 
 drivers/acpi/acpica/evregion.c                                       |    6 
 drivers/acpi/acpica/evxfregn.c                                       |   54 ++
 drivers/acpi/acpica/exregion.c                                       |   23 -
 drivers/acpi/ec.c                                                    |   28 -
 drivers/acpi/internal.h                                              |    5 
 drivers/acpi/mipi-disco-img.c                                        |   28 -
 drivers/acpi/resource.c                                              |   13 
 drivers/acpi/video_detect.c                                          |    8 
 drivers/acpi/x86/utils.c                                             |   20 
 drivers/ata/ahci.c                                                   |    8 
 drivers/block/nbd.c                                                  |   34 -
 drivers/bluetooth/ath3k.c                                            |   25 -
 drivers/cpufreq/amd-pstate.c                                         |    7 
 drivers/crypto/hisilicon/qm.c                                        |    5 
 drivers/crypto/hisilicon/sec2/sec_crypto.c                           |    4 
 drivers/cxl/core/pci.c                                               |   29 +
 drivers/cxl/cxl.h                                                    |    2 
 drivers/cxl/pci.c                                                    |   22 +
 drivers/dma/Kconfig                                                  |    2 
 drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c                       |    6 
 drivers/dma/dw-axi-dmac/dw-axi-dmac.h                                |    1 
 drivers/dma/idxd/irq.c                                               |    4 
 drivers/dma/ioat/init.c                                              |   55 +-
 drivers/dma/ti/k3-udma-glue.c                                        |    5 
 drivers/dma/xilinx/xdma.c                                            |    4 
 drivers/firmware/efi/memmap.c                                        |    9 
 drivers/firmware/psci/psci.c                                         |    4 
 drivers/gpu/drm/amd/amdgpu/amdgpu_gmc.c                              |   66 +--
 drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c                    |    3 
 drivers/gpu/drm/amd/display/dc/dc_dmub_srv.c                         |   23 -
 drivers/gpu/drm/amd/display/dc/hwss/dcn35/dcn35_hwseq.c              |   72 +++
 drivers/gpu/drm/amd/display/dc/hwss/dcn35/dcn35_hwseq.h              |    2 
 drivers/gpu/drm/amd/display/dc/hwss/dcn35/dcn35_init.c               |    2 
 drivers/gpu/drm/amd/pm/legacy-dpm/kv_dpm.c                           |    2 
 drivers/gpu/drm/i915/display/intel_dp.c                              |    4 
 drivers/gpu/drm/lima/lima_bcast.c                                    |   12 
 drivers/gpu/drm/lima/lima_bcast.h                                    |    3 
 drivers/gpu/drm/lima/lima_gp.c                                       |    8 
 drivers/gpu/drm/lima/lima_pp.c                                       |   18 
 drivers/gpu/drm/lima/lima_sched.c                                    |    9 
 drivers/gpu/drm/lima/lima_sched.h                                    |    1 
 drivers/gpu/drm/radeon/sumo_dpm.c                                    |    2 
 drivers/gpu/drm/xe/xe_guc.c                                          |    4 
 drivers/hid/hid-asus.c                                               |   51 +-
 drivers/hid/hid-ids.h                                                |    1 
 drivers/hid/hid-multitouch.c                                         |    6 
 drivers/i2c/busses/i2c-imx-lpi2c.c                                   |   19 
 drivers/i2c/busses/i2c-ocores.c                                      |    2 
 drivers/infiniband/hw/bnxt_re/bnxt_re.h                              |    4 
 drivers/infiniband/hw/mana/mr.c                                      |    1 
 drivers/infiniband/hw/mlx5/main.c                                    |    4 
 drivers/infiniband/hw/mlx5/mr.c                                      |    8 
 drivers/infiniband/hw/mlx5/srq.c                                     |   13 
 drivers/infiniband/sw/rxe/rxe_resp.c                                 |   13 
 drivers/infiniband/sw/rxe/rxe_verbs.c                                |    2 
 drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c                          |    2 
 drivers/media/pci/intel/ipu-bridge.c                                 |   66 ++-
 drivers/media/platform/mediatek/vcodec/common/mtk_vcodec_fw_scp.c    |    2 
 drivers/net/dsa/realtek/rtl8366rb.c                                  |   87 ----
 drivers/net/dsa/realtek/rtl83xx.c                                    |    7 
 drivers/net/ethernet/amazon/ena/ena_eth_com.c                        |   37 +
 drivers/net/ethernet/amazon/ena/ena_netdev.c                         |    2 
 drivers/net/ethernet/amazon/ena/ena_regs_defs.h                      |    1 
 drivers/net/ethernet/broadcom/bnxt/bnxt.c                            |    5 
 drivers/net/ethernet/intel/ice/ice_ddp.c                             |   23 -
 drivers/net/ethernet/intel/ice/ice_main.c                            |   10 
 drivers/net/ethernet/intel/ice/ice_switch.c                          |    6 
 drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c                      |    5 
 drivers/net/ethernet/marvell/octeontx2/nic/Makefile                  |    3 
 drivers/net/ethernet/marvell/octeontx2/nic/otx2_dcbnl.c              |    7 
 drivers/net/ethernet/marvell/octeontx2/nic/otx2_devlink.c            |    2 
 drivers/net/ethernet/marvell/octeontx2/nic/otx2_txrx.c               |    5 
 drivers/net/ethernet/microchip/lan743x_ethtool.c                     |   44 +-
 drivers/net/ethernet/microchip/lan743x_main.c                        |   48 +-
 drivers/net/ethernet/microchip/lan743x_main.h                        |   28 +
 drivers/net/ethernet/qualcomm/qca_debug.c                            |    6 
 drivers/net/ethernet/qualcomm/qca_spi.c                              |   16 
 drivers/net/ethernet/qualcomm/qca_spi.h                              |    3 
 drivers/net/ethernet/stmicro/stmmac/stmmac_hwtstamp.c                |    6 
 drivers/net/ethernet/stmicro/stmmac/stmmac_tc.c                      |   40 +
 drivers/net/phy/dp83tg720.c                                          |   38 +
 drivers/net/phy/mxl-gpy.c                                            |   58 +-
 drivers/net/phy/sfp.c                                                |   21 
 drivers/net/usb/ax88179_178a.c                                       |   18 
 drivers/net/usb/rtl8150.c                                            |    3 
 drivers/net/virtio_net.c                                             |   32 +
 drivers/net/wireless/ath/ath.h                                       |    6 
 drivers/net/wireless/ath/ath12k/core.c                               |    1 
 drivers/net/wireless/ath/ath12k/mac.c                                |   16 
 drivers/net/wireless/ath/ath12k/qmi.c                                |   61 +-
 drivers/net/wireless/ath/ath12k/qmi.h                                |    2 
 drivers/net/wireless/ath/ath9k/main.c                                |    3 
 drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c                    |    2 
 drivers/net/wireless/mediatek/mt76/mt7921/mac.c                      |    2 
 drivers/net/wireless/mediatek/mt76/mt7921/pci_mac.c                  |    2 
 drivers/net/wireless/mediatek/mt76/mt7921/sdio_mac.c                 |    2 
 drivers/net/wireless/mediatek/mt76/sdio.c                            |    3 
 drivers/net/wireless/realtek/rtw89/core.c                            |   18 
 drivers/net/wireless/realtek/rtw89/core.h                            |   10 
 drivers/net/wireless/realtek/rtw89/pci.c                             |   19 
 drivers/net/wireless/realtek/rtw89/pci.h                             |    5 
 drivers/net/wireless/realtek/rtw89/rtw8851be.c                       |    1 
 drivers/net/wireless/realtek/rtw89/rtw8852ae.c                       |    1 
 drivers/net/wireless/realtek/rtw89/rtw8852be.c                       |    1 
 drivers/net/wireless/realtek/rtw89/rtw8852ce.c                       |   23 +
 drivers/net/wireless/realtek/rtw89/rtw8922ae.c                       |    1 
 drivers/opp/core.c                                                   |   31 +
 drivers/pci/pci.c                                                    |   17 
 drivers/phy/qualcomm/phy-qcom-qmp-combo.c                            |  189 +++++++-
 drivers/phy/qualcomm/phy-qcom-qmp-pcs-v6-n4.h                        |   32 +
 drivers/phy/qualcomm/phy-qcom-qmp-qserdes-txrx-v6_n4.h               |   13 
 drivers/phy/qualcomm/phy-qcom-qmp.h                                  |    2 
 drivers/platform/chrome/cros_usbpd_logger.c                          |    9 
 drivers/platform/chrome/cros_usbpd_notify.c                          |    9 
 drivers/platform/x86/p2sb.c                                          |   29 -
 drivers/platform/x86/toshiba_acpi.c                                  |   36 +
 drivers/platform/x86/x86-android-tablets/core.c                      |    8 
 drivers/platform/x86/x86-android-tablets/dmi.c                       |   18 
 drivers/platform/x86/x86-android-tablets/lenovo.c                    |  216 ++++++++++
 drivers/platform/x86/x86-android-tablets/x86-android-tablets.h       |    1 
 drivers/pmdomain/core.c                                              |   10 
 drivers/power/supply/cros_usbpd-charger.c                            |   11 
 drivers/ptp/ptp_sysfs.c                                              |    3 
 drivers/regulator/bd71815-regulator.c                                |    2 
 drivers/regulator/core.c                                             |    1 
 drivers/scsi/qedi/qedi_debugfs.c                                     |   12 
 drivers/scsi/sd.c                                                    |    4 
 drivers/spi/spi-cs42l43.c                                            |    2 
 drivers/spi/spi-imx.c                                                |   14 
 drivers/spi/spi-stm32-qspi.c                                         |   12 
 drivers/spi/spi.c                                                    |   10 
 drivers/ssb/main.c                                                   |    4 
 drivers/thermal/intel/int340x_thermal/processor_thermal_device_pci.c |    3 
 drivers/thermal/mediatek/lvts_thermal.c                              |    6 
 drivers/thermal/thermal_core.c                                       |    6 
 drivers/tty/serial/8250/8250_dw.c                                    |   27 +
 drivers/tty/serial/8250/8250_dwlib.h                                 |   32 -
 drivers/tty/serial/8250/8250_exar.c                                  |   42 +
 drivers/tty/serial/imx.c                                             |    7 
 drivers/tty/tty_ldisc.c                                              |    6 
 drivers/tty/vt/vt.c                                                  |   10 
 drivers/ufs/core/ufshcd.c                                            |    1 
 drivers/usb/dwc3/dwc3-pci.c                                          |    8 
 drivers/usb/gadget/function/f_hid.c                                  |    6 
 drivers/usb/gadget/function/f_printer.c                              |    6 
 drivers/usb/gadget/function/rndis.c                                  |    4 
 drivers/usb/gadget/function/uvc_configfs.c                           |   14 
 drivers/usb/host/xhci-pci.c                                          |   15 
 drivers/usb/host/xhci-rcar.c                                         |    6 
 drivers/usb/host/xhci-ring.c                                         |   15 
 drivers/usb/host/xhci.h                                              |    4 
 drivers/usb/misc/uss720.c                                            |   20 
 drivers/usb/storage/scsiglue.c                                       |    6 
 drivers/usb/storage/uas.c                                            |    7 
 drivers/usb/typec/tcpm/qcom/qcom_pmic_typec.c                        |   10 
 drivers/usb/typec/ucsi/ucsi_glink.c                                  |   22 -
 drivers/vfio/pci/vfio_pci_core.c                                     |   78 ++-
 fs/btrfs/bio.c                                                       |    4 
 fs/btrfs/block-group.c                                               |   11 
 fs/ext4/mballoc.c                                                    |    4 
 fs/ext4/super.c                                                      |   22 -
 fs/ext4/sysfs.c                                                      |   24 -
 fs/ext4/xattr.c                                                      |  113 ++---
 fs/f2fs/node.c                                                       |   12 
 fs/f2fs/super.c                                                      |   12 
 fs/fs-writeback.c                                                    |    7 
 fs/ocfs2/journal.c                                                   |  192 ++++----
 fs/ocfs2/ocfs2.h                                                     |   27 +
 fs/ocfs2/super.c                                                     |    4 
 fs/overlayfs/export.c                                                |    6 
 fs/smb/client/cifsfs.c                                               |    2 
 fs/udf/udftime.c                                                     |   11 
 include/acpi/acpixf.h                                                |    4 
 include/linux/bpf_verifier.h                                         |    2 
 include/linux/cpuset.h                                               |    3 
 include/linux/kcov.h                                                 |    2 
 include/linux/kprobes.h                                              |    7 
 include/linux/lsm_hook_defs.h                                        |    2 
 include/linux/mod_devicetable.h                                      |    2 
 include/linux/pagemap.h                                              |    4 
 include/linux/pci.h                                                  |    7 
 include/linux/pm_domain.h                                            |    6 
 include/linux/security.h                                             |    5 
 include/linux/tty_driver.h                                           |    8 
 include/net/netns/netfilter.h                                        |    3 
 include/net/sch_generic.h                                            |    1 
 include/scsi/scsi_devinfo.h                                          |    4 
 io_uring/rsrc.c                                                      |    1 
 io_uring/sqpoll.c                                                    |    8 
 kernel/auditfilter.c                                                 |    5 
 kernel/bpf/lpm_trie.c                                                |   13 
 kernel/bpf/verifier.c                                                |   14 
 kernel/cgroup/cpuset.c                                               |  141 ++----
 kernel/cpu.c                                                         |   48 --
 kernel/gcov/gcc_4_7.c                                                |    4 
 kernel/kcov.c                                                        |    1 
 kernel/kprobes.c                                                     |    6 
 kernel/padata.c                                                      |    8 
 kernel/power/process.c                                               |    2 
 kernel/rcu/rcutorture.c                                              |   16 
 kernel/time/clocksource.c                                            |   42 -
 kernel/trace/Kconfig                                                 |    4 
 kernel/trace/ftrace.c                                                |    1 
 kernel/trace/preemptirq_delay_test.c                                 |    1 
 lib/ubsan.h                                                          |   41 +
 mm/huge_memory.c                                                     |   28 -
 mm/memcontrol.c                                                      |    3 
 mm/page_table_check.c                                                |   11 
 mm/shmem.c                                                           |    2 
 net/batman-adv/originator.c                                          |    2 
 net/core/drop_monitor.c                                              |   20 
 net/core/filter.c                                                    |    5 
 net/core/net_namespace.c                                             |    9 
 net/core/netdev-genl.c                                               |   16 
 net/core/netpoll.c                                                   |    2 
 net/core/sock.c                                                      |    3 
 net/devlink/core.c                                                   |    6 
 net/ipv4/cipso_ipv4.c                                                |   12 
 net/ipv4/tcp_ao.c                                                    |    6 
 net/ipv4/tcp_input.c                                                 |    1 
 net/ipv6/route.c                                                     |    4 
 net/ipv6/seg6_local.c                                                |    8 
 net/ipv6/xfrm6_policy.c                                              |    8 
 net/mac80211/driver-ops.c                                            |   17 
 net/mac80211/iface.c                                                 |   22 -
 net/mac80211/util.c                                                  |    2 
 net/netfilter/core.c                                                 |   13 
 net/netfilter/ipset/ip_set_core.c                                    |   11 
 net/netfilter/nf_conntrack_standalone.c                              |   15 
 net/netfilter/nf_hooks_lwtunnel.c                                    |   67 +++
 net/netfilter/nf_internals.h                                         |    6 
 net/netrom/nr_timer.c                                                |    3 
 net/packet/af_packet.c                                               |   26 -
 net/sched/act_api.c                                                  |    3 
 net/sched/act_ct.c                                                   |   16 
 net/sched/sch_api.c                                                  |    1 
 net/sched/sch_generic.c                                              |    4 
 net/sched/sch_htb.c                                                  |   22 -
 net/tipc/node.c                                                      |    1 
 security/apparmor/audit.c                                            |    6 
 security/apparmor/include/audit.h                                    |    2 
 security/integrity/ima/ima.h                                         |    2 
 security/integrity/ima/ima_policy.c                                  |   15 
 security/security.c                                                  |    6 
 security/selinux/include/audit.h                                     |    4 
 security/selinux/ss/services.c                                       |    5 
 security/smack/smack_lsm.c                                           |    4 
 sound/core/seq/seq_ump_convert.c                                     |    2 
 sound/hda/intel-dsp-config.c                                         |    2 
 sound/pci/hda/cs35l41_hda.c                                          |    6 
 sound/pci/hda/cs35l56_hda.c                                          |    4 
 sound/pci/hda/patch_realtek.c                                        |   15 
 sound/pci/hda/tas2781_hda_i2c.c                                      |    4 
 sound/soc/intel/boards/sof_sdw.c                                     |   18 
 tools/arch/arm64/include/asm/sysreg.h                                |   24 -
 tools/testing/selftests/arm64/tags/tags_test.c                       |    4 
 tools/testing/selftests/bpf/prog_tests/btf_map_in_map.c              |   26 -
 tools/testing/selftests/bpf/progs/verifier_global_subprogs.c         |    7 
 tools/testing/selftests/bpf/test_tc_tunnel.sh                        |   13 
 tools/testing/selftests/net/cmsg_sender.c                            |   20 
 tools/testing/selftests/net/mptcp/userspace_pm.sh                    |   46 +-
 tools/testing/selftests/net/openvswitch/openvswitch.sh               |    2 
 virt/kvm/guest_memfd.c                                               |    5 
 virt/kvm/kvm_main.c                                                  |    5 
 307 files changed, 3153 insertions(+), 1396 deletions(-)

Abel Vesa (3):
      phy: qcom-qmp: qserdes-txrx: Add missing registers offsets
      phy: qcom-qmp: pcs: Add missing v6 N4 register offsets
      phy: qcom: qmp-combo: Switch from V6 to V6 N4 register offsets

Adrian Hunter (1):
      clocksource: Make watchdog and suspend-timing multiplication overflow safe

Ajrat Makhmutov (1):
      ALSA: hda/realtek: Enable headset mic on IdeaPad 330-17IKB 81DM

Aleksandr Aprelkov (1):
      iommu/arm-smmu-v3: Free MSIs in case of ENOMEM

Aleksandr Nogikh (1):
      kcov: don't lose track of remote references during softirqs

Alessandro Carminati (Red Hat) (1):
      selftests/bpf: Prevent client connect before server bind in test_tc_tunnel.sh

Alex Deucher (2):
      drm/radeon: fix UBSAN warning in kv_dpm.c
      drm/amdgpu: fix UBSAN warning in kv_dpm.c

Alex Henrie (1):
      usb: misc: uss720: check for incompatible versions of the Belkin F5U002

Alex Williamson (1):
      vfio/pci: Collect hot-reset devices to local buffer

Alexander Stein (1):
      i2c: lpi2c: Avoid calling clk_get_rate during transfer

Alexei Starovoitov (1):
      bpf: Avoid kfree_rcu() under lock in bpf_lpm_trie.

Amit Kumar Mahapatra (1):
      spi: Fix SPI slave probe failure

Andrew Ballance (1):
      hid: asus: asus_report_fixup: fix potential read out of bounds

Andy Chi (1):
      ALSA: hda/realtek: fix mute/micmute LEDs don't work for ProBook 445/465 G11.

Andy Shevchenko (1):
      serial: 8250_dw: Revert "Move definitions to the shared header"

Ard Biesheuvel (1):
      efi/x86: Free EFI memory map only when installing a new one.

Arnd Bergmann (2):
      wifi: ath9k: work around memset overflow warning
      dmaengine: fsl-edma: avoid linking both modules

Arvid Norlander (1):
      platform/x86: toshiba_acpi: Add quirk for buttons on Z830

Aryan Srivastava (1):
      net: mvpp2: use slab_build_skb for oversized frames

Baochen Qiang (2):
      wifi: ath12k: fix kernel crash during resume
      wifi: ath12k: check M3 buffer size as well whey trying to reuse it

Baokun Li (3):
      ext4: fix uninitialized ratelimit_state->lock access in __ext4_fill_super()
      ext4: avoid overflow when setting values via sysfs
      ext4: fix slab-out-of-bounds in ext4_mb_find_good_group_avg_frag_lists()

Baolin Wang (1):
      mm: shmem: fix getting incorrect lruvec when replacing a shmem folio

Bart Van Assche (4):
      scsi: core: Introduce the BLIST_SKIP_IO_HINTS flag
      scsi: usb: uas: Do not query the IO Advice Hints Grouping mode page for USB/UAS devices
      nbd: Improve the documentation of the locking assumptions
      nbd: Fix signal handling

Ben Fradella (1):
      platform/x86: p2sb: Don't init until unassigned resources have been assigned

Biju Das (1):
      regulator: core: Fix modpost error "regulator_get_regmap" undefined

Boris Burkov (1):
      btrfs: retry block group reclaim without infinite loop

Breno Leitao (2):
      netpoll: Fix race condition in netpoll_owner_active
      KVM: Fix a data race on last_boosted_vcpu in kvm_vcpu_on_spin()

Chao Yu (1):
      f2fs: fix to detect inconsistent nat entry during truncation

Charles Keepax (1):
      spi: cs42l43: Correct SPI root clock speed

Chenghai Huang (2):
      crypto: hisilicon/sec - Fix memory leak for sec resource release
      crypto: hisilicon/qm - Add the err memory release process to qm uninit

Chenliang Li (1):
      io_uring/rsrc: fix incorrect assignment of iter->nr_segs in io_import_fixed

Christian Marangi (1):
      mips: bmips: BCM6358: make sure CBR is correctly set

Christophe JAILLET (1):
      usb: gadget: function: Remove usage of the deprecated ida_simple_xx() API

Dan Carpenter (1):
      ptp: fix integer overflow in max_vclocks_store

Daniel Borkmann (1):
      bpf: Fix reg_set_min_max corruption of fake_reg

Daniel Golle (1):
      net: sfp: add quirk for ATS SFP-GE-T 1000Base-TX module

Dave Jiang (1):
      cxl: Add post-reset warning if reset results in loss of previously committed HDM decoders

Dave Martin (1):
      x86/resctrl: Don't try to free nonexistent RMIDs

David Arinzon (1):
      net: ena: Add validation for completion descriptors consistency

David Ruth (1):
      net/sched: act_api: fix possible infinite loop in tcf_idr_check_alloc()

Davide Caratti (2):
      net/sched: fix false lockdep warning on qdisc root lock
      net/sched: unregister lockdep keys in qdisc_create/qdisc_alloc error path

Dmitry Baryshkov (4):
      arm64: defconfig: select INTERCONNECT_QCOM_SM6115 as built-in
      usb: typec: ucsi_glink: rework quirks implementation
      usb: typec: ucsi_glink: drop special handling for CCI_BUSY
      usb: typec: qcom-pmic-typec: split HPD bridge alloc and registration

Dmitry Safonov (1):
      net/tcp_ao: Don't leak ao_info on error-path

Dustin L. Howett (1):
      ALSA: hda/realtek: Remove Framework Laptop 16 from quirks

Edson Juliano Drosdeck (1):
      ALSA: hda/realtek: Limit mic boost on N14AP7

En-Wei Wu (1):
      ice: avoid IRQ collision to fix init failure on ACPI S3 resume

Eric Dumazet (6):
      batman-adv: bypass empty buckets in batadv_purge_orig_ref()
      af_packet: avoid a false positive warning in packet_setsockopt()
      ipv6: prevent possible NULL deref in fib6_nh_init()
      ipv6: prevent possible NULL dereference in rt6_probe()
      xfrm6: check ip6_dst_idev() return value in xfrm6_get_saddr()
      tcp: clear tp->retrans_stamp in tcp_rcv_fastopen_synack()

Erico Nunes (3):
      drm/lima: add mask irq callback to gp and pp
      drm/lima: include pp bcast irq in timeout handler check
      drm/lima: mask irqs in timeout path before hard reset

Esben Haabendal (1):
      serial: imx: Introduce timeout when waiting on transmitter empty

Fabio Estevam (1):
      arm64: dts: imx93-11x11-evk: Remove the 'no-sdio' property

Florian Westphal (1):
      bpf: Avoid splat in pskb_pull_reason

Frank Li (1):
      arm64: dts: imx8qm-mek: fix gpio number for reg_usdhc2_vmmc

Fullway Wang (1):
      media: mtk-vcodec: potential null pointer deference in SCP

GUO Zihua (1):
      ima: Avoid blocking in RCU read-side critical section

Gavrilov Ilia (1):
      netrom: Fix a memory leak in nr_heartbeat_expiry()

Geetha sowjanya (1):
      octeontx2-pf: Fix linking objects into multiple modules

Greg Kroah-Hartman (1):
      Linux 6.9.7

Grygorii Tertychnyi (1):
      i2c: ocores: set IACK bit after core is enabled

Guenter Schafranek (1):
      ACPI: resource: Do IRQ override on GMxBGxx (XMG APEX 17 M23)

Hans de Goede (5):
      ACPI: x86: Add PNP_UART1_SKIP quirk for Lenovo Blade2 tablets
      platform/x86: x86-android-tablets: Unregister devices in reverse order
      platform/x86: x86-android-tablets: Add Lenovo Yoga Tablet 2 Pro 1380F/L data
      usb: dwc3: pci: Don't set "linux,phy_charger_detect" property on Lenovo Yoga Tab2 1380
      ACPI: scan: Ignore camera graph port nodes on all Dell Tiger, Alder and Raptor Lake models

Heng Qi (2):
      virtio_net: checksum offloading handling fix
      virtio_net: fixing XDP for fully checksummed packets handling

Herbert Xu (1):
      padata: Disable BH when taking works lock on MT path

Honggang LI (2):
      RDMA/rxe: Fix responder length checking for UD request packets
      RDMA/rxe: Fix data copy for IB_SEND_INLINE

Hui Li (3):
      LoongArch: Fix watchpoint setting error
      LoongArch: Trigger user-space watchpoints correctly
      LoongArch: Fix multiple hardware watchpoint issues

Ignat Korchagin (1):
      net: do not leave a dangling sk pointer, when socket creation fails

Ilpo Järvinen (2):
      PCI: Do not wait for disconnected devices when resuming
      MIPS: Routerboard 532: Fix vendor retry check code

Jaegeuk Kim (1):
      f2fs: don't set RO when shutting down f2fs

Jakub Kicinski (2):
      selftests: net: fix timestamp not arriving in cmsg_time.sh
      netdev-genl: fix error codes when outputting XDP features

Jan Kara (1):
      ext4: do not create EA inode under buffer lock

Jani Nikula (1):
      drm/i915/mso: using joiner is not possible with eDP MSO

Jason Gunthorpe (3):
      RDMA/mlx5: Remove extra unlock on error path
      RDMA/mlx5: Follow rb_key.ats when creating new mkeys
      RDMA/mlx5: Ensure created mkeys always have a populated rb_key

Jeff Johnson (1):
      tracing: Add MODULE_DESCRIPTION() to preemptirq_delay_test

Jens Axboe (1):
      io_uring/sqpoll: work around a potential audit memory leak

Jian Wen (1):
      devlink: use kvzalloc() to allocate devlink instance resources

Jianguo Wu (2):
      seg6: fix parameter passing when calling NF_HOOK() in End.DX4 and End.DX6 behaviors
      netfilter: move the sysctl nf_hooks_lwtunnel into the netfilter core

Jiaxun Yang (1):
      MIPS: mipsmtregs: Fix target register for MFTC0

Joao Paulo Goncalves (1):
      arm64: dts: freescale: imx8mm-verdin: Fix GPU speed

Joao Pinto (1):
      Avoid hw_desc array overrun in dw-axi-dmac

Joel Slebodnick (1):
      scsi: ufs: core: Free memory allocated for model before reinit

Johannes Berg (1):
      wifi: mac80211: fix monitor channel with chanctx emulation

Johannes Thumshirn (1):
      btrfs: zoned: allocate dummy checksums for zoned NODATASUM writes

Jose E. Marchesi (1):
      bpf: avoid uninitialized warnings in verifier_global_subprogs.c

Jose Ignacio Tornos Martinez (1):
      net: usb: ax88179_178a: improve reset check

Joseph Qi (2):
      ocfs2: fix NULL pointer dereference in ocfs2_journal_dirty()
      ocfs2: fix NULL pointer dereference in ocfs2_abort_trigger()

Jozsef Kadlecsik (1):
      netfilter: ipset: Fix suspicious rcu_dereference_protected()

Julien Panis (1):
      thermal/drivers/mediatek/lvts_thermal: Return error in case of invalid efuse data

Justin Stitt (1):
      block/ioctl: prefer different overflow check

Kalle Niemi (1):
      regulator: bd71815: fix ramp values

Kees Cook (1):
      ubsan: Avoid i386 UBSAN handler crashes with Clang

Kemeng Shi (1):
      fs/writeback: bail out if there is no more inodes for IO and queued once

Konstantin Taranov (1):
      RDMA/mana_ib: Ignore optional access flags for MRs

Krzysztof Kozlowski (3):
      dt-bindings: dma: fsl-edma: fix dma-channels constraints
      dt-bindings: i2c: atmel,at91sam: correct path to i2c-controller schema
      dt-bindings: i2c: google,cros-ec-i2c-tunnel: correct path to i2c-controller schema

Kunwu Chan (1):
      kselftest: arm64: Add a null pointer check

Leon Yen (1):
      wifi: mt76: mt7921s: fix potential hung tasks during chip recovery

Li RongQing (1):
      dmaengine: idxd: Fix possible Use-After-Free in irq_process_work_list

Lingbo Kong (1):
      wifi: ath12k: fix the problem that down grade phy mode operation

Linus Torvalds (3):
      tty: add the option to have a tty reject a new ldisc
      kprobe/ftrace: fix build error due to bad function definition
      Revert "mm: mmap: allow for the maximum number of bits for randomizing mmap_base by default"

Liu Ying (1):
      arm: dts: imx53-qsb-hdmi: Disable panel instead of deleting node

Louis Chauvet (1):
      dmaengine: xilinx: xdma: Fix data synchronisation in xdma_channel_isr()

Luiz Angelo Daros de Luca (2):
      net: dsa: realtek: keep default LED state in rtl8366rb
      net: dsa: realtek: do not assert reset on remove

Luke D. Jones (1):
      HID: asus: fix more n-key report descriptors if n-key quirked

Manish Rangankar (1):
      scsi: qedi: Fix crash while reading debugfs attribute

Marc Kleine-Budde (1):
      spi: spi-imx: imx51: revert burst length calculation back to bits_per_word

Marc Zyngier (1):
      KVM: arm64: Disassociate vcpus from redistributor region on teardown

Marcin Szycik (1):
      ice: Fix VSI list rule with ICE_SW_LKUP_LAST type

Marek Behún (1):
      net: sfp: enhance quirk for Fibrestore 2.5G copper SFP module

Marek Vasut (1):
      arm64: dts: imx8mp: Fix TC9595 input clock on DH i.MX8M Plus DHCOM SoM

Mario Limonciello (1):
      PCI/PM: Avoid D3cold for HP Pavilion 17 PC/1972 PCIe Ports

Martin Leung (1):
      drm/amd/display: revert Exit idle optimizations before HDCP execution

Masami Hiramatsu (Google) (1):
      tracing: Build event generation tests only as modules

Mathias Nyman (1):
      xhci: remove XHCI_TRUST_TX_LENGTH quirk

Matthieu Baerts (NGI0) (1):
      selftests: mptcp: userspace_pm: fixed subtest names

Max Krummenacher (1):
      arm64: dts: freescale: imx8mm-verdin: enable hysteresis on slow input pin

Michael Ellerman (1):
      powerpc/io: Avoid clang null pointer arithmetic warnings

Michael Grzeschik (1):
      usb: gadget: uvc: configfs: ensure guid to be valid before set

Michael Strauss (1):
      drm/amd/display: Attempt to avoid empty TUs when endpoint is DPIA

Michal Wajdeczko (1):
      drm/xe/vf: Don't touch GuC irq registers if using memory irqs

Miklos Szeredi (1):
      ovl: fix encoding fid for lower only root

Nathan Lynch (2):
      powerpc/pseries: Enforce hcall result buffer validity and size
      powerpc/crypto: Add generated P8 asm to .gitignore

Nicholas Kazlauskas (2):
      drm/amd/display: Exit idle optimizations before HDCP execution
      drm/amd/display: Workaround register access in idle race with cursor

Nikita Shubin (4):
      dmaengine: ioatdma: Fix leaking on version mismatch
      dmaengine: ioatdma: Fix error path in ioat3_dma_probe()
      dmaengine: ioatdma: Fix kmemleak in ioat_pci_probe()
      dmaengine: ioatdma: Fix missing kmem_cache_destroy()

Niklas Cassel (1):
      ata: ahci: Do not enable LPM if no LPM states are supported by the HBA

Oleksij Rempel (3):
      net: phy: dp83tg720: wake up PHYs in managed mode
      net: stmmac: Assign configured channel value to EXTTS event
      net: phy: dp83tg720: get master/slave configuration in link down state

Oliver Neukum (1):
      net: usb: rtl8150 fix unintiatilzed variables in rtl8150_get_link_ksettings

Ondrej Mosnacek (1):
      cipso: fix total option length computation

Pablo Caño (1):
      ALSA: hda/realtek: Add quirk for Lenovo Yoga Pro 7 14AHP9

Paolo Bonzini (1):
      virt: guest_memfd: fix reference leak on hwpoisoned page

Parker Newman (1):
      serial: exar: adding missing CTI and Exar PCI ids

Patrice Chotard (2):
      spi: stm32: qspi: Fix dual flash mode sanity test in stm32_qspi_setup()
      spi: stm32: qspi: Clamp stm32_qspi_get_mode() output to CCR_BUSWIDTH_4

Patrisious Haddad (1):
      RDMA/mlx5: Add check for srq max_sge attribute

Paul E. McKenney (1):
      rcutorture: Fix rcu_torture_one_read() pipe_count overflow comment

Paul Greenwalt (1):
      ice: fix 200G link speed message log

Pavan Chebbi (1):
      bnxt_en: Restore PTP tx_avail count in case of skb_pad() error

Peng Ma (1):
      cpufreq: amd-pstate: fix memory leak on CPU EPP exit

Peter Oberparleiter (1):
      gcov: add support for GCC 14

Peter Ujfalusi (1):
      ALSA/hda: intel-dsp-config: Document AVS as dsp_driver option

Peter Xu (1):
      mm/page_table_check: fix crash on ZONE_DEVICE

Pierre-Louis Bossart (3):
      ASoC: Intel: sof_sdw: add JD2 quirk for HP Omen 14
      ASoC: Intel: sof_sdw: add quirk for Dell SKU 0C0F
      ASoC: Intel: sof-sdw: really remove FOUR_SPEAKER quirk

Ping-Ke Shih (1):
      wifi: rtw89: 8852c: add quirk to set PCI BER for certain platforms

Rafael Aquini (1):
      mm: mmap: allow for the maximum number of bits for randomizing mmap_base by default

Rafael J. Wysocki (3):
      ACPI: EC: Install address space handler at the namespace root
      ACPI: EC: Evaluate orphan _REG under EC device
      thermal: core: Change PM notifier priority to the minimum

Raju Lakkaraju (3):
      net: lan743x: disable WOL upon resume to restore full data path operation
      net: lan743x: Support WOL at both the PHY and MAC appropriately
      net: phy: mxl-gpy: Remove interrupt mask clearing from config_init

Raju Rangoju (1):
      ACPICA: Revert "ACPICA: avoid Info: mapping multiple BARs. Your kernel is fine."

Ran Xiaokai (1):
      mm: huge_memory: fix misused mapping_large_folio_support() for anon folios

Rand Deeb (1):
      ssb: Fix potential NULL pointer dereference in ssb_device_uevent()

Remi Pommarel (1):
      wifi: mac80211: Recalc offload when monitor stop

Ricardo Ribalda (1):
      media: intel/ipu6: Fix build with !ACPI

Roman Li (1):
      drm/amd/display: Remove redundant idle optimization check

Roman Smirnov (1):
      udf: udftime: prevent overflow in udf_disk_stamp_to_time()

Sean Christopherson (1):
      KVM: x86: Always sync PIR to IRR prior to scanning I/O APIC routes

Sean O'Brien (1):
      HID: Add quirk for Logitech Casa touchpad

Selvin Xavier (1):
      RDMA/bnxt_re: Fix the max msix vectors macro

Shaul Triebitz (1):
      wifi: iwlwifi: mvm: fix ROC version check

Shiqi Liu (1):
      arm64/sysreg: Update PIE permission encodings

Siddharth Vadapalli (1):
      dmaengine: ti: k3-udma-glue: Fix of_k3_udma_glue_parse_chn_by_id()

Simon Horman (2):
      selftests: openvswitch: Use bash as interpreter
      octeontx2-pf: Add error handling to VLAN unoffload handling

Simon Trimmer (4):
      ALSA: hda: cs35l41: Possible null pointer dereference in cs35l41_hda_unbind()
      ALSA: hda: cs35l56: Component should be unbound before deconstruction
      ALSA: hda: cs35l41: Component should be unbound before deconstruction
      ALSA: hda: tas2781: Component should be unbound before deconstruction

Songyang Li (1):
      MIPS: Octeon: Add PCIe link status check

Srinivas Pandruvada (1):
      thermal: int340x: processor_thermal: Support shared interrupts

Stefan Binding (2):
      ALSA: hda/realtek: Add quirks for HP Omen models using CS35L41
      ALSA: hda/realtek: Add quirks for Lenovo 13X

Stefan Wahren (1):
      qca_spi: Make interrupt remembering atomic

Stephen Brennan (1):
      kprobe/ftrace: bail out if ftrace was killed

Steve French (1):
      cifs: fix typo in module parameter enable_gcm_256

Sudeep Holla (1):
      firmware: psci: Fix return value from psci_system_suspend()

Takashi Iwai (2):
      ACPI: video: Add backlight=native quirk for Lenovo Slim 7 16ARH7
      ALSA: seq: ump: Fix missing System Reset message handling

Tamim Khan (1):
      ACPI: resource: Skip IRQ override on Asus Vivobook Pro N6506MV

Tim Harvey (1):
      arm64: dts: freescale: imx8mp-venice-gw73xx-2x: fix BT shutdown GPIO

Tony Luck (2):
      x86/cpu/vfm: Add new macros to work with (vendor/family/model) values
      x86/cpu: Fix x86_match_cpu() to match just X86_VENDOR_INTEL

Tzung-Bi Shih (3):
      platform/chrome: cros_usbpd_logger: provide ID table for avoiding fallback match
      platform/chrome: cros_usbpd_notify: provide ID table for avoiding fallback match
      power: supply: cros_usbpd: provide ID table for avoiding fallback match

Uri Arev (1):
      Bluetooth: ath3k: Fix multiple issues reported by checkpatch.pl

Viresh Kumar (1):
      OPP: Fix required_opp_tables for multiple genpds using same table

Waiman Long (1):
      cgroup/cpuset: Make cpuset hotplug processing synchronous

Wander Lairson Costa (1):
      drop_monitor: replace spin_lock by raw_spin_lock

Wojciech Drewek (1):
      ice: implement AQ download pkg retry

Xi Ruoyao (1):
      LoongArch: Only allow OBJTOOL & ORC unwinder if toolchain supports -mthin-add-sub

Xiaolei Wang (1):
      net: stmmac: No need to calculate speed divider when offload is disabled

Xin Long (2):
      tipc: force a dst refcount before doing decryption
      sched: act_ct: add netns into the key of tcf_ct_flow_table

Yishai Hadas (1):
      RDMA/mlx5: Fix unwind flow as part of mlx5_ib_stage_init_init

Yonghong Song (1):
      selftests/bpf: Fix flaky test btf_map_in_map/lookup_update

Yue Haibing (1):
      netns: Make get_net_ns() handle zero refcount net

Yunlei He (1):
      f2fs: remove clear SB_INLINECRYPT flag in default_options

Yunxiang Li (1):
      drm/amdgpu: fix locking scope when flushing tlb

Zqiang (2):
      rcutorture: Make stall-tasks directly exit when rcutorture tests end
      rcutorture: Fix invalid context warning when enable srcu barrier testing

.

From: "zheng.dongxiong" <zheng.dongxiong@outlook.com>
To: manivannan.sadhasivam@linaro.org,
	fancer.lancer@gmail.com,
	vkoul@kernel.org
Cc: dmaengine@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	"zheng.dongxiong" <zheng.dongxiong@outlook.com>
Subject: [PATCH 1/2] dmaengine: dw-edma: Move "Set consumer cycle" into first condition in dw_hdma_v0_core_start()
Date: Thu, 27 Jun 2024 20:09:46 +0800
Message-ID: <SYBP282MB26207BD3AC4C1B6ECD5ADDFDF9D72@SYBP282MB2620.AUSP282.PROD.OUTLOOK.COM>
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1260829
Newsgroups: org.kernel.vger.linux-kernel,org.kernel.vger.dmaengine
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

Consumer cycle only needs to be set on the first transfer.

Signed-off-by: zheng.dongxiong <zheng.dongxiong@outlook.com>
---
 drivers/dma/dw-edma/dw-hdma-v0-core.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/drivers/dma/dw-edma/dw-hdma-v0-core.c b/drivers/dma/dw-edma/dw-hdma-v0-core.c
index 10e8f0715..d77051d1e 100644
--- a/drivers/dma/dw-edma/dw-hdma-v0-core.c
+++ b/drivers/dma/dw-edma/dw-hdma-v0-core.c
@@ -262,10 +262,10 @@ static void dw_hdma_v0_core_start(struct dw_edma_chunk *chunk, bool first)
 			  lower_32_bits(chunk->ll_region.paddr));
 		SET_CH_32(dw, chan->dir, chan->id, llp.msb,
 			  upper_32_bits(chunk->ll_region.paddr));
+		/* Set consumer cycle */
+		SET_CH_32(dw, chan->dir, chan->id, cycle_sync,
+			HDMA_V0_CONSUMER_CYCLE_STAT | HDMA_V0_CONSUMER_CYCLE_BIT);
 	}
-	/* Set consumer cycle */
-	SET_CH_32(dw, chan->dir, chan->id, cycle_sync,
-		  HDMA_V0_CONSUMER_CYCLE_STAT | HDMA_V0_CONSUMER_CYCLE_BIT);
 
 	dw_hdma_v0_sync_ll_data(chunk);
 
-- 
2.34.1

.

From: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
To: Bjorn Andersson <andersson@kernel.org>,
	Konrad Dybcio <konrad.dybcio@linaro.org>,
	Rob Herring <robh@kernel.org>,
	Krzysztof Kozlowski <krzk+dt@kernel.org>,
	Conor Dooley <conor+dt@kernel.org>,
	linux-arm-msm@vger.kernel.org,
	devicetree@vger.kernel.org,
	linux-kernel@vger.kernel.org
Cc: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Subject: [PATCH 1/3] arm64: dts: qcom: sm8550-hdk: add port mapping to speakers
Date: Thu, 27 Jun 2024 14:20:13 +0200
Message-ID: <20240627122015.30945-1-krzysztof.kozlowski@linaro.org>
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1260834
Newsgroups: org.kernel.vger.linux-kernel,org.kernel.vger.linux-arm-msm,org.kernel.vger.linux-devicetree
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

Add appropriate mappings of Soundwire ports of WSA8845 speaker.  This
solves second (south) speaker sound distortions when playing audio.

Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>

---

Bindings:
https://lore.kernel.org/all/20240626-port-map-v1-3-bd8987d2b332@linaro.org/

Can be applied independently, if bindings are fine.
---
 arch/arm64/boot/dts/qcom/sm8550-hdk.dts | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/arch/arm64/boot/dts/qcom/sm8550-hdk.dts b/arch/arm64/boot/dts/qcom/sm8550-hdk.dts
index e0dc03a97771..2e12219006c9 100644
--- a/arch/arm64/boot/dts/qcom/sm8550-hdk.dts
+++ b/arch/arm64/boot/dts/qcom/sm8550-hdk.dts
@@ -1106,6 +1106,7 @@ north_spkr: speaker@0,0 {
 
 		#sound-dai-cells = <0>;
 		sound-name-prefix = "SpkrLeft";
+		qcom,port-mapping = <1 2 3 7 10 13>;
 	};
 
 	/* WSA8845, Speaker South */
@@ -1123,6 +1124,7 @@ south_spkr: speaker@0,1 {
 
 		#sound-dai-cells = <0>;
 		sound-name-prefix = "SpkrRight";
+		qcom,port-mapping = <4 5 6 7 11 13>;
 	};
 };
 
-- 
2.43.0

.

Date: Thu, 27 Jun 2024 13:33:54 +0100
From: Mark Brown <broonie@kernel.org>
To: Steffen Klassert <steffen.klassert@secunet.com>
Cc: Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
	Linux Next Mailing List <linux-next@vger.kernel.org>
Subject: linux-next: build failure after merge of the ipsec tree
Message-ID: <Zn1cMmFP_FwwjYTG@sirena.org.uk>
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha512;
	protocol="application/pgp-signature"; boundary="ZC2OUwBwrStDHNsk"
Content-Disposition: inline
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1260846 org.kernel.vger.linux-next:61947
Newsgroups: org.kernel.vger.linux-kernel,org.kernel.vger.linux-next
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail


--ZC2OUwBwrStDHNsk
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline

Hi all,

After merging the ipsec tree, today's linux-next build (KCONFIG_NAME)
failed like this:

ERROR: modpost: "xfrm_dev_state_delete" [net/xfrm/xfrm_user.ko] undefined!

Caused by commit

  07b87f9eea0c306750 ("xfrm: Fix unregister netdevice hang on hardware offload.")

I have used the tree from 20240626 instead.

--ZC2OUwBwrStDHNsk
Content-Type: application/pgp-signature; name="signature.asc"

-----BEGIN PGP SIGNATURE-----

iQEzBAABCgAdFiEEreZoqmdXGLWf4p/qJNaLcl1Uh9AFAmZ9XDEACgkQJNaLcl1U
h9C8lAf/XyFQl/RbJgMeoAuvbaograGeisu9KsUy1FsXMSSC7H9RCBdTQOPQ8f/X
bHvzeGIy3rOqCsIEXelXS4etbC/PKWuCefCXD4YckGVZYs2ZBF2TGDtSKl8aGsyT
sYqgsriZnssNk6TDVQAe2pBbG+xJV8mePUmWwfv38ij4cG3GJanzV0kKKOcF9qbZ
aYsq8AQnwLRjLJ41HKoSqR4Z0DD1yK0Nrp26xU4sFBEU9k/zlljDtREAk/0sfnXx
MIEf/QYouYIoqfen/mSH9W5XSlYal/uLytyp2bFYFsZhC9H3adl1Jgq0jqwf/nCB
SbBNMIS7aD1FLcwdljoqx3mvDEHRVg==
=aVeB
-----END PGP SIGNATURE-----

--ZC2OUwBwrStDHNsk--
.

From: Wolfram Sang <wsa+renesas@sang-engineering.com>
To: linux-renesas-soc@vger.kernel.org
Cc: Wolfram Sang <wsa+renesas@sang-engineering.com>,
	linux-i2c@vger.kernel.org,
	linux-kernel@vger.kernel.org
Subject: [PATCH] i2c: add debug message for detected HostNotify alerts
Date: Thu, 27 Jun 2024 14:43:14 +0200
Message-ID: <20240627124313.1811-2-wsa+renesas@sang-engineering.com>
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1260850
Newsgroups: org.kernel.vger.linux-kernel,org.kernel.vger.linux-i2c,org.kernel.vger.linux-renesas-soc
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

Setting up HostNotify can be tricky. Support debugging by stating
whenever we received a HostNotify alert independent of the irq being
mapped. Especially useful with the in-kernel i2c testunit.

Signed-off-by: Wolfram Sang <wsa+renesas@sang-engineering.com>
---
 drivers/i2c/i2c-core-base.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/drivers/i2c/i2c-core-base.c b/drivers/i2c/i2c-core-base.c
index db0d1ac82910..b94594e90a66 100644
--- a/drivers/i2c/i2c-core-base.c
+++ b/drivers/i2c/i2c-core-base.c
@@ -1468,6 +1468,8 @@ int i2c_handle_smbus_host_notify(struct i2c_adapter *adap, unsigned short addr)
 	if (!adap)
 		return -EINVAL;
 
+	dev_dbg(&adap->dev, "Detected HostNotify from address 0x%02x", addr);
+
 	irq = irq_find_mapping(adap->host_notify_domain, addr);
 	if (irq <= 0)
 		return -ENXIO;
-- 
2.43.0

.

From: =?UTF-8?q?Bernhard=20Rosenkr=C3=A4nzer?= <bero@baylibre.com>
To: florian.fainelli@broadcom.com,
	bcm-kernel-feedback-list@broadcom.com,
	gregkh@linuxfoundation.org,
	umang.jain@ideasonboard.com,
	wahrenst@gmx.net,
	linux-rpi-kernel@lists.infradead.org,
	linux-arm-kernel@lists.infradead.org,
	linux-staging@lists.linux.dev,
	linux-kernel@vger.kernel.org
Subject: [PATCH] staging: vchiq_debugfs: Fix build if CONFIG_DEBUG_FS is not set
Date: Thu, 27 Jun 2024 14:44:19 +0200
Message-ID: <20240627124419.2498642-1-bero@baylibre.com>
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1260852
Newsgroups: org.kernel.vger.linux-kernel,dev.linux.lists.linux-staging,org.infradead.lists.linux-arm-kernel
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

Commit 42a2f6664e18 ("staging: vc04_services: Move global g_state to
vchiq_state") adds a parameter to vchiq_debugfs_init, but leaves the
dummy implementation in the !CONFIG_DEBUG_FS case untouched, causing a
compile time error.

Fixes: c3552ab19aeb ("staging: vchiq_debugfs: Fix NPD in vchiq_dump_state")
Signed-off-by: Bernhard Rosenkränzer <bero@baylibre.com>
---
 .../staging/vc04_services/interface/vchiq_arm/vchiq_debugfs.c   | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_debugfs.c b/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_debugfs.c
index 1f74d0bb33bae..d5f7f61c56269 100644
--- a/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_debugfs.c
+++ b/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_debugfs.c
@@ -138,7 +138,7 @@ void vchiq_debugfs_deinit(void)
 
 #else /* CONFIG_DEBUG_FS */
 
-void vchiq_debugfs_init(void)
+void vchiq_debugfs_init(struct vchiq_state *state)
 {
 }
 
-- 
2.45.2

.

X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
From: Naresh Kamboju <naresh.kamboju@linaro.org>
Date: Thu, 27 Jun 2024 18:19:23 +0530
Message-ID: <CA+G9fYtiWKuQzwoBVaBA6zp304uCw5SsHKf3484CY-kuuOgnFA@mail.gmail.com>
Subject: powerpc: nvram_64.c:75:13: error: 'oops_to_nvram' used but never
 defined [-Werror]
To: open list <linux-kernel@vger.kernel.org>, 
	linuxppc-dev <linuxppc-dev@lists.ozlabs.org>, linux-mm <linux-mm@kvack.org>, 
	lkft-triage@lists.linaro.org, Linux Regressions <regressions@lists.linux.dev>
Cc: Jocelyn Falempe <jfalempe@redhat.com>, Andrew Morton <akpm@linux-foundation.org>, 
	"Aneesh Kumar K.V" <aneesh.kumar@kernel.org>, "Naveen N. Rao" <naveen.n.rao@linux.ibm.com>, 
	Christophe Leroy <christophe.leroy@csgroup.eu>, Arnd Bergmann <arnd@arndb.de>, 
	Dan Carpenter <dan.carpenter@linaro.org>, Anders Roxell <anders.roxell@linaro.org>, 
	Nicholas Piggin <npiggin@gmail.com>
Content-Type: text/plain; charset="UTF-8"
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1260858 org.kvack.linux-mm:201624
Newsgroups: org.kernel.vger.linux-kernel,dev.linux.lists.regressions,org.kvack.linux-mm,org.ozlabs.lists.linuxppc-dev
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

The powerpc builds failed on Linux next-20240626 tag due to following warnings
and errors with gcc-13, gcc-8 and clang-18.

Reported-by: Linux Kernel Functional Testing <lkft@linaro.org>

Regressions found on powerpc:

  - clang-nightly-ppc64e_defconfig
  - clang-18-maple_defconfig
  - clang-nightly-defconfig
  - clang-18-defconfig
  - gcc-13-maple_defconfig
  - gcc-8-cell_defconfig
  - gcc-8-maple_defconfig
  - clang-18-ppc64e_defconfig
  - clang-nightly-cell_defconfig
  - clang-nightly-maple_defconfig
  - gcc-8-ppc64e_defconfig
  - gcc-13-cell_defconfig
  - gcc-13-defconfig
  - gcc-13-ppc64e_defconfig
  - clang-18-cell_defconfig
  - gcc-8-defconfig

Build errors:
----
arch/powerpc/kernel/nvram_64.c:79:17: error: initialization of 'void
(*)(struct kmsg_dumper *, enum kmsg_dump_reason,  const char *)' from
incompatible pointer type 'void (*)(struct kmsg_dumper *, enum
kmsg_dump_reason)' [-Werror=incompatible-pointer-types]
   79 |         .dump = oops_to_nvram
      |                 ^~~~~~~~~~~~~
arch/powerpc/kernel/nvram_64.c:79:17: note: (near initialization for
'nvram_kmsg_dumper.dump')
arch/powerpc/kernel/nvram_64.c:645:13: error: conflicting types for
'oops_to_nvram'; have 'void(struct kmsg_dumper *, enum
kmsg_dump_reason,  const char *)'
  645 | static void oops_to_nvram(struct kmsg_dumper *dumper,
      |             ^~~~~~~~~~~~~
arch/powerpc/kernel/nvram_64.c:75:13: note: previous declaration of
'oops_to_nvram' with type 'void(struct kmsg_dumper *, enum
kmsg_dump_reason)'
   75 | static void oops_to_nvram(struct kmsg_dumper *dumper,
      |             ^~~~~~~~~~~~~
arch/powerpc/kernel/nvram_64.c:75:13: error: 'oops_to_nvram' used but
never defined [-Werror]
arch/powerpc/kernel/nvram_64.c:645:13: error: 'oops_to_nvram' defined
but not used [-Werror=unused-function]
  645 | static void oops_to_nvram(struct kmsg_dumper *dumper,
      |             ^~~~~~~~~~~~~
cc1: all warnings being treated as errors

metadata:
--
  git_describe: next-20240626
  git_repo: https://gitlab.com/Linaro/lkft/mirrors/next/linux-next
  git_short_log: df9574a57d02 ("Add linux-next specific files for 20240626")
  arch: powerpc
  toolchain: gcc-13, gcc-8 and clang-18

Steps to reproduce:
---------

# tuxmake --runtime podman --target-arch powerpc --toolchain gcc-13
--kconfig ppc64e_defconfig


Links:
--
 - https://storage.tuxsuite.com/public/linaro/lkft/builds/2iQqkMfvFPihkYnvWC7UxrVhb1X/
 - https://qa-reports.linaro.org/lkft/linux-next-master/build/next-20240626/testrun/24453163/suite/build/test/gcc-13-ppc64e_defconfig/details/
- https://storage.tuxsuite.com/public/linaro/lkft/builds/2iQqkMfvFPihkYnvWC7UxrVhb1X/config

--
Linaro LKFT
https://lkft.linaro.org
.

Date: Thu, 27 Jun 2024 14:51:12 +0200
From: Jens Wiklander <jens.wiklander@linaro.org>
To: arm@kernel.org, soc@kernel.org
Cc: Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
	op-tee@lists.trustedfirmware.org
Subject: [GIT PULL] OP-TEE fix for v6.11
Message-ID: <20240627125112.GA2674988@rayden>
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1260860
Newsgroups: org.kernel.vger.linux-kernel,org.kernel.lore.soc
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

Hello arm-soc maintainers,

Please pull this small patch fixing a few missing-field-initializers warnings
in the optee driver.

Thanks,
Jens

The following changes since commit a38297e3fb012ddfa7ce0321a7e5a8daeb1872b6:

  Linux 6.9 (2024-05-12 14:12:29 -0700)

are available in the Git repository at:

  https://git.linaro.org/people/jens.wiklander/linux-tee.git/ tags/optee-fix-for-v6.11

for you to fetch changes up to e0556255a53d6d3d406a28362dffd972018a997c:

  tee: optee: ffa: Fix missing-field-initializers warning (2024-06-27 10:27:31 +0200)

----------------------------------------------------------------
Fix optee missing-field-initializers warning

----------------------------------------------------------------
Mark-PK Tsai (1):
      tee: optee: ffa: Fix missing-field-initializers warning

 drivers/tee/optee/ffa_abi.c | 12 +++++++++---
 1 file changed, 9 insertions(+), 3 deletions(-)
.

From: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
To: Liam Girdwood <lgirdwood@gmail.com>,
	Mark Brown <broonie@kernel.org>,
	Jaroslav Kysela <perex@perex.cz>,
	Takashi Iwai <tiwai@suse.com>,
	Dmitry Baryshkov <dmitry.baryshkov@linaro.org>,
	Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>,
	linux-sound@vger.kernel.org,
	linux-kernel@vger.kernel.org
Cc: kernel test robot <lkp@intel.com>
Subject: [PATCH] ASoC: codecs: lpass-wsa-macro: add missing select of common code
Date: Thu, 27 Jun 2024 14:52:03 +0200
Message-ID: <20240627125203.171048-1-krzysztof.kozlowski@linaro.org>
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1260863
Newsgroups: org.kernel.vger.linux-kernel,org.kernel.vger.linux-sound
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

The Qualcomm LPASS WSA macro codec driver uses now parts of common
module, so it has to select SND_SOC_LPASS_MACRO_COMMON.

  sound/soc/codecs/lpass-wsa-macro.o: in function `wsa_macro_probe':
  sound/soc/codecs/lpass-wsa-macro.c:2767:(.text+0x1c9c): undefined reference to `lpass_macro_get_codec_version'

Reported-by: kernel test robot <lkp@intel.com>
Closes: https://lore.kernel.org/oe-kbuild-all/202406272231.th1LtuLk-lkp@intel.com/
Fixes: 5dcf442bbbca ("ASoC: codecs: lpass-wsa-macro: Prepare to accommodate new codec versions")
Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
---
 sound/soc/codecs/Kconfig | 1 +
 1 file changed, 1 insertion(+)

diff --git a/sound/soc/codecs/Kconfig b/sound/soc/codecs/Kconfig
index a99cb26eb280..36dabc045868 100644
--- a/sound/soc/codecs/Kconfig
+++ b/sound/soc/codecs/Kconfig
@@ -2538,6 +2538,7 @@ config SND_SOC_LPASS_MACRO_COMMON
 config SND_SOC_LPASS_WSA_MACRO
 	depends on COMMON_CLK
 	select REGMAP_MMIO
+	select SND_SOC_LPASS_MACRO_COMMON
 	tristate "Qualcomm WSA Macro in LPASS(Low Power Audio SubSystem)"
 
 config SND_SOC_LPASS_VA_MACRO
-- 
2.43.0

.

From: Neil Armstrong <neil.armstrong@linaro.org>
Subject: [PATCH 0/3] arm64: qcom: sm8650: add port mapping to speakers
Date: Thu, 27 Jun 2024 14:57:13 +0200
Message-Id: <20240627-topic-sm8650-upstream-was-port-mapping-v1-0-4700bcc2489a@linaro.org>
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit
To: Bjorn Andersson <andersson@kernel.org>, 
 Konrad Dybcio <konrad.dybcio@linaro.org>, Rob Herring <robh@kernel.org>, 
 Krzysztof Kozlowski <krzk+dt@kernel.org>, 
 Conor Dooley <conor+dt@kernel.org>
Cc: linux-arm-msm@vger.kernel.org, devicetree@vger.kernel.org, 
 linux-kernel@vger.kernel.org, Neil Armstrong <neil.armstrong@linaro.org>
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1260866
Newsgroups: org.kernel.vger.linux-kernel,org.kernel.vger.linux-arm-msm,org.kernel.vger.linux-devicetree
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

Add appropriate mappings of Soundwire ports of WSA8845 speaker
on MTP, QRD and HDK boards to correctly map the speaker ports to
the corresponding WSA macro ports.

Runtime Dependencies:
- https://lore.kernel.org/all/20240625-qcom-audio-wsa-second-speaker-v1-0-f65ffdfc368c@linaro.org/
- https://lore.kernel.org/all/20240626-port-map-v1-2-bd8987d2b332@linaro.org/
- https://lore.kernel.org/all/20240626-port-map-v1-4-bd8987d2b332@linaro.org/

Bindings Dependencies:
- https://lore.kernel.org/all/20240626-port-map-v1-4-bd8987d2b332@linaro.org/

Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
---
Neil Armstrong (3):
      arm64: dts: qcom: sm8650-hdk: add port mapping to speakers
      arm64: dts: qcom: sm8650-mtp: add port mapping to speakers
      arm64: dts: qcom: sm8650-qrd: add port mapping to speakers

 arch/arm64/boot/dts/qcom/sm8650-hdk.dts | 20 ++++++++++++++++++++
 arch/arm64/boot/dts/qcom/sm8650-mtp.dts | 20 ++++++++++++++++++++
 arch/arm64/boot/dts/qcom/sm8650-qrd.dts | 20 ++++++++++++++++++++
 3 files changed, 60 insertions(+)
---
base-commit: bc468579d65b29188123eefa2cd7f48a6ee05a21
change-id: 20240627-topic-sm8650-upstream-was-port-mapping-1b326fb51af0

Best regards,
-- 
Neil Armstrong <neil.armstrong@linaro.org>

.

X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Date: Thu, 27 Jun 2024 05:58:18 -0700
Message-ID: <000000000000565ec5061bdeafd5@google.com>
Subject: [syzbot] [exfat?] possible deadlock in exfat_iterate (2)
From: syzbot <syzbot+df3558df41609451e4ac@syzkaller.appspotmail.com>
To: linkinjeon@kernel.org, linux-fsdevel@vger.kernel.org, 
	linux-kernel@vger.kernel.org, sj1557.seo@samsung.com, 
	syzkaller-bugs@googlegroups.com
Content-Type: text/plain; charset="UTF-8"
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1260872
Newsgroups: org.kernel.vger.linux-kernel,org.kernel.vger.linux-fsdevel
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

Hello,

syzbot found the following issue on:

HEAD commit:    55027e689933 Merge tag 'input-for-v6.10-rc5' of git://git...
git tree:       upstream
console output: https://syzkaller.appspot.com/x/log.txt?x=16390ac1980000
kernel config:  https://syzkaller.appspot.com/x/.config?x=53ab35b556129242
dashboard link: https://syzkaller.appspot.com/bug?extid=df3558df41609451e4ac
compiler:       gcc (Debian 12.2.0-14) 12.2.0, GNU ld (GNU Binutils for Debian) 2.40
userspace arch: i386

Unfortunately, I don't have any reproducer for this issue yet.

Downloadable assets:
disk image (non-bootable): https://storage.googleapis.com/syzbot-assets/7bc7510fe41f/non_bootable_disk-55027e68.raw.xz
vmlinux: https://storage.googleapis.com/syzbot-assets/a36929b5a065/vmlinux-55027e68.xz
kernel image: https://storage.googleapis.com/syzbot-assets/d72de6f61ddc/bzImage-55027e68.xz

IMPORTANT: if you fix the issue, please add the following tag to the commit:
Reported-by: syzbot+df3558df41609451e4ac@syzkaller.appspotmail.com

======================================================
WARNING: possible circular locking dependency detected
6.10.0-rc5-syzkaller-00018-g55027e689933 #0 Not tainted
------------------------------------------------------
syz-executor.2/6265 is trying to acquire lock:
ffffffff8dd3ab20 (fs_reclaim){+.+.}-{0:0}, at: might_alloc include/linux/sched/mm.h:334 [inline]
ffffffff8dd3ab20 (fs_reclaim){+.+.}-{0:0}, at: slab_pre_alloc_hook mm/slub.c:3891 [inline]
ffffffff8dd3ab20 (fs_reclaim){+.+.}-{0:0}, at: slab_alloc_node mm/slub.c:3981 [inline]
ffffffff8dd3ab20 (fs_reclaim){+.+.}-{0:0}, at: __do_kmalloc_node mm/slub.c:4121 [inline]
ffffffff8dd3ab20 (fs_reclaim){+.+.}-{0:0}, at: __kmalloc_noprof+0xb5/0x420 mm/slub.c:4135

but task is already holding lock:
ffff88804af1a0e0 (&sbi->s_lock#2){+.+.}-{3:3}, at: exfat_iterate+0x33f/0xad0 fs/exfat/dir.c:256

which lock already depends on the new lock.


the existing dependency chain (in reverse order) is:

-> #1 (&sbi->s_lock#2){+.+.}-{3:3}:
       __mutex_lock_common kernel/locking/mutex.c:608 [inline]
       __mutex_lock+0x175/0x9c0 kernel/locking/mutex.c:752
       exfat_evict_inode+0x25b/0x340 fs/exfat/inode.c:725
       evict+0x2ed/0x6c0 fs/inode.c:667
       iput_final fs/inode.c:1741 [inline]
       iput.part.0+0x5a8/0x7f0 fs/inode.c:1767
       iput+0x5c/0x80 fs/inode.c:1757
       dentry_unlink_inode+0x295/0x480 fs/dcache.c:400
       __dentry_kill+0x1d0/0x600 fs/dcache.c:603
       shrink_kill fs/dcache.c:1048 [inline]
       shrink_dentry_list+0x140/0x5d0 fs/dcache.c:1075
       prune_dcache_sb+0xeb/0x150 fs/dcache.c:1156
       super_cache_scan+0x32a/0x550 fs/super.c:221
       do_shrink_slab+0x44f/0x11c0 mm/shrinker.c:435
       shrink_slab_memcg mm/shrinker.c:548 [inline]
       shrink_slab+0xa87/0x1310 mm/shrinker.c:626
       shrink_one+0x493/0x7c0 mm/vmscan.c:4790
       shrink_many mm/vmscan.c:4851 [inline]
       lru_gen_shrink_node+0x89f/0x1750 mm/vmscan.c:4951
       shrink_node mm/vmscan.c:5910 [inline]
       kswapd_shrink_node mm/vmscan.c:6720 [inline]
       balance_pgdat+0x1105/0x1970 mm/vmscan.c:6911
       kswapd+0x5ea/0xbf0 mm/vmscan.c:7180
       kthread+0x2c1/0x3a0 kernel/kthread.c:389
       ret_from_fork+0x45/0x80 arch/x86/kernel/process.c:147
       ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:244

-> #0 (fs_reclaim){+.+.}-{0:0}:
       check_prev_add kernel/locking/lockdep.c:3134 [inline]
       check_prevs_add kernel/locking/lockdep.c:3253 [inline]
       validate_chain kernel/locking/lockdep.c:3869 [inline]
       __lock_acquire+0x2478/0x3b30 kernel/locking/lockdep.c:5137
       lock_acquire kernel/locking/lockdep.c:5754 [inline]
       lock_acquire+0x1b1/0x560 kernel/locking/lockdep.c:5719
       __fs_reclaim_acquire mm/page_alloc.c:3801 [inline]
       fs_reclaim_acquire+0x102/0x160 mm/page_alloc.c:3815
       might_alloc include/linux/sched/mm.h:334 [inline]
       slab_pre_alloc_hook mm/slub.c:3891 [inline]
       slab_alloc_node mm/slub.c:3981 [inline]
       __do_kmalloc_node mm/slub.c:4121 [inline]
       __kmalloc_noprof+0xb5/0x420 mm/slub.c:4135
       kmalloc_noprof include/linux/slab.h:664 [inline]
       kmalloc_array_noprof include/linux/slab.h:699 [inline]
       __exfat_get_dentry_set+0x81e/0xa90 fs/exfat/dir.c:816
       exfat_get_dentry_set+0x36/0x210 fs/exfat/dir.c:859
       exfat_get_uniname_from_ext_entry fs/exfat/dir.c:39 [inline]
       exfat_readdir+0x950/0x1520 fs/exfat/dir.c:155
       exfat_iterate+0x3c7/0xad0 fs/exfat/dir.c:261
       wrap_directory_iterator+0xa5/0xe0 fs/readdir.c:67
       iterate_dir+0x53e/0xb60 fs/readdir.c:110
       __do_sys_getdents64 fs/readdir.c:409 [inline]
       __se_sys_getdents64 fs/readdir.c:394 [inline]
       __ia32_sys_getdents64+0x14f/0x2e0 fs/readdir.c:394
       do_syscall_32_irqs_on arch/x86/entry/common.c:165 [inline]
       __do_fast_syscall_32+0x73/0x120 arch/x86/entry/common.c:386
       do_fast_syscall_32+0x32/0x80 arch/x86/entry/common.c:411
       entry_SYSENTER_compat_after_hwframe+0x84/0x8e

other info that might help us debug this:

 Possible unsafe locking scenario:

       CPU0                    CPU1
       ----                    ----
  lock(&sbi->s_lock#2);
                               lock(fs_reclaim);
                               lock(&sbi->s_lock#2);
  lock(fs_reclaim);

 *** DEADLOCK ***

3 locks held by syz-executor.2/6265:
 #0: ffff88801db114c8 (&f->f_pos_lock){+.+.}-{3:3}, at: __fdget_pos+0xeb/0x180 fs/file.c:1191
 #1: ffff8880483da9e8 (&sb->s_type->i_mutex_key#24){++++}-{3:3}, at: wrap_directory_iterator+0x5a/0xe0 fs/readdir.c:56
 #2: ffff88804af1a0e0 (&sbi->s_lock#2){+.+.}-{3:3}, at: exfat_iterate+0x33f/0xad0 fs/exfat/dir.c:256

stack backtrace:
CPU: 0 PID: 6265 Comm: syz-executor.2 Not tainted 6.10.0-rc5-syzkaller-00018-g55027e689933 #0
Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.16.2-debian-1.16.2-1 04/01/2014
Call Trace:
 <TASK>
 __dump_stack lib/dump_stack.c:88 [inline]
 dump_stack_lvl+0x116/0x1f0 lib/dump_stack.c:114
 check_noncircular+0x31a/0x400 kernel/locking/lockdep.c:2187
 check_prev_add kernel/locking/lockdep.c:3134 [inline]
 check_prevs_add kernel/locking/lockdep.c:3253 [inline]
 validate_chain kernel/locking/lockdep.c:3869 [inline]
 __lock_acquire+0x2478/0x3b30 kernel/locking/lockdep.c:5137
 lock_acquire kernel/locking/lockdep.c:5754 [inline]
 lock_acquire+0x1b1/0x560 kernel/locking/lockdep.c:5719
 __fs_reclaim_acquire mm/page_alloc.c:3801 [inline]
 fs_reclaim_acquire+0x102/0x160 mm/page_alloc.c:3815
 might_alloc include/linux/sched/mm.h:334 [inline]
 slab_pre_alloc_hook mm/slub.c:3891 [inline]
 slab_alloc_node mm/slub.c:3981 [inline]
 __do_kmalloc_node mm/slub.c:4121 [inline]
 __kmalloc_noprof+0xb5/0x420 mm/slub.c:4135
 kmalloc_noprof include/linux/slab.h:664 [inline]
 kmalloc_array_noprof include/linux/slab.h:699 [inline]
 __exfat_get_dentry_set+0x81e/0xa90 fs/exfat/dir.c:816
 exfat_get_dentry_set+0x36/0x210 fs/exfat/dir.c:859
 exfat_get_uniname_from_ext_entry fs/exfat/dir.c:39 [inline]
 exfat_readdir+0x950/0x1520 fs/exfat/dir.c:155
 exfat_iterate+0x3c7/0xad0 fs/exfat/dir.c:261
 wrap_directory_iterator+0xa5/0xe0 fs/readdir.c:67
 iterate_dir+0x53e/0xb60 fs/readdir.c:110
 __do_sys_getdents64 fs/readdir.c:409 [inline]
 __se_sys_getdents64 fs/readdir.c:394 [inline]
 __ia32_sys_getdents64+0x14f/0x2e0 fs/readdir.c:394
 do_syscall_32_irqs_on arch/x86/entry/common.c:165 [inline]
 __do_fast_syscall_32+0x73/0x120 arch/x86/entry/common.c:386
 do_fast_syscall_32+0x32/0x80 arch/x86/entry/common.c:411
 entry_SYSENTER_compat_after_hwframe+0x84/0x8e
RIP: 0023:0xf72f8579
Code: b8 01 10 06 03 74 b4 01 10 07 03 74 b0 01 10 08 03 74 d8 01 00 00 00 00 00 00 00 00 00 00 00 00 00 51 52 55 89 e5 0f 34 cd 80 <5d> 5a 59 c3 90 90 90 90 8d b4 26 00 00 00 00 8d b4 26 00 00 00 00
RSP: 002b:00000000f5ec95ac EFLAGS: 00000292 ORIG_RAX: 00000000000000dc
RAX: ffffffffffffffda RBX: 000000000000000a RCX: 0000000020002ec0
RDX: 0000000000001000 RSI: 0000000000000000 RDI: 0000000000000000
RBP: 0000000000000000 R08: 0000000000000000 R09: 0000000000000000
R10: 0000000000000000 R11: 0000000000000292 R12: 0000000000000000
R13: 0000000000000000 R14: 0000000000000000 R15: 0000000000000000
 </TASK>
----------------
Code disassembly (best guess), 2 bytes skipped:
   0:	10 06                	adc    %al,(%rsi)
   2:	03 74 b4 01          	add    0x1(%rsp,%rsi,4),%esi
   6:	10 07                	adc    %al,(%rdi)
   8:	03 74 b0 01          	add    0x1(%rax,%rsi,4),%esi
   c:	10 08                	adc    %cl,(%rax)
   e:	03 74 d8 01          	add    0x1(%rax,%rbx,8),%esi
  1e:	00 51 52             	add    %dl,0x52(%rcx)
  21:	55                   	push   %rbp
  22:	89 e5                	mov    %esp,%ebp
  24:	0f 34                	sysenter
  26:	cd 80                	int    $0x80
* 28:	5d                   	pop    %rbp <-- trapping instruction
  29:	5a                   	pop    %rdx
  2a:	59                   	pop    %rcx
  2b:	c3                   	ret
  2c:	90                   	nop
  2d:	90                   	nop
  2e:	90                   	nop
  2f:	90                   	nop
  30:	8d b4 26 00 00 00 00 	lea    0x0(%rsi,%riz,1),%esi
  37:	8d b4 26 00 00 00 00 	lea    0x0(%rsi,%riz,1),%esi


---
This report is generated by a bot. It may contain errors.
See https://goo.gl/tpsmEJ for more information about syzbot.
syzbot engineers can be reached at syzkaller@googlegroups.com.

syzbot will keep track of this issue. See:
https://goo.gl/tpsmEJ#status for how to communicate with syzbot.

If the report is already addressed, let syzbot know by replying with:
#syz fix: exact-commit-title

If you want to overwrite report's subsystems, reply with:
#syz set subsystems: new-subsystem
(See the list of subsystem names on the web dashboard)

If the report is a duplicate of another one, reply with:
#syz dup: exact-subject-of-another-report

If you want to undo deduplication, reply with:
#syz undup
.

From: "Peng Fan (OSS)" <peng.fan@oss.nxp.com>
To: linus.walleij@linaro.org
Cc: dan.carpenter@linaro.org,
	linux-gpio@vger.kernel.org,
	linux-arm-kernel@lists.infradead.org,
	linux-kernel@vger.kernel.org,
	aisheng.dong@nxp.com,
	festevam@gmail.com,
	shawnguo@kernel.org,
	kernel@pengutronix.de,
	u.kleine-koenig@pengutronix.de,
	Peng Fan <peng.fan@nxp.com>
Subject: [PATCH V3 0/3] pinctrl: use scope based of_node_put
Date: Thu, 27 Jun 2024 21:17:18 +0800
Message-Id: <20240627131721.678727-1-peng.fan@oss.nxp.com>
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1260876
Newsgroups: org.kernel.vger.linux-kernel,org.infradead.lists.linux-arm-kernel,org.kernel.vger.linux-gpio
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

From: Peng Fan <peng.fan@nxp.com>

This is to send the non-applied ones of [1] after rebase, no more changes

[1] https://lore.kernel.org/all/20240504-pinctrl-cleanup-v2-0-26c5f2dc1181@nxp.com/

Peng Fan (3):
  pinctrl: ti: iodelay: Use scope based of_node_put() cleanups
  pinctrl: equilibrium: Use scope based of_node_put() cleanups
  pinctrl: freescale: Use scope based of_node_put() cleanups

 drivers/pinctrl/freescale/pinctrl-imx.c       | 25 +++--------
 drivers/pinctrl/freescale/pinctrl-imx1-core.c | 16 +++----
 drivers/pinctrl/freescale/pinctrl-mxs.c       | 14 ++----
 drivers/pinctrl/pinctrl-equilibrium.c         | 21 +++------
 drivers/pinctrl/ti/pinctrl-ti-iodelay.c       | 43 +++++++------------
 5 files changed, 36 insertions(+), 83 deletions(-)

-- 
2.37.1

.

From: Jiwei Sun <sunjw10@outlook.com>
To: chandan.babu@oracle.com,
	djwong@kernel.org
Cc: linux-xfs@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	sunjw10@lenovo.com,
	ahuang12@lenovo.com,
	sunjw10@outlook.com
Subject: [PATCH] xfs: add __GFP_NOLOCKDEP when allocating memory in xfs_attr_shortform_list()
Date: Thu, 27 Jun 2024 21:12:43 +0800
Message-ID: <SEZPR01MB45270BCD2BC28813FCB39AEDA8D72@SEZPR01MB4527.apcprd01.prod.exchangelabs.com>
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1260884
Newsgroups: org.kernel.vger.linux-kernel,org.kernel.vger.linux-xfs
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

From: Jiwei Sun <sunjw10@lenovo.com>

If the following configuration is set
CONFIG_LOCKDEP=y

The following warning log appears,

======================================================
WARNING: possible circular locking dependency detected
6.10.0-rc4-dirty #81 Not tainted
------------------------------------------------------
kswapd1/1465 is trying to acquire lock:
ff11000928da0160 (&xfs_nondir_ilock_class){++++}-{4:4}, at: xfs_icwalk_ag+0x7cd/0x14c0 [xfs]

but task is already holding lock:
ffffffff9fd44100 (fs_reclaim){+.+.}-{0:0}, at: balance_pgdat+0x856/0x11a0

which lock already depends on the new lock.

the existing dependency chain (in reverse order) is:

-> #1 (fs_reclaim){+.+.}-{0:0}:
       lock_acquire+0x194/0x490
       fs_reclaim_acquire+0x103/0x160
       __kmalloc_noprof+0x9b/0x430
       xfs_attr_shortform_list+0x56a/0x15d0 [xfs]
       xfs_attr_list+0x1cb/0x250 [xfs]
       xfs_vn_listxattr+0xee/0x170 [xfs]
       listxattr+0x5b/0xf0
       __x64_sys_flistxattr+0x126/0x1b0
       do_syscall_64+0x8a/0x170
       entry_SYSCALL_64_after_hwframe+0x76/0x7e

-> #0 (&xfs_nondir_ilock_class){++++}-{4:4}:
       validate_chain+0x171c/0x3270
       __lock_acquire+0xecd/0x1ed0
       lock_acquire+0x194/0x490
       down_write_nested+0xa2/0x510
       xfs_icwalk_ag+0x7cd/0x14c0 [xfs]
       xfs_icwalk+0x4f/0xd0 [xfs]
       xfs_reclaim_inodes_nr+0x144/0x1f0 [xfs]
       super_cache_scan+0x305/0x430
       do_shrink_slab+0x2f3/0xce0
       shrink_slab+0x507/0xcb0
       shrink_one+0x400/0x6d0
       shrink_many+0x2d5/0xc10
       shrink_node+0x1a0b/0x2110
       balance_pgdat+0x7a2/0x11a0
       kswapd+0x518/0x9c0
       kthread+0x2e9/0x3d0
       ret_from_fork+0x2d/0x60
       ret_from_fork_asm+0x1a/0x30

other info that might help us debug this:

 Possible unsafe locking scenario:

       CPU0                    CPU1
       ----                    ----
  lock(fs_reclaim);
                               lock(&xfs_nondir_ilock_class);
                               lock(fs_reclaim);
  lock(&xfs_nondir_ilock_class);

 *** DEADLOCK ***

2 locks held by kswapd1/1465:
 #0: ffffffff9fd44100 (fs_reclaim){+.+.}-{0:0}, at: balance_pgdat+0x856/0x11a0
 #1: ff110001d1dec0e8 (&type->s_umount_key#62){++++}-{4:4}, at: super_trylock_shared+0x18/0xa0

stack backtrace:
CPU: 182 PID: 1465 Comm: kswapd1 Kdump: loaded Not tainted 6.10.0-rc4-dirty #81 d8f3b21024b789e635a9c2daea46fdb7762f1b50
Hardware name: Lenovo ThinkServer SR660 V3/SR660 V3, BIOS T8E166X-2.54 05/30/2024
Call Trace:
 <TASK>
 dump_stack_lvl+0x7c/0xc0
 check_noncircular+0x31f/0x3f0
 validate_chain+0x171c/0x3270
 __lock_acquire+0xecd/0x1ed0
 lock_acquire+0x194/0x490
 down_write_nested+0xa2/0x510
 xfs_icwalk_ag+0x7cd/0x14c0 [xfs 681f3433bed0d714083e513d149a819b095e6e51]
 xfs_icwalk+0x4f/0xd0 [xfs 681f3433bed0d714083e513d149a819b095e6e51]
 xfs_reclaim_inodes_nr+0x144/0x1f0 [xfs 681f3433bed0d714083e513d149a819b095e6e51]
 super_cache_scan+0x305/0x430
 do_shrink_slab+0x2f3/0xce0
 shrink_slab+0x507/0xcb0
 shrink_one+0x400/0x6d0
 shrink_many+0x2d5/0xc10
 shrink_node+0x1a0b/0x2110
 balance_pgdat+0x7a2/0x11a0
 kswapd+0x518/0x9c0
 kthread+0x2e9/0x3d0
 ret_from_fork+0x2d/0x60
 ret_from_fork_asm+0x1a/0x30
 </TASK>

This is a false positive. If a node is getting reclaimed, it cannot be
the target of a flistxattr operation. Commit 6dcde60efd94 ("xfs: more
lockdep whackamole with kmem_alloc*") has the similar root cause.

Fix the issue by adding __GFP_NOLOCKDEP in order to shut up lockdep.

Signed-off-by: Jiwei Sun <sunjw10@lenovo.com>
Suggested-by: Adrian Huang <ahuang12@lenovo.com>
---
 fs/xfs/xfs_attr_list.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/fs/xfs/xfs_attr_list.c b/fs/xfs/xfs_attr_list.c
index 5c947e5ce8b8..506ade0befa4 100644
--- a/fs/xfs/xfs_attr_list.c
+++ b/fs/xfs/xfs_attr_list.c
@@ -114,7 +114,8 @@ xfs_attr_shortform_list(
 	 * It didn't all fit, so we have to sort everything on hashval.
 	 */
 	sbsize = sf->count * sizeof(*sbuf);
-	sbp = sbuf = kmalloc(sbsize, GFP_KERNEL | __GFP_NOFAIL);
+	sbp = sbuf = kmalloc(sbsize, GFP_KERNEL | __GFP_NOFAIL |
+			     __GFP_NOLOCKDEP);
 
 	/*
 	 * Scan the attribute list for the rest of the entries, storing
-- 
2.27.0

.

From: Luca Weiss <luca.weiss@fairphone.com>
Date: Thu, 27 Jun 2024 15:15:54 +0200
Subject: [PATCH] arm64: dts: qcom: sm7225-fairphone-fp4: Name the
 regulators
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit
Message-Id: <20240627-fp4-regulator-name-v1-1-66931111a006@fairphone.com>
To: Bjorn Andersson <andersson@kernel.org>, 
 Konrad Dybcio <konrad.dybcio@linaro.org>, Rob Herring <robh@kernel.org>, 
 Krzysztof Kozlowski <krzk+dt@kernel.org>, 
 Conor Dooley <conor+dt@kernel.org>
Cc: ~postmarketos/upstreaming@lists.sr.ht, phone-devel@vger.kernel.org, 
 linux-arm-msm@vger.kernel.org, devicetree@vger.kernel.org, 
 linux-kernel@vger.kernel.org, Luca Weiss <luca.weiss@fairphone.com>
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1260885
Newsgroups: org.kernel.vger.linux-kernel,org.kernel.vger.linux-arm-msm,org.kernel.vger.linux-devicetree,org.kernel.vger.phone-devel
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

Without explicitly specifying names for the regulators they are named
based on the DeviceTree node name. This results in multiple regulators
with the same name, making debug prints and regulator_summary impossible
to reason about.

Signed-off-by: Luca Weiss <luca.weiss@fairphone.com>
---
 arch/arm64/boot/dts/qcom/sm7225-fairphone-fp4.dts | 34 +++++++++++++++++++++++
 1 file changed, 34 insertions(+)

diff --git a/arch/arm64/boot/dts/qcom/sm7225-fairphone-fp4.dts b/arch/arm64/boot/dts/qcom/sm7225-fairphone-fp4.dts
index a74f3ac09a5e..4e67bb80a026 100644
--- a/arch/arm64/boot/dts/qcom/sm7225-fairphone-fp4.dts
+++ b/arch/arm64/boot/dts/qcom/sm7225-fairphone-fp4.dts
@@ -150,124 +150,145 @@ regulators-0 {
 		qcom,pmic-id = "a";
 
 		vreg_s1a: smps1 {
+			regulator-name = "vreg_s1a";
 			regulator-min-microvolt = <1000000>;
 			regulator-max-microvolt = <1200000>;
 		};
 
 		vreg_s2a: smps2 {
+			regulator-name = "vreg_s2a";
 			regulator-min-microvolt = <1503000>;
 			regulator-max-microvolt = <2048000>;
 		};
 
 		vreg_l2a: ldo2 {
+			regulator-name = "vreg_l2a";
 			regulator-min-microvolt = <1503000>;
 			regulator-max-microvolt = <1980000>;
 			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
 		};
 
 		vreg_l3a: ldo3 {
+			regulator-name = "vreg_l3a";
 			regulator-min-microvolt = <2700000>;
 			regulator-max-microvolt = <3300000>;
 			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
 		};
 
 		vreg_l4a: ldo4 {
+			regulator-name = "vreg_l4a";
 			regulator-min-microvolt = <352000>;
 			regulator-max-microvolt = <801000>;
 			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
 		};
 
 		vreg_l5a: ldo5 {
+			regulator-name = "vreg_l5a";
 			regulator-min-microvolt = <1503000>;
 			regulator-max-microvolt = <1980000>;
 			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
 		};
 
 		vreg_l6a: ldo6 {
+			regulator-name = "vreg_l6a";
 			regulator-min-microvolt = <1710000>;
 			regulator-max-microvolt = <3544000>;
 			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
 		};
 
 		vreg_l7a: ldo7 {
+			regulator-name = "vreg_l7a";
 			regulator-min-microvolt = <1620000>;
 			regulator-max-microvolt = <1980000>;
 			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
 		};
 
 		vreg_l8a: ldo8 {
+			regulator-name = "vreg_l8a";
 			regulator-min-microvolt = <2800000>;
 			regulator-max-microvolt = <2800000>;
 			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
 		};
 
 		vreg_l9a: ldo9 {
+			regulator-name = "vreg_l9a";
 			regulator-min-microvolt = <1650000>;
 			regulator-max-microvolt = <3401000>;
 			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
 		};
 
 		vreg_l11a: ldo11 {
+			regulator-name = "vreg_l11a";
 			regulator-min-microvolt = <1800000>;
 			regulator-max-microvolt = <2000000>;
 			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
 		};
 
 		vreg_l12a: ldo12 {
+			regulator-name = "vreg_l12a";
 			regulator-min-microvolt = <1620000>;
 			regulator-max-microvolt = <1980000>;
 			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
 		};
 
 		vreg_l13a: ldo13 {
+			regulator-name = "vreg_l13a";
 			regulator-min-microvolt = <570000>;
 			regulator-max-microvolt = <650000>;
 			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
 		};
 
 		vreg_l14a: ldo14 {
+			regulator-name = "vreg_l14a";
 			regulator-min-microvolt = <1700000>;
 			regulator-max-microvolt = <1900000>;
 			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
 		};
 
 		vreg_l15a: ldo15 {
+			regulator-name = "vreg_l15a";
 			regulator-min-microvolt = <1100000>;
 			regulator-max-microvolt = <1305000>;
 			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
 		};
 
 		vreg_l16a: ldo16 {
+			regulator-name = "vreg_l16a";
 			regulator-min-microvolt = <830000>;
 			regulator-max-microvolt = <921000>;
 			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
 		};
 
 		vreg_l18a: ldo18 {
+			regulator-name = "vreg_l18a";
 			regulator-min-microvolt = <788000>;
 			regulator-max-microvolt = <1049000>;
 			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
 		};
 
 		vreg_l19a: ldo19 {
+			regulator-name = "vreg_l19a";
 			regulator-min-microvolt = <1080000>;
 			regulator-max-microvolt = <1305000>;
 			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
 		};
 
 		vreg_l20a: ldo20 {
+			regulator-name = "vreg_l20a";
 			regulator-min-microvolt = <530000>;
 			regulator-max-microvolt = <801000>;
 			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
 		};
 
 		vreg_l21a: ldo21 {
+			regulator-name = "vreg_l21a";
 			regulator-min-microvolt = <751000>;
 			regulator-max-microvolt = <825000>;
 			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
 		};
 
 		vreg_l22a: ldo22 {
+			regulator-name = "vreg_l22a";
 			regulator-min-microvolt = <1080000>;
 			regulator-max-microvolt = <1305000>;
 			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
@@ -279,41 +300,48 @@ regulators-1 {
 		qcom,pmic-id = "e";
 
 		vreg_s8e: smps8 {
+			regulator-name = "vreg_s8e";
 			regulator-min-microvolt = <313000>;
 			regulator-max-microvolt = <1395000>;
 		};
 
 		vreg_l1e: ldo1 {
+			regulator-name = "vreg_l1e";
 			regulator-min-microvolt = <1620000>;
 			regulator-max-microvolt = <1980000>;
 			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
 		};
 
 		vreg_l2e: ldo2 {
+			regulator-name = "vreg_l2e";
 			regulator-min-microvolt = <1170000>;
 			regulator-max-microvolt = <1305000>;
 			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
 		};
 
 		vreg_l3e: ldo3 {
+			regulator-name = "vreg_l3e";
 			regulator-min-microvolt = <1100000>;
 			regulator-max-microvolt = <1299000>;
 			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
 		};
 
 		vreg_l4e: ldo4 {
+			regulator-name = "vreg_l4e";
 			regulator-min-microvolt = <1620000>;
 			regulator-max-microvolt = <3300000>;
 			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
 		};
 
 		vreg_l5e: ldo5 {
+			regulator-name = "vreg_l5e";
 			regulator-min-microvolt = <1620000>;
 			regulator-max-microvolt = <3300000>;
 			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
 		};
 
 		vreg_l6e: ldo6 {
+			regulator-name = "vreg_l6e";
 			regulator-min-microvolt = <1700000>;
 			regulator-max-microvolt = <2950000>;
 			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
@@ -323,18 +351,21 @@ vreg_l6e: ldo6 {
 		};
 
 		vreg_l7e: ldo7 {
+			regulator-name = "vreg_l7e";
 			regulator-min-microvolt = <2700000>;
 			regulator-max-microvolt = <3544000>;
 			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
 		};
 
 		vreg_l8e: ldo8 {
+			regulator-name = "vreg_l8e";
 			regulator-min-microvolt = <1620000>;
 			regulator-max-microvolt = <2000000>;
 			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
 		};
 
 		vreg_l9e: ldo9 {
+			regulator-name = "vreg_l9e";
 			regulator-min-microvolt = <2700000>;
 			regulator-max-microvolt = <2960000>;
 			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
@@ -344,18 +375,21 @@ vreg_l9e: ldo9 {
 		};
 
 		vreg_l10e: ldo10 {
+			regulator-name = "vreg_l10e";
 			regulator-min-microvolt = <3000000>;
 			regulator-max-microvolt = <3401000>;
 			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
 		};
 
 		vreg_l11e: ldo11 {
+			regulator-name = "vreg_l11e";
 			regulator-min-microvolt = <3000000>;
 			regulator-max-microvolt = <3401000>;
 			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
 		};
 
 		vreg_bob: bob {
+			regulator-name = "vreg_bob";
 			regulator-min-microvolt = <1620000>;
 			regulator-max-microvolt = <5492000>;
 			regulator-initial-mode = <RPMH_REGULATOR_MODE_AUTO>;

---
base-commit: 1ce80da8c5d0c297c4e7db33e36abe0262f86b23
change-id: 20240627-fp4-regulator-name-aa86b983f162

Best regards,
-- 
Luca Weiss <luca.weiss@fairphone.com>

.

Message-ID: <7c5b8986-c69f-4ff5-9ed2-b2055ae848c4@siemens.com>
Date: Thu, 27 Jun 2024 15:35:28 +0200
From: Jan Kiszka <jan.kiszka@siemens.com>
Subject: [PATCH v3] PCI: keystone: Add workaround for Errata #i2037 (AM65x SR
 1.0)
Content-Language: en-US
To: Lorenzo Pieralisi <lpieralisi@kernel.org>,
 =?UTF-8?Q?Krzysztof_Wilczy=C5=84ski?= <kw@linux.com>,
 Rob Herring <robh@kernel.org>, Bjorn Helgaas <bhelgaas@google.com>,
 Kishon Vijay Abraham I <kishon@kernel.org>
Cc: Siddharth Vadapalli <s-vadapalli@ti.com>,
 Vignesh Raghavendra <vigneshr@ti.com>, Nishanth Menon <nm@ti.com>,
 "linux-pci@vger.kernel.org" <linux-pci@vger.kernel.org>,
 Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
 linux-arm-kernel <linux-arm-kernel@lists.infradead.org>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1260901 org.kernel.vger.linux-pci:144596
Newsgroups: org.kernel.vger.linux-kernel,org.infradead.lists.linux-arm-kernel,org.kernel.vger.linux-pci
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

From: Kishon Vijay Abraham I <kishon@ti.com>

Errata #i2037 in AM65x/DRA80xM Processors Silicon Revision 1.0
(SPRZ452D_July 2018_Revised December 2019 [1]) mentions when an
inbound PCIe TLP spans more than two internal AXI 128-byte bursts,
the bus may corrupt the packet payload and the corrupt data may
cause associated applications or the processor to hang.

The workaround for Errata #i2037 is to limit the maximum read
request size and maximum payload size to 128 Bytes. Add workaround
for Errata #i2037 here. The errata and workaround is applicable
only to AM65x SR 1.0 and later versions of the silicon will have
this fixed.

[1] -> http://www.ti.com/lit/er/sprz452d/sprz452d.pdf

Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
Signed-off-by: Achal Verma <a-verma1@ti.com>
Signed-off-by: Vignesh Raghavendra <vigneshr@ti.com>
Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>

---
Original patch:
Link: https://lore.kernel.org/linux-pci/20210325090026.8843-7-kishon@ti.com/

---
 drivers/pci/controller/dwc/pci-keystone.c | 44 ++++++++++++++++++++++-
 1 file changed, 43 insertions(+), 1 deletion(-)

diff --git a/drivers/pci/controller/dwc/pci-keystone.c b/drivers/pci/controller/dwc/pci-keystone.c
index d3a7d14ee685..df9df2dc1f8a 100644
--- a/drivers/pci/controller/dwc/pci-keystone.c
+++ b/drivers/pci/controller/dwc/pci-keystone.c
@@ -34,6 +34,11 @@
 #define PCIE_DEVICEID_SHIFT	16
 
 /* Application registers */
+#define PID				0x000
+#define RTL				GENMASK(15, 11)
+#define RTL_SHIFT			11
+#define AM6_PCI_PG1_RTL_VER		0x15
+
 #define CMD_STATUS			0x004
 #define LTSSM_EN_VAL		        BIT(0)
 #define OB_XLAT_EN_VAL		        BIT(1)
@@ -104,6 +109,8 @@
 
 #define to_keystone_pcie(x)		dev_get_drvdata((x)->dev)
 
+#define PCI_DEVICE_ID_TI_AM654X		0xb00c
+
 struct ks_pcie_of_data {
 	enum dw_pcie_device_mode mode;
 	const struct dw_pcie_host_ops *host_ops;
@@ -525,7 +532,11 @@ static int ks_pcie_start_link(struct dw_pcie *pci)
 static void ks_pcie_quirk(struct pci_dev *dev)
 {
 	struct pci_bus *bus = dev->bus;
+	struct keystone_pcie *ks_pcie;
+	struct device *bridge_dev;
 	struct pci_dev *bridge;
+	u32 val;
+
 	static const struct pci_device_id rc_pci_devids[] = {
 		{ PCI_DEVICE(PCI_VENDOR_ID_TI, PCIE_RC_K2HK),
 		 .class = PCI_CLASS_BRIDGE_PCI_NORMAL, .class_mask = ~0, },
@@ -537,6 +548,11 @@ static void ks_pcie_quirk(struct pci_dev *dev)
 		 .class = PCI_CLASS_BRIDGE_PCI_NORMAL, .class_mask = ~0, },
 		{ 0, },
 	};
+	static const struct pci_device_id am6_pci_devids[] = {
+		{ PCI_DEVICE(PCI_VENDOR_ID_TI, PCI_DEVICE_ID_TI_AM654X),
+		 .class = PCI_CLASS_BRIDGE_PCI << 8, .class_mask = ~0, },
+		{ 0, },
+	};
 
 	if (pci_is_root_bus(bus))
 		bridge = dev;
@@ -558,10 +574,36 @@ static void ks_pcie_quirk(struct pci_dev *dev)
 	 */
 	if (pci_match_id(rc_pci_devids, bridge)) {
 		if (pcie_get_readrq(dev) > 256) {
-			dev_info(&dev->dev, "limiting MRRS to 256\n");
+			dev_info(&dev->dev, "limiting MRRS to 256 bytes\n");
 			pcie_set_readrq(dev, 256);
 		}
 	}
+
+	/*
+	 * Memory transactions fail with PCI controller in AM654 PG1.0
+	 * when MRRS is set to more than 128 Bytes. Force the MRRS to
+	 * 128 Bytes in all downstream devices.
+	 */
+	if (pci_match_id(am6_pci_devids, bridge)) {
+		bridge_dev = pci_get_host_bridge_device(dev);
+		if (!bridge_dev && !bridge_dev->parent)
+			return;
+
+		ks_pcie = dev_get_drvdata(bridge_dev->parent);
+		if (!ks_pcie)
+			return;
+
+		val = ks_pcie_app_readl(ks_pcie, PID);
+		val &= RTL;
+		val >>= RTL_SHIFT;
+		if (val != AM6_PCI_PG1_RTL_VER)
+			return;
+
+		if (pcie_get_readrq(dev) > 128) {
+			dev_info(&dev->dev, "limiting MRRS to 128 bytes\n");
+			pcie_set_readrq(dev, 128);
+		}
+	}
 }
 DECLARE_PCI_FIXUP_ENABLE(PCI_ANY_ID, PCI_ANY_ID, ks_pcie_quirk);
 
-- 
2.43.0
.

From: Abhishek Dubey <adubey@linux.ibm.com>
To: linuxppc-dev@lists.ozlabs.org
Cc: naveen.n.rao@linux.vnet.ibm.com, mpe@ellerman.id.au, npiggin@gmail.com,
        peterz@infradead.org, mingo@redhat.com, namhyung@kernel.org,
        mark.rutland@arm.com, alexander.shishkin@linux.intel.com,
        jolsa@kernel.org, irogers@google.com, adrian.hunter@intel.com,
        linux-perf-users@vger.kernel.org, linux-kernel@vger.kernel.org,
        Abhishek Dubey <adubey@linux.ibm.com>
Subject: [PATCH] Perf: Calling available function for stats printing
Date: Thu, 27 Jun 2024 09:37:43 -0400
Message-ID: <20240627133743.407048-1-adubey@linux.ibm.com>
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1260905
Newsgroups: org.kernel.vger.linux-kernel,org.kernel.vger.linux-perf-users,org.ozlabs.lists.linuxppc-dev
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

For printing dump_trace, just use existing stats_print()
function.

Signed-off-by: Abhishek Dubey <adubey@linux.ibm.com>
---
 tools/perf/builtin-report.c | 5 +----
 1 file changed, 1 insertion(+), 4 deletions(-)

diff --git a/tools/perf/builtin-report.c b/tools/perf/builtin-report.c
index 69618fb0110b..8678eebc49e6 100644
--- a/tools/perf/builtin-report.c
+++ b/tools/perf/builtin-report.c
@@ -1089,10 +1089,7 @@ static int __cmd_report(struct report *rep)
 			perf_session__fprintf_dsos(session, stdout);
 
 		if (dump_trace) {
-			perf_session__fprintf_nr_events(session, stdout,
-							rep->skip_empty);
-			evlist__fprintf_nr_events(session->evlist, stdout,
-						  rep->skip_empty);
+			stats_print(rep);
 			return 0;
 		}
 	}
-- 
2.44.0

.

From: Daniel Hejduk <danielhejduk@disroot.org>
To: shuah@kernel.org,
	trenn@suse.com,
	linux-pm@vger.kernel.org,
	linux-kernel@vger.kernel.org
Cc: Daniel Hejduk <danielhejduk@disroot.org>
Subject: [PATCH] Correcting all needs work translations, Adding some transaltion and changing maintainer of the cpupower tool
Date: Thu, 27 Jun 2024 15:54:30 +0200
Message-ID: <20240627135437.2301-1-danielhejduk@disroot.org>
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1260922
Newsgroups: org.kernel.vger.linux-kernel,org.kernel.vger.linux-pm
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

Signed-off-by: Daniel Hejduk <danielhejduk@disroot.org>
---
 tools/power/cpupower/po/cs.mo | Bin 0 -> 12805 bytes
 tools/power/cpupower/po/cs.po | 172 ++++++++++++++++++----------------
 2 files changed, 91 insertions(+), 81 deletions(-)
 create mode 100644 tools/power/cpupower/po/cs.mo

diff --git a/tools/power/cpupower/po/cs.mo b/tools/power/cpupower/po/cs.mo
new file mode 100644
index 0000000000000000000000000000000000000000..e82a23760d4f26a628d9402f84c20bfda1df4263
GIT binary patch
literal 12805
zcmcJVTWlQHdB?}s*c<0!r%lt`dhA*@DRWmOtx7g!-Aq}R*pg`7>RPpp*_}h~aA#-M
zb6ILP2I?RI5};5T2M7|!iBX~`Py->1^sxYqqAT_x4@J@T&4?dV1PIVR1V(DKPwnqJ
zXJ&RuE+soiS6KdcX6Kyqo$vd9m-DUOyYKezIlM0N{vz*dw>r+tU~mV2cujxIaXt&q
zfOFu<{QB$Q39f$#ehRz}{x0}FcprGzU5@ir@C)E+@cZCA_zUn5IC;0@{5jYJSHNF`
z(_m0>oFm|m!CCM<um;}yamRTUJOZ8rzY87%e*u0M+<lMZyauj=N5He6u+M!5JjnIG
z=Xn1otvoM*-{$@rDDytSCPcn(gEQd2fPVnq{%Obg68Io^FZd+*1@Hn`1v?;9J8y!Y
z0e=Gi5%~9@jQ;=>ReqMi&)kBJLD7%TpBKSbK+*5J;BN4JQ0Dm(fA)hj;O~Jx_#MW7
z4P4^-K9v0}un)@mw=v1H;JqNKbQ++@+s^UNa(oRGx&8{2c?aO{fbZt`s~qp(OS%8~
z9QS|^aeWMAOHK=v^<Dulg8u~mA^70u9A^SN3Ci`$pzQN|;N#%0LAL1Be&1dn1?yaY
z6_kCw2MQ05f8KGRqSF9nKa1c?U<bS({Achs@O`k4UOoUtzLy#NB=`eR=6RPtr@{XQ
zMIXm8CL%b`fvC=T8SI1K1fK(M{j%d6055~H;P=5FgFgdfu!-{ag71Qd!A~p8+l3sz
z2A+2u=WoFmz&jE41n7Zpf<FO&1U~%$oCALeJ_GJTS@K*A3a|eT6nXv^{0s282OZ~+
z!C!*M!6Un@oZkddnKJ+}f%9_^6FUC|BC>N2N_iA~1ccJgOQ6^_0*`{<0D08;NANcA
zKfwdHIL@y?ROU=!%oo8^pp5$)P<X!%3h({{d<^^_a1xy5&tEhCPr)wNw?5)HKLvZB
zJpag)-N)k~uIIc43ZMQm$Dii-4<M>>{uLDYJ^*E(Uu1E?eK{`VxSZoRK(W)Cpy=V=
z8nFPJ0PEltQ2gv&a1VGVf8=@}*aTfr?DsQJc>3jO8~0{F;b#B_;J<+)-_aS%QxCk0
z>m^XW?|_)j`8g<hy#+F%7Q@9)f+Cyft$0aH5&ab}hB>ErLrY^n(Y^5H6TF4D(9ihO
zJs?{(+!o%VCWnw|WD!0grjg?iD14RI5#CSohDzr3RF1-jGraH4uLYjw{cL_Md=lM@
zzhB7j2^`En&*!)ReuX!bFfY+B>NIv1PT{I1MxF!3w)gXfZpPmLV=vLIyykd|{yxWB
z>>{uI7R=vU`FoPLa36}5uaEKR8Q$Vc^17WjCO0-!puFzj{TcIV_-7v<AI>k2gCFO;
zm-n5#KgHX*TUDELsuTNRs?w&PsHP4&6}j!tsnl<4#Wy<cx`9d~)z)s3#ab;!G51xX
z8&T*bYQoctZWg3!X3`Ap&Z)Xq?T9D4I<7~Ft~jcEwf)d<XKgjVa8WJB`sGZAjh<3f
zrP}V59llwLm?(^5JI~QZ>UZ^=+LhSrC!;7y)%ny-b;4cG-aVgnI#HZzuXwQPPN{0u
zU0l=+?p7O}EK%y1W_yUF6SdOx8%+@_QK8nJY`E!mHG0v0JQTH3?qu_aMij-KA0mXO
z>OGZ2i|LAs3U-S)RZks1_tdi@0E?N=c66v$)Od}stSa`6YM4<6NN#77iM$vs#HA1;
zJCUJTf*kBoRIFNPPX{U=VI|UL4qeZd$|=->5Ft@fmMYJD<A>O~?WTSds>`{VUoavp
zmK!oF$nMNMNk=#QMZYmrm?#oHBs#6BbJ*LDQ8wbmNylyIozy9lmD{&7xLwx|+<Ksu
z8+s~;Tu&QYR~Ka~MvUQBPUv)01T-RqYh-b(!!+orI13Zyrc=soG>qYvc9Mj}MWKZ*
zdAcy_k~(qrlB`_{$~7X0QH#fmuZ+@`MjwWK@*1(*aD!V%CpnFpGJ*K09b5h#F`RMZ
zq!DW!nl;A_xxwRsSz#sc+dfRNuTn&#h=Q(Sgz+xx20^p}{VdViX2z`ThNZZwDVNn)
zyPmNpgzLaLi7TRNW6%|bVIdZ&_Eg7>-L|-@arvs5GHEn%<95T$in$Xr)>8f9M74=X
zzB1M_Pi6tm(uo4U(W@E7L?Txwj_d?hwh_gQQa|upnkX4{eJCg1EmH20v3uM`$2XsJ
zl0@;I-FrH0J>H2+CYmlndx@V>;31L~*zW7MBT`PD4<*BFZEwveS-UY_F<aYL+ayuP
zD9LE8v|g#}p*L-cHde{G^<$YJ)`7&uJm!v4ekADPkvODLZGy20zOiQ_=rBuILM1X~
z;s-c#Dbv{y>62!(qLy^1WAfE}HIa;fqRS9w%x*{XRl#oNIM2YObXghaC#l~^l)tD-
zr!=FpGVDS9t#N#8{t~JbL11ef7min(E1N>shYnoOP#nk)cZ^)Vgutjh)Z|1YYASam
zkvWc{bTYS9Ps9;RnT%|8Tl&6rufpMrr^pMN6M3WQhD!u^V=9wOt%+}xQt{HUxpPiA
z$|htx$ITgHMhy42EsSpYe#opO)g6il)+@#c3-UWQX>8dj#gaUoe`h&AH<EH7V-^rB
zv|90r$)P-L6L3+GlmxfI)~p^ziXfPUtuR^%OIh;7&62LEeH3apaUKOj%Lz9jo#ur{
zgXn8(7wbNgj`442wx%wa*jh5!(9R_8GQ6sW8-`ITQa7S@ow~>~;xk20MNpX#T7+VW
zFZxPDcdXA=8=@d#5E?YP8b0}G%`7UVo)0%zL{{jC*q%hfll>{xI@vEP$;l~oTJD{Y
zKj`Da$-b-x<2#gki~bczZvq8{X=W8{E>~QtRS)&S{E!$jWrUY<M&vK+jS1Pbtvgv<
z7C!hQGN|2Zx;8yMBUdcX<;?W-v|J%ae#MPR(#O%z4SIc%LfF5{o8wlh0_x)w+sM}P
zd}V5>Xpxk*$CfB4$m1hPluwy_a<5Q?gkGh(#MLlTWK2~miRsJY$M>j!Ol(W$xJ|HI
z(&~6wNl*A;BgiBysJax!lcHd@;~=RSI!eNM;b{19inTLy1kftX+I7r~%nYEo-z7D5
zf<>@ahS*DLrs6ym$C!m(CUQdz9uP5$`;>aA+?P7YSSYEf`KaB7wOR%ybCs$(7O7s8
z*%F&f+F?!CliDIlV_R^>{!%kd4y%bI<J+o~jE5%~dCG>OQdKgI**;F}jYKz7phO;%
z*R^+;ffwSQh(**xLUfL15YPAWvS7?3aAs>cJEiLIsjOdzu^sOe*D0gVlu%Ym8hyoW
zcd%JqH(bVvYD?F*fo<q@A{g?yV-}X_n5~#a^2%5##GJM`K3s8*GeVwp<E5-k!lW*8
z<5uC-yYVjSJYy_*3LoZq>%qkc<tG)X+R>CGT&p}Y0w?3Duj8oVoLXe_<tj3ZNi}xT
zA}9>K0$nX}dcg<mIU_Fs-8vsCMFi%djvPotT5~qz20LEN0;Ow9HKW^D%OOv!%0VW<
zGoP{P3(f{v#W@qnnXocbQ)fTKKGlu(`2cbCfr@jsBZnd8bQUQ8Owk9oITFl2y6w)s
zZFlx>y@PKG4@;Nc`n@npz8$&0;5J&~^7Av}ZqAOoIVxH?d{nyf=6>g#(P-|d5}1r;
z#nQVdo#3&XX!LwO_i>Dct~rNY7-3lv+8JchR2oHrM17dKEwe}#5c|1XcxPuUo&14a
z$pfZ*@^DCxm~R+?d%_NuffwQ*TV8qQH8R9fmmv7X1m(?1%rcd_$=FgOs>_izE$7>D
z&zO8s75}`!gJP<!ll=+d$?n|-lb&sjq!dafS6Fu&`UWcBL#xB|Ps)d^gH+3KRCs5_
zx!LqPk94;uG17p|2lhLAXx>For4*(o5a~p0m}uP=rAvC^Fi%*hIHf*`@_rh{bLw)n
z`GUF(q%WvffWSgqJ;5V0ho&wI&K`O}$-m20pJ;4bO)t?{Vg$j68iaGAr)sqtRvEWM
zSBCzU*D10BL98gmhUyL@C(pfiR~!@Gip)Ne^oQ|$a}~8c^%E(#B>s{J90^zAD5Pgl
zNMQtmHjvDd>`Z*`=|miUna)u4lvlmP37PN&y_1S{<m%~U$@i*H5*@1-qB&JrI9olZ
zyS_YDJw~vcQ?t{vd#ls?s<Znkc;@y#{>b#~^mOGJYMJT<ye6U67kfTUH!Dz=q97cs
zt0!7+Hwum<x=)=|YxEECe7Kb1TGb2MZO^IszNVY@gy$!%tgnwqd63kCndxxT!$#24
zr%pdLlzgT(U73%dLdf#H4)Ue?O1h^LxPEv*alDA}!Gjks9Irk$d``q%q(*ouY(!G}
z%&Eufep*=wGLC{(l3<%EChVBY<lv(Rh-322!HMwT!I?>QSWT-rH4z><IIA9dNQF-v
z+$%R{xH)^E@?7<VIa3-fEJWJF6&~f>yq9igwQR4<sY|`iU~OZSj$wv#goD*i)V=nG
zM;fyI)N5DWB<c>{Dv3@x8`D+2_QuBRIvlL2E}qrOLT|8&>L$8_^+q%5bAP0-I#^Ft
zcd*t_L@&^DF@_vW^Oxz(3|2AGngq5MDVAP?)TmY4tJ&c@>ZheF7_72IJKNC~JyvEZ
z&MHcoE~^nA{&#ye=*zMTlvokHk-=&Rzid->Y_IkCWk@hsqtwUGQ3IPNfkrU_F-s7*
zJy;{Qbfaazl-(Z_)Xi3-F4D4lVr$W9ZRe-hom#DDL_})R<<Q@FXJd6#Lslf_YHz%~
z@s1wRhU)g}l%wYC?@1k#AH{Ngt9(z&&Gn@ajHcGLtCC>M0c+=OYsnWz_zmRATNN}#
z9a_dabyz9&tzC0PuA;bARTpN2_$)2!(5*qnjdxrxTjmVpa&D^kf}K<;Tj{E0)Cmol
zq8Ve!Q59T&^@nAldHvNNkV8c}QHI%|jJK~5Wn^23=1(zmVR+$V9oD}ySldacP9!DK
zW*u&8w<gkmRZ0xIJ}PiN%*Z*e<yy$;aXiX8AygdFzqe)4(!YyMf~DcMIXa5@$OFc8
zTnh<D{n_2*!MW^kw(xV``1#H~*Gq$S*=~`h;*GcSMyr%wbQYw~+Ev$IeUlSW+gI1F
z`l%+6yw$$`>W`$>hGi+Sj4f_&zZUX#VwWCi;M%}uI<P`4i4OQXE*qLSf!$@EaqZ4h
zx1}=_tXWRjY*bHNJe1RX_cv<5#!<gXvcTE+Wd~=8B@hs8IYtv{`C!C#KZ<xvRA^^P
zExRqa*oiVBH%BIEu;nZ6M0MLoE~wtk+pm&6H(qx=>B;WJIFdYssdQ+KaN`=Yg%t=!
zh5w}zm|7H|o1)Q}rffcTOmH@O$9XwjFN*|2zU|zORTo=>Rf(i%qOVndu-YQXiQ0!|
zjckjy%TCRX#x-W2kBGjK0;T36dyH%aUF&M#Q<PdKUNw{K)SoSbf48@>`k{k=pBjfU
zLby7vRXaxCrE)%Eyz38J0u#lK-eQNLf=QgcaYg^8z1l(^)1=J<ux-@(5`Ftr8sW7!
z%DiiwvJg1`P0Jo?$;l-VMsoAAUY4Ioiy^)wyKPz6v@y3&vz0}82V|2B{N{|Rhua^C
z%3HoEM4&okL`e>};JLjWW!7s}OOb6Yw5-jj;n&tnT+_bIYbJ6g>LQYv#M;(<U&a*K
zy{L0Wcfm7O94YFge1+g7y3mw%Wqm+gSj7?6Ri6T}4Hi=tq6^z5`pf>tYKpn!H)zwx
zMN#W*1s{o_gSEDFb(QpV7f9NaouQN*lnkM+M@3=|bzaVxEtr@@<%%y7j`ha3RH6!D
z+G^QHCg$%gw@CyIiB<VjM2?E|Z;Pr!neOQ%hgcfiRy%!{lGTLdvXNUBuOqEoJ7eC<
z?QFd6cR07mW~5f`cQfej(eG$ct>`}g*?`UxMi9+kyE<4)0^MfM`7==_A{tT11e;p8
zQ>KNhZrsByTDW;SDt#ie&D_(bAT@fkn^SbZl1_xy5CE@4{6g)O8}@c{HIDXnE6%a9
z@E8)AW8B8uP%cIpBYd6cUc0JOaa+^P%_iBdbaM;ZSSFs)frMEpurYBbk}-yT!}hI6
zOrhQqk7Wh=kTX<r^UYq}WlCw~Zq<eOW-~IKUGlztQp}c@nZ@Ih(mAQ9W+c|5(^l{H
zSjE)$b+Fx&cJFDb2kDEaOmOY0?6K_jnqx;o!oUiH)vim&SALZ;z22`#3Xw`S>dH}P
zq);p4#5&^V)hi?0dBfL?J|9vnaH^31eUM9ydP2=%GL@r4o*kv}JO0rumNICx$fBI4
zFttuyM5=YTIE+=4P@C#y$polvuqG)`h?cUUVv3^NF1H|EW8-=JhYd_h*iNH1p(GCj
zBiq<68~uPY;!u(njiGX%Cx43d^Dsf(7jbHbA}AEQ?N&L(^Uebe;6~0``6*|rB4al*
zXIaAwYj2m|Oh%T?rz!$VS!~(~ZN@H^Go`_ZV62;WiplL1dzEgllbFD=?SM2zYiQ%0
z;<#q~RPto1g<5ZIR=6;>3F|qTO99e=@kng@!~|^9Ctg4!gyR-erB{5Z7gCg%K)YEN
zqiWPd0>w$JXpCd2;`qfXdAE3BsCHepjA`R+?iiOhik577qv#hGH&~KrM}aQB*_OoD
z&GLqC@rb47&QFQAs=6Bt)?h$u*hMx+_)Xswt>o?B6#eAw-wb!Kb)Eetf=Jzt3oP;T
zSSBAh_w)O7z`50MeHTAC(MRGxX|#I$&L%O(j6jXzJ>!OKX+)_Bwv~`W4pjNyXlKlU
zIHRM$TBg}BC%x+DIigE6DH(tBR5`*^^3Wy^sn9box+lu^sq;1hrN0D4elOx&Fd9XQ
z6GAFkY}>1=Nd1i_UQhOuQwe;%DD;+o3@*8~aXl)Vbg#!gI?}(s>GQ)j_LfKUJcIgd
z8%n|$ewgP(`=jTU_)&39IFqK;_@^a~Wy^ex+rUk!<|Uxm+GT@GWq*QekpYTD(Ppvc
z(80vSxeLNQsgfvXI)0JXDvs@G3mK#?Ge6qeAZx!c^V@HxWTX@|1m7vDBoSQZLmOn1
zh#%6%ccXukMl|!%@Rqh;&o;fyA}zQ7|Izin*<yKW#5M99R8*;jr&OF!I}&z!bM(JQ
z*g^4`|H94C8`hl_e%2dWO`K`l58`(9O+Sds!i6xoZ1jjs<I%V>h9mva5On?zMh2ut

literal 0
HcmV?d00001

diff --git a/tools/power/cpupower/po/cs.po b/tools/power/cpupower/po/cs.po
index bfc7e1702..807dabbc1 100644
--- a/tools/power/cpupower/po/cs.po
+++ b/tools/power/cpupower/po/cs.po
@@ -4,49 +4,49 @@
 # Copyright (C) 2007 kavol
 # This file is distributed under the same license as the cpufrequtils package.
 #
-# Karel Volný <kavol@seznam.cz>, 2007, 2008.
+# Daniel Hejduk <danielhejduk@disroot.org>.
 msgid ""
 msgstr ""
 "Project-Id-Version: cs\n"
 "Report-Msgid-Bugs-To: \n"
 "POT-Creation-Date: 2011-03-08 17:03+0100\n"
-"PO-Revision-Date: 2008-06-11 16:26+0200\n"
-"Last-Translator: Karel Volný <kavol@seznam.cz>\n"
+"PO-Revision-Date: 2024-06-27 10:49+0200\n"
+"Last-Translator: Daniel Hejduk <danielhejduk@disroot.org>\n"
 "Language-Team: Czech <diskuze@lists.l10n.cz>\n"
 "Language: cs\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms:  nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
-"X-Generator: KBabel 1.11.4\n"
+"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
+"X-Generator: Poedit 3.4.4\n"
 
 #: utils/idle_monitor/nhm_idle.c:36
 msgid "Processor Core C3"
-msgstr ""
+msgstr "Procesor Core C3"
 
 #: utils/idle_monitor/nhm_idle.c:43
 msgid "Processor Core C6"
-msgstr ""
+msgstr "Procesor Core C6"
 
 #: utils/idle_monitor/nhm_idle.c:51
 msgid "Processor Package C3"
-msgstr ""
+msgstr "Procesorový balíček C3"
 
 #: utils/idle_monitor/nhm_idle.c:58 utils/idle_monitor/amd_fam14h_idle.c:70
 msgid "Processor Package C6"
-msgstr ""
+msgstr "Procesorový balíček C6"
 
 #: utils/idle_monitor/snb_idle.c:33
 msgid "Processor Core C7"
-msgstr ""
+msgstr "Procesor Core C7"
 
 #: utils/idle_monitor/snb_idle.c:40
 msgid "Processor Package C2"
-msgstr ""
+msgstr "Procesorový balíček C2"
 
 #: utils/idle_monitor/snb_idle.c:47
 msgid "Processor Package C7"
-msgstr ""
+msgstr "Procesorový balíček C7"
 
 #: utils/idle_monitor/amd_fam14h_idle.c:56
 msgid "Package in sleep state (PC1 or deeper)"
@@ -54,7 +54,7 @@ msgstr ""
 
 #: utils/idle_monitor/amd_fam14h_idle.c:63
 msgid "Processor Package C1"
-msgstr ""
+msgstr "Procesorový balíček C1"
 
 #: utils/idle_monitor/amd_fam14h_idle.c:77
 msgid "North Bridge P1 boolean counter (returns 0 or 1)"
@@ -62,15 +62,15 @@ msgstr ""
 
 #: utils/idle_monitor/mperf_monitor.c:35
 msgid "Processor Core not idle"
-msgstr ""
+msgstr "Procesor Core není v klidovém stavu"
 
 #: utils/idle_monitor/mperf_monitor.c:42
 msgid "Processor Core in an idle state"
-msgstr ""
+msgstr "Procesor Core je v klidovém stavu"
 
 #: utils/idle_monitor/mperf_monitor.c:50
 msgid "Average Frequency (including boost) in MHz"
-msgstr ""
+msgstr "Průměrná frekvence (včetně boostu) v MHz"
 
 #: utils/idle_monitor/cpupower-monitor.c:66
 #, c-format
@@ -78,6 +78,8 @@ msgid ""
 "cpupower monitor: [-h] [ [-t] | [-l] | [-m <mon1>,[<mon2>] ] ] [-i "
 "interval_sec | -c command ...]\n"
 msgstr ""
+"cpupower monitor: [-h] [ [-t] | [-l] | [-m <mon1>,[<mon2>] ] ] [-i "
+"interní_sekundy | -c příkaz ...]\n"
 
 #: utils/idle_monitor/cpupower-monitor.c:69
 #, c-format
@@ -85,21 +87,23 @@ msgid ""
 "cpupower monitor: [-v] [-h] [ [-t] | [-l] | [-m <mon1>,[<mon2>] ] ] [-i "
 "interval_sec | -c command ...]\n"
 msgstr ""
+"cpupower monitor: [-v] [-h] [ [-t] | [-l] | [-m <mon1>,[<mon2>] ] ] [-i "
+"interní_sekundy | -c příkaz ...]\n"
 
 #: utils/idle_monitor/cpupower-monitor.c:71
 #, c-format
 msgid "\t -v: be more verbose\n"
-msgstr ""
+msgstr "\t -v: být víc upovídaný\n"
 
 #: utils/idle_monitor/cpupower-monitor.c:73
 #, c-format
 msgid "\t -h: print this help\n"
-msgstr ""
+msgstr "\t-h, --help: Vypíše tuto nápovědu\n"
 
 #: utils/idle_monitor/cpupower-monitor.c:74
 #, c-format
 msgid "\t -i: time interval to measure for in seconds (default 1)\n"
-msgstr ""
+msgstr "\t -i: časové intervaly pro měření v sekundách (výchozí 1)\n"
 
 #: utils/idle_monitor/cpupower-monitor.c:75
 #, c-format
@@ -217,12 +221,12 @@ msgstr ""
 msgid "Report errors and bugs to %s, please.\n"
 msgstr ""
 "Chyby v programu prosím hlaste na %s (anglicky).\n"
-"Chyby v překladu prosím hlaste na kavol@seznam.cz (česky ;-)\n"
+"Chyby v překladu prosím hlaste na danielhejduk@disroot.org (česky ;-)\n"
 
 #: utils/cpupower.c:114
 #, c-format
 msgid "Error parsing cpu list\n"
-msgstr ""
+msgstr "Chyba v parsování procesorového listu\n"
 
 #: utils/cpupower.c:172
 #, c-format
@@ -259,25 +263,25 @@ msgstr ""
 #: utils/cpufreq-info.c:163
 #, c-format
 msgid "    Supported: %s\n"
-msgstr ""
+msgstr "    Podporováno: %s\n"
 
 #: utils/cpufreq-info.c:163 utils/cpufreq-info.c:164
 msgid "yes"
-msgstr ""
+msgstr "ano"
 
 #: utils/cpufreq-info.c:163 utils/cpufreq-info.c:164
 msgid "no"
-msgstr ""
+msgstr "ne"
 
 #: utils/cpufreq-info.c:164
-#, fuzzy, c-format
+#, c-format
 msgid "    Active: %s\n"
-msgstr "  ovladač: %s\n"
+msgstr "    Aktivní: %s\n"
 
 #: utils/cpufreq-info.c:177
 #, c-format
 msgid "    Boost States: %d\n"
-msgstr ""
+msgstr "    Boostové stavy: %d\n"
 
 #: utils/cpufreq-info.c:178
 #, c-format
@@ -305,14 +309,14 @@ msgid "  driver: %s\n"
 msgstr "  ovladač: %s\n"
 
 #: utils/cpufreq-info.c:219
-#, fuzzy, c-format
+#, c-format
 msgid "  CPUs which run at the same hardware frequency: "
-msgstr "  CPU, které musí měnit frekvenci zároveň: "
+msgstr "  Procesory, které jsou na stejné hardwarové frekvenci: "
 
 #: utils/cpufreq-info.c:230
-#, fuzzy, c-format
+#, c-format
 msgid "  CPUs which need to have their frequency coordinated by software: "
-msgstr "  CPU, které musí měnit frekvenci zároveň: "
+msgstr "  Procesory, které musí mít jejich frekvenci ovládanou softwarem: "
 
 #: utils/cpufreq-info.c:241
 #, c-format
@@ -350,7 +354,7 @@ msgid ""
 "The governor \"%s\" may decide which speed to use\n"
 "                  within this range.\n"
 msgstr ""
-"  Regulátor \"%s\" může rozhodnout jakou frekvenci použít\n"
+"Regulátor \"%s\" může rozhodnout jakou frekvenci použít\n"
 "                    v těchto mezích.\n"
 
 #: utils/cpufreq-info.c:293
@@ -369,9 +373,9 @@ msgid "  cpufreq stats: "
 msgstr "  statistika cpufreq: "
 
 #: utils/cpufreq-info.c:472
-#, fuzzy, c-format
+#, c-format
 msgid "Usage: cpupower freqinfo [options]\n"
-msgstr "Užití: cpufreq-info [přepínače]\n"
+msgstr "Užití: cpupower freqinfo [přepínače]\n"
 
 #: utils/cpufreq-info.c:473 utils/cpufreq-set.c:26 utils/cpupower-set.c:23
 #: utils/cpupower-info.c:22 utils/cpuidle-info.c:148
@@ -380,7 +384,7 @@ msgid "Options:\n"
 msgstr "Přepínače:\n"
 
 #: utils/cpufreq-info.c:474
-#, fuzzy, c-format
+#, c-format
 msgid "  -e, --debug          Prints out debug information [default]\n"
 msgstr "  -e, --debug          Vypíše ladicí informace\n"
 
@@ -427,20 +431,21 @@ msgid "  -g, --governors      Determines available cpufreq governors *\n"
 msgstr "  -g, --governors      Zjistí dostupné regulátory cpufreq *\n"
 
 #: utils/cpufreq-info.c:483
-#, fuzzy, c-format
+#, c-format
 msgid ""
 "  -r, --related-cpus   Determines which CPUs run at the same hardware "
 "frequency *\n"
 msgstr ""
-"  -a, --affected-cpus  Zjistí, které CPU musí měnit frekvenci zároveň *\n"
+"  -r, --related-cpus  Zjistí, které procesory jsou na stejné frekvenci *\n"
 
 #: utils/cpufreq-info.c:484
-#, fuzzy, c-format
+#, c-format
 msgid ""
 "  -a, --affected-cpus  Determines which CPUs need to have their frequency\n"
 "                       coordinated by software *\n"
 msgstr ""
-"  -a, --affected-cpus  Zjistí, které CPU musí měnit frekvenci zároveň *\n"
+"  -a, --affected-cpus  Zjistí, které procesory musí mít svoji frekvenci\n"
+"                       ovládanou softwarem *\n"
 
 #: utils/cpufreq-info.c:486
 #, c-format
@@ -448,13 +453,13 @@ msgid "  -s, --stats          Shows cpufreq statistics if available\n"
 msgstr "  -s, --stats          Zobrazí statistiku cpufreq, je-li dostupná\n"
 
 #: utils/cpufreq-info.c:487
-#, fuzzy, c-format
+#, c-format
 msgid ""
 "  -y, --latency        Determines the maximum latency on CPU frequency "
 "changes *\n"
 msgstr ""
-"  -l, --hwlimits       Zjistí minimální a maximální dostupnou frekvenci CPU "
-"*\n"
+"  -y, --latency        Zjistí maximální latenci na změně procesorové "
+"frekvence *\n"
 
 #: utils/cpufreq-info.c:488
 #, c-format
@@ -468,16 +473,17 @@ msgid ""
 "cpufreq\n"
 "                       interface in 2.4. and early 2.6. kernels\n"
 msgstr ""
-"  -o, --proc           Vypíše informace ve formátu, jaký používalo rozhraní\n"
+"  -o, --proc           Vypíše informace ve formátu, jaký používalo "
+"rozhraní\n"
 "                       /proc/cpufreq v kernelech řady 2.4 a časné 2.6\n"
 
 #: utils/cpufreq-info.c:491
-#, fuzzy, c-format
+#, c-format
 msgid ""
 "  -m, --human          human-readable output for the -f, -w, -s and -y "
 "parameters\n"
 msgstr ""
-"  -m, --human          Výstup parametrů -f, -w a -s v „lidmi čitelném“ "
+"  -m, --human          Výstup parametrů -f, -w a -s a -y v „lidmi čitelném“ "
 "formátu\n"
 
 #: utils/cpufreq-info.c:492 utils/cpuidle-info.c:152
@@ -488,12 +494,14 @@ msgstr "  -h, --help           Vypíše tuto nápovědu\n"
 #: utils/cpufreq-info.c:495
 #, c-format
 msgid ""
-"If no argument or only the -c, --cpu parameter is given, debug output about\n"
+"If no argument or only the -c, --cpu parameter is given, debug output "
+"about\n"
 "cpufreq is printed which is useful e.g. for reporting bugs.\n"
 msgstr ""
 "Není-li zadán žádný parametr nebo je-li zadán pouze přepínač -c, --cpu, "
 "jsou\n"
-"vypsány ladicí informace, což může být užitečné například při hlášení chyb.\n"
+"vypsány ladicí informace, což může být užitečné například při hlášení "
+"chyb.\n"
 
 #: utils/cpufreq-info.c:497
 #, c-format
@@ -509,7 +517,8 @@ msgstr ""
 msgid ""
 "The argument passed to this tool can't be combined with passing a --cpu "
 "argument\n"
-msgstr "Zadaný parametr nemůže být použit zároveň s přepínačem -c nebo --cpu\n"
+msgstr ""
+"Zadaný parametr nemůže být použit zároveň s přepínačem -c nebo --cpu\n"
 
 #: utils/cpufreq-info.c:596
 #, c-format
@@ -537,9 +546,9 @@ msgid "analyzing CPU %d:\n"
 msgstr "analyzuji CPU %d:\n"
 
 #: utils/cpufreq-set.c:25
-#, fuzzy, c-format
+#, c-format
 msgid "Usage: cpupower frequency-set [options]\n"
-msgstr "Užití: cpufreq-set [přepínače]\n"
+msgstr "Užití: cpupower frequency-set [přepínače]\n"
 
 #: utils/cpufreq-set.c:27
 #, c-format
@@ -567,7 +576,8 @@ msgstr "  -g GOV, --governors GOV  Nový regulátor cpufreq\n"
 #: utils/cpufreq-set.c:30
 #, c-format
 msgid ""
-"  -f FREQ, --freq FREQ     specific frequency to be set. Requires userspace\n"
+"  -f FREQ, --freq FREQ     specific frequency to be set. Requires "
+"userspace\n"
 "                           governor to be available and loaded\n"
 msgstr ""
 "  -f FREQ, --freq FREQ     Frekvence, která má být nastavena. Vyžaduje, aby "
@@ -580,21 +590,22 @@ msgid "  -r, --related            Switches all hardware-related CPUs\n"
 msgstr ""
 
 #: utils/cpufreq-set.c:33 utils/cpupower-set.c:28 utils/cpupower-info.c:27
-#, fuzzy, c-format
+#, c-format
 msgid "  -h, --help               Prints out this screen\n"
 msgstr "  -h, --help           Vypíše tuto nápovědu\n"
 
 #: utils/cpufreq-set.c:35
-#, fuzzy, c-format
+#, c-format
 msgid ""
 "Notes:\n"
-"1. Omitting the -c or --cpu argument is equivalent to setting it to \"all\"\n"
+"1. Omitting the -c or --cpu argument is equivalent to setting it to "
+"\"all\"\n"
 msgstr ""
-"Není-li při použití přepínačů označených * zadán parametr -c nebo --cpu,\n"
-"předpokládá se jeho hodnota 0.\n"
+"Poznámky:\n"
+"1. Vynechání -c nebo --cpu přepínače je ekvivalent na nastavení \"all\"\n"
 
 #: utils/cpufreq-set.c:37
-#, fuzzy, c-format
+#, c-format
 msgid ""
 "2. The -f FREQ, --freq FREQ parameter cannot be combined with any other "
 "parameter\n"
@@ -603,12 +614,11 @@ msgid ""
 "   by postfixing the value with the wanted unit name, without any space\n"
 "   (FREQuency in kHz =^ Hz * 0.001 =^ MHz * 1000 =^ GHz * 1000000).\n"
 msgstr ""
-"Poznámky:\n"
-"1. Vynechání parametru -c nebo --cpu je ekvivalentní jeho nastavení na 0\n"
 "2. Přepínač -f nebo --freq nemůže být použit zároveň s žádným jiným vyjma -"
 "c\n"
 "   nebo --cpu\n"
-"3. Frekvence (FREQ) mohou být zadány v Hz, kHz (výchozí), MHz, GHz nebo THz\n"
+"3. Frekvence (FREQ) mohou být zadány v Hz, kHz (výchozí), MHz, GHz nebo "
+"THz\n"
 "   připojením názvu jednotky bez mezery mezi číslem a jednotkou\n"
 "   (FREQ v kHz =^ Hz * 0,001 = ^ MHz * 1000 =^ GHz * 1000000)\n"
 
@@ -659,7 +669,7 @@ msgstr ""
 #: utils/cpufreq-set.c:347
 #, c-format
 msgid "Setting cpu: %d\n"
-msgstr ""
+msgstr "Nastavuji procesor:%d\n"
 
 #: utils/cpupower-set.c:22
 #, c-format
@@ -729,9 +739,9 @@ msgid ""
 msgstr ""
 
 #: utils/cpupower-info.c:25
-#, fuzzy, c-format
+#, c-format
 msgid "  -m, --sched-mc     Gets the kernel's multi core scheduler policy.\n"
-msgstr "  -p, --policy         Zjistí aktuální taktiku cpufreq *\n"
+msgstr "  -m, --sched-mc     Zjistí pravidla pro multi jádrové plánování\n"
 
 #: utils/cpupower-info.c:26
 #, c-format
@@ -783,9 +793,9 @@ msgid "perf-bias: %d\n"
 msgstr ""
 
 #: utils/cpuidle-info.c:28
-#, fuzzy, c-format
+#, c-format
 msgid "Analyzing CPU %d:\n"
-msgstr "analyzuji CPU %d:\n"
+msgstr "Analyzování procesoru %d:\n"
 
 #: utils/cpuidle-info.c:32
 #, c-format
@@ -808,9 +818,9 @@ msgid "Number of idle states: %d\n"
 msgstr ""
 
 #: utils/cpuidle-info.c:48
-#, fuzzy, c-format
+#, c-format
 msgid "Available idle states:"
-msgstr "  dostupné frekvence: "
+msgstr "Dostupné frekvence:"
 
 #: utils/cpuidle-info.c:71
 #, c-format
@@ -820,7 +830,7 @@ msgstr ""
 #: utils/cpuidle-info.c:74
 #, c-format
 msgid "Latency: %lu\n"
-msgstr ""
+msgstr "Latence: %lu\n"
 
 #: utils/cpuidle-info.c:76
 #, c-format
@@ -838,9 +848,9 @@ msgid "Could not determine cpuidle driver\n"
 msgstr ""
 
 #: utils/cpuidle-info.c:94
-#, fuzzy, c-format
+#, c-format
 msgid "CPUidle driver: %s\n"
-msgstr "  ovladač: %s\n"
+msgstr "ovladač: %s\n"
 
 #: utils/cpuidle-info.c:99
 #, c-format
@@ -876,7 +886,7 @@ msgstr ""
 #: utils/cpuidle-info.c:130
 #, c-format
 msgid "states:\t\n"
-msgstr ""
+msgstr "stavy:\t\n"
 
 #: utils/cpuidle-info.c:132
 #, c-format
@@ -904,31 +914,31 @@ msgid "duration[%020Lu] \n"
 msgstr ""
 
 #: utils/cpuidle-info.c:147
-#, fuzzy, c-format
+#, c-format
 msgid "Usage: cpupower idleinfo [options]\n"
-msgstr "Užití: cpufreq-info [přepínače]\n"
+msgstr "Užití: cpupower idleinfo [přepínače]\n"
 
 #: utils/cpuidle-info.c:149
-#, fuzzy, c-format
+#, c-format
 msgid "  -s, --silent         Only show general C-state information\n"
-msgstr "  -e, --debug          Vypíše ladicí informace\n"
+msgstr "  -s, --silent          Ukáže pouze základní informace o C-stavech\n"
 
 #: utils/cpuidle-info.c:150
-#, fuzzy, c-format
+#, c-format
 msgid ""
 "  -o, --proc           Prints out information like provided by the /proc/"
 "acpi/processor/*/power\n"
 "                       interface in older kernels\n"
 msgstr ""
-"  -o, --proc           Vypíše informace ve formátu, jaký používalo rozhraní\n"
-"                       /proc/cpufreq v kernelech řady 2.4 a časné 2.6\n"
+"  -o, --proc           Vypíše informace které jsou obsaženy v /proc/acpi/"
+"processor/*/power\n"
+"                       rozhraní ve starších verzích jádra\n"
 
 #: utils/cpuidle-info.c:209
-#, fuzzy, c-format
+#, c-format
 msgid "You can't specify more than one output-specific argument\n"
 msgstr ""
-"Nelze zadat více než jeden parametr -c nebo --cpu\n"
-"anebo více než jeden parametr určující výstup\n"
+"Nemůžeš specifikovat více jak jeden přepínač pro nastavování vypisování\n"
 
 #~ msgid ""
 #~ "  -c CPU, --cpu CPU    CPU number which information shall be determined "
-- 
2.45.2

.

Return-Path: <linux-nvme-bounces+linux-nvme=archiver.kernel.org@lists.infradead.org>
From: Daniel Wagner <dwagner@suse.de>
Subject: [PATCH v2 0/3] nvme-pci: honor isolcpus configuration
Date: Thu, 27 Jun 2024 16:10:50 +0200
Message-Id: <20240627-isolcpus-io-queues-v2-0-26a32e3c4f75@suse.de>
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit
To: Jens Axboe <axboe@kernel.dk>, Keith Busch <kbusch@kernel.org>, 
 Sagi Grimberg <sagi@grimberg.me>, Thomas Gleixner <tglx@linutronix.de>, 
 Christoph Hellwig <hch@lst.de>
Cc: Frederic Weisbecker <fweisbecker@suse.com>, 
 Mel Gorman <mgorman@suse.de>, Hannes Reinecke <hare@suse.de>, 
 Sridhar Balaraman <sbalaraman@parallelwireless.com>, 
 "brookxu.cn" <brookxu.cn@gmail.com>, Ming Lei <ming.lei@redhat.com>, 
 linux-kernel@vger.kernel.org, linux-block@vger.kernel.org, 
 linux-nvme@lists.infradead.org, Daniel Wagner <dwagner@suse.de>
X-BeenThere: linux-nvme@lists.infradead.org
X-Mailman-Version: 2.1.34
List-Id: <linux-nvme.lists.infradead.org>
List-Unsubscribe: <http://lists.infradead.org/mailman/options/linux-nvme>,
 <mailto:linux-nvme-request@lists.infradead.org?subject=unsubscribe>
List-Archive: <http://lists.infradead.org/pipermail/linux-nvme/>
List-Post: <mailto:linux-nvme@lists.infradead.org>
List-Help: <mailto:linux-nvme-request@lists.infradead.org?subject=help>
List-Subscribe: <http://lists.infradead.org/mailman/listinfo/linux-nvme>,
 <mailto:linux-nvme-request@lists.infradead.org?subject=subscribe>
Sender: "Linux-nvme" <linux-nvme-bounces@lists.infradead.org>
Errors-To: linux-nvme-bounces+linux-nvme=archiver.kernel.org@lists.infradead.org
Xref: photonic.trudheim.com org.infradead.lists.linux-nvme:61561 org.kernel.vger.linux-block:93572 org.kernel.vger.linux-kernel:1260926
Newsgroups: org.infradead.lists.linux-nvme,org.kernel.vger.linux-block,org.kernel.vger.linux-kernel
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

I've dropped the io_queue type from housekeeping code, because of
11ea68f553e2 ("genirq, sched/isolation: Isolate from handling managed
interrupts"). This convienced me that the original goal of the
managed_irq argument was to move away any noise from the isolcpus. So
let's just use it and if there are real users of the current behavior we
can still add it back the. I hope that Ming will chime in eventually.

The rest of the changes are pretty small, splitting one patch and adding
documentation.

Initial cover letter:

The nvme-pci driver is ignoring the isolcpus configuration. There were
several attempts to fix this in the past [1][2]. This is another attempt
but this time trying to address the feedback and solve it in the core
code.

The first patch introduces a new option for isolcpus 'io_queue', but I'm
not really sure if this is needed and we could just use the managed_irq
option instead. I guess depends if there is an use case which depens on
queues on the isolated CPUs.

The second patch introduces a new block layer helper which returns the
number of possible queues. I suspect it would makes sense also to make
this helper a bit smarter and also consider the number of queues the
hardware supports.

And the last patch updates the group_cpus_evenly function so that it uses
only the housekeeping CPUs when they are defined

Note this series is not addressing the affinity setting of the admin
queue (queue 0). I'd like to address this after we agreed on how to solve
this. Currently, the admin queue affinity can be controlled by the
irq_afffinity command line option, so there is at least a workaround for
it.

Baseline:

available: 2 nodes (0-1)
node 0 cpus: 0 1 2 3
node 0 size: 1536 MB
node 0 free: 1227 MB
node 1 cpus: 4 5 6 7
node 1 size: 1729 MB
node 1 free: 1422 MB
node distances:
node   0   1
  0:  10  20
  1:  20  10

options nvme write_queues=4 poll_queues=4

55: 0 41 0 0 0 0 0 0 PCI-MSIX-0000:00:05.0 0-edge nvme0q0 affinity: 0-3
63: 0 0 0 0 0 0 0 0 PCI-MSIX-0000:00:05.0 1-edge nvme0q1 affinity: 4-5
64: 0 0 0 0 0 0 0 0 PCI-MSIX-0000:00:05.0 2-edge nvme0q2 affinity: 6-7
65: 0 0 0 0 0 0 0 0 PCI-MSIX-0000:00:05.0 3-edge nvme0q3 affinity: 0-1
66: 0 0 0 0 0 0 0 0 PCI-MSIX-0000:00:05.0 4-edge nvme0q4 affinity: 2-3
67: 0 0 0 0 24 0 0 0 PCI-MSIX-0000:00:05.0 5-edge nvme0q5 affinity: 4
68: 0 0 0 0 0 1 0 0 PCI-MSIX-0000:00:05.0 6-edge nvme0q6 affinity: 5
69: 0 0 0 0 0 0 41 0 PCI-MSIX-0000:00:05.0 7-edge nvme0q7 affinity: 6
70: 0 0 0 0 0 0 0 3 PCI-MSIX-0000:00:05.0 8-edge nvme0q8 affinity: 7
71: 1 0 0 0 0 0 0 0 PCI-MSIX-0000:00:05.0 9-edge nvme0q9 affinity: 0
72: 0 18 0 0 0 0 0 0 PCI-MSIX-0000:00:05.0 10-edge nvme0q10 affinity: 1
73: 0 0 0 0 0 0 0 0 PCI-MSIX-0000:00:05.0 11-edge nvme0q11 affinity: 2
74: 0 0 0 3 0 0 0 0 PCI-MSIX-0000:00:05.0 12-edge nvme0q12 affinity: 3

queue mapping for /dev/nvme0n1
        hctx0: default 4 5
        hctx1: default 6 7
        hctx2: default 0 1
        hctx3: default 2 3
        hctx4: read 4
        hctx5: read 5
        hctx6: read 6
        hctx7: read 7
        hctx8: read 0
        hctx9: read 1
        hctx10: read 2
        hctx11: read 3
        hctx12: poll 4 5
        hctx13: poll 6 7
        hctx14: poll 0 1
        hctx15: poll 2 3

PCI name is 00:05.0: nvme0n1
        irq 55, cpu list 0-3, effective list 1
        irq 63, cpu list 4-5, effective list 5
        irq 64, cpu list 6-7, effective list 7
        irq 65, cpu list 0-1, effective list 1
        irq 66, cpu list 2-3, effective list 3
        irq 67, cpu list 4, effective list 4
        irq 68, cpu list 5, effective list 5
        irq 69, cpu list 6, effective list 6
        irq 70, cpu list 7, effective list 7
        irq 71, cpu list 0, effective list 0
        irq 72, cpu list 1, effective list 1
        irq 73, cpu list 2, effective list 2
        irq 74, cpu list 3, effective list 3

* patched:

48: 0 0 33 0 0 0 0 0 PCI-MSIX-0000:00:05.0 0-edge nvme0q0 affinity: 0-3
58: 0 0 0 0 0 0 0 0 PCI-MSIX-0000:00:05.0 1-edge nvme0q1 affinity: 4
59: 0 0 0 0 0 0 0 0 PCI-MSIX-0000:00:05.0 2-edge nvme0q2 affinity: 5
60: 0 0 0 0 0 0 0 0 PCI-MSIX-0000:00:05.0 3-edge nvme0q3 affinity: 0
61: 0 0 0 0 0 0 0 0 PCI-MSIX-0000:00:05.0 4-edge nvme0q4 affinity: 1
62: 0 0 0 0 45 0 0 0 PCI-MSIX-0000:00:05.0 5-edge nvme0q5 affinity: 4
63: 0 0 0 0 0 12 0 0 PCI-MSIX-0000:00:05.0 6-edge nvme0q6 affinity: 5
64: 2 0 0 0 0 0 0 0 PCI-MSIX-0000:00:05.0 7-edge nvme0q7 affinity: 0
65: 0 35 0 0 0 0 0 0 PCI-MSIX-0000:00:05.0 8-edge nvme0q8 affinity: 1

queue mapping for /dev/nvme0n1
        hctx0: default 2 3 4 6 7
        hctx1: default 5
        hctx2: default 0
        hctx3: default 1
        hctx4: read 4
        hctx5: read 5
        hctx6: read 0
        hctx7: read 1
        hctx8: poll 4
        hctx9: poll 5
        hctx10: poll 0
        hctx11: poll 1

PCI name is 00:05.0: nvme0n1
        irq 48, cpu list 0-3, effective list 2
        irq 58, cpu list 4, effective list 4
        irq 59, cpu list 5, effective list 5
        irq 60, cpu list 0, effective list 0
        irq 61, cpu list 1, effective list 1
        irq 62, cpu list 4, effective list 4
        irq 63, cpu list 5, effective list 5
        irq 64, cpu list 0, effective list 0
        irq 65, cpu list 1, effective list 1

[1] https://lore.kernel.org/lkml/20220423054331.GA17823@lst.de/T/#m9939195a465accbf83187caf346167c4242e798d
[2] https://lore.kernel.org/linux-nvme/87fruci5nj.ffs@tglx/

Signed-off-by: Daniel Wagner <dwagner@suse.de>
---
Changes in v2:
- updated documentation
- splitted blk/nvme-pci patch
- dropped HK_TYPE_IO_QUEUE, use HK_TYPE_MANAGED_IRQ
- Link to v1: https://lore.kernel.org/r/20240621-isolcpus-io-queues-v1-0-8b169bf41083@suse.de

---
Daniel Wagner (3):
      blk-mq: add blk_mq_num_possible_queues helper
      nvme-pci: limit queue count to housekeeping CPUs
      lib/group_cpus.c: honor housekeeping config when grouping CPUs

 block/blk-mq-cpumap.c   | 20 +++++++++++++
 drivers/nvme/host/pci.c |  5 ++--
 include/linux/blk-mq.h  |  1 +
 lib/group_cpus.c        | 75 +++++++++++++++++++++++++++++++++++++++++++++++--
 4 files changed, 97 insertions(+), 4 deletions(-)
---
base-commit: 6ba59ff4227927d3a8530fc2973b80e94b54d58f
change-id: 20240620-isolcpus-io-queues-1a88eb47ff8b

Best regards,
-- 
Daniel Wagner <dwagner@suse.de>


.

X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Date: Thu, 27 Jun 2024 07:03:21 -0700
Message-ID: <000000000000f71227061bdf97e0@google.com>
Subject: [syzbot] [cgroups?] BUG: sleeping function called from invalid
 context in cgroup_rstat_flush
From: syzbot <syzbot+b7f13b2d0cc156edf61a@syzkaller.appspotmail.com>
To: cgroups@vger.kernel.org, hannes@cmpxchg.org, linux-kernel@vger.kernel.org, 
	lizefan.x@bytedance.com, syzkaller-bugs@googlegroups.com, tj@kernel.org
Content-Type: text/plain; charset="UTF-8"
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1260932
Newsgroups: org.kernel.vger.linux-kernel,org.kernel.vger.cgroups
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

Hello,

syzbot found the following issue on:

HEAD commit:    7c16f0a4ed1c Merge tag 'i2c-for-6.10-rc5' of git://git.ker..
git tree:       upstream
console output: https://syzkaller.appspot.com/x/log.txt?x=1511528e980000
kernel config:  https://syzkaller.appspot.com/x/.config?x=12f98862a3c0c799
dashboard link: https://syzkaller.appspot.com/bug?extid=b7f13b2d0cc156edf61a
compiler:       Debian clang version 15.0.6, GNU ld (GNU Binutils for Debian) 2.40

Unfortunately, I don't have any reproducer for this issue yet.

Downloadable assets:
disk image: https://storage.googleapis.com/syzbot-assets/50560e9024e5/disk-7c16f0a4.raw.xz
vmlinux: https://storage.googleapis.com/syzbot-assets/080c27daee72/vmlinux-7c16f0a4.xz
kernel image: https://storage.googleapis.com/syzbot-assets/c528e0da4544/bzImage-7c16f0a4.xz

IMPORTANT: if you fix the issue, please add the following tag to the commit:
Reported-by: syzbot+b7f13b2d0cc156edf61a@syzkaller.appspotmail.com

BUG: sleeping function called from invalid context at kernel/cgroup/rstat.c:351
in_atomic(): 0, irqs_disabled(): 0, non_block: 0, pid: 17332, name: syz-executor.4
preempt_count: 0, expected: 0
RCU nest depth: 1, expected: 0
1 lock held by syz-executor.4/17332:
 #0: ffffffff8e333fa0 (rcu_read_lock){....}-{1:2}, at: rcu_lock_acquire include/linux/rcupdate.h:329 [inline]
 #0: ffffffff8e333fa0 (rcu_read_lock){....}-{1:2}, at: rcu_read_lock include/linux/rcupdate.h:781 [inline]
 #0: ffffffff8e333fa0 (rcu_read_lock){....}-{1:2}, at: filemap_cachestat mm/filemap.c:4251 [inline]
 #0: ffffffff8e333fa0 (rcu_read_lock){....}-{1:2}, at: __do_sys_cachestat mm/filemap.c:4407 [inline]
 #0: ffffffff8e333fa0 (rcu_read_lock){....}-{1:2}, at: __se_sys_cachestat+0x3ee/0xbb0 mm/filemap.c:4372
CPU: 1 PID: 17332 Comm: syz-executor.4 Not tainted 6.10.0-rc4-syzkaller-00330-g7c16f0a4ed1c #0
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 06/07/2024
Call Trace:
 <TASK>
 __dump_stack lib/dump_stack.c:88 [inline]
 dump_stack_lvl+0x241/0x360 lib/dump_stack.c:114
 __might_resched+0x5d4/0x780 kernel/sched/core.c:10196
 cgroup_rstat_flush+0x1e/0x50 kernel/cgroup/rstat.c:351
 workingset_test_recent+0x48a/0xa90 mm/workingset.c:473
 filemap_cachestat mm/filemap.c:4314 [inline]
 __do_sys_cachestat mm/filemap.c:4407 [inline]
 __se_sys_cachestat+0x795/0xbb0 mm/filemap.c:4372
 do_syscall_x64 arch/x86/entry/common.c:52 [inline]
 do_syscall_64+0xf3/0x230 arch/x86/entry/common.c:83
 entry_SYSCALL_64_after_hwframe+0x77/0x7f
RIP: 0033:0x7ff329e7d0a9
Code: 28 00 00 00 75 05 48 83 c4 28 c3 e8 e1 20 00 00 90 48 89 f8 48 89 f7 48 89 d6 48 89 ca 4d 89 c2 4d 89 c8 4c 8b 4c 24 08 0f 05 <48> 3d 01 f0 ff ff 73 01 c3 48 c7 c1 b0 ff ff ff f7 d8 64 89 01 48
RSP: 002b:00007ff32ac600c8 EFLAGS: 00000246 ORIG_RAX: 00000000000001c3
RAX: ffffffffffffffda RBX: 00007ff329fb4120 RCX: 00007ff329e7d0a9
RDX: 0000000020000080 RSI: 0000000020000040 RDI: 0000000000000005
RBP: 00007ff329eec074 R08: 0000000000000000 R09: 0000000000000000
R10: 0000000000000000 R11: 0000000000000246 R12: 0000000000000000
R13: 000000000000006e R14: 00007ff329fb4120 R15: 00007ffd3e0ff4a8
 </TASK>


---
This report is generated by a bot. It may contain errors.
See https://goo.gl/tpsmEJ for more information about syzbot.
syzbot engineers can be reached at syzkaller@googlegroups.com.

syzbot will keep track of this issue. See:
https://goo.gl/tpsmEJ#status for how to communicate with syzbot.

If the report is already addressed, let syzbot know by replying with:
#syz fix: exact-commit-title

If you want to overwrite report's subsystems, reply with:
#syz set subsystems: new-subsystem
(See the list of subsystem names on the web dashboard)

If the report is a duplicate of another one, reply with:
#syz dup: exact-subject-of-another-report

If you want to undo deduplication, reply with:
#syz undup
.

Date: Thu, 27 Jun 2024 15:08:03 +0100
From: Mark Brown <broonie@kernel.org>
To: Christian Brauner <brauner@kernel.org>
Cc: Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
	Linux Next Mailing List <linux-next@vger.kernel.org>
Subject: linux-next: build failure after merge of the vfs-brauner tree
Message-ID: <Zn1yQ-UFBgBO6aSB@sirena.org.uk>
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha512;
	protocol="application/pgp-signature"; boundary="dn7yy8pjyha1XKaJ"
Content-Disposition: inline
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1260937 org.kernel.vger.linux-next:61948
Newsgroups: org.kernel.vger.linux-kernel,org.kernel.vger.linux-next
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail


--dn7yy8pjyha1XKaJ
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline

Hi all,

After merging the vfs-brauner tree, today's linux-next build
(x86_64 allmodconfig) failed like this:

/tmp/next/build/fs/namei.c: In function 'may_create_in_sticky':
/tmp/next/build/fs/namei.c:1248:13: error: unused variable 'ret' [-Werror=unused-variable]
 1248 |         int ret;
      |             ^~~
cc1: all warnings being treated as errors

Caused by commit

  509e4c1542f400 ("fs: reflow may_create_in_sticky()")

I have used the tree from 202406026 instead.

--dn7yy8pjyha1XKaJ
Content-Type: application/pgp-signature; name="signature.asc"

-----BEGIN PGP SIGNATURE-----

iQEzBAABCgAdFiEEreZoqmdXGLWf4p/qJNaLcl1Uh9AFAmZ9ckIACgkQJNaLcl1U
h9BAaAf7BNr7RN1n8X/czxrDBrK1KlCS5C2Xc9rFw6SXKXUbjwW4mfJs3MB0mAC+
kjPABSuPy4eHGjV1n+VkrC8nPtUsETt1nRYU9INF6qdFTXo/2Hy1qCaxo+Ss4pKk
ymYQGNNmb61RC3RfVuq5PAhlwRWBubMyNAynVMomE0Bx+AlSof4JlyNrZ94fZtat
3U6oT1qzfW58ciiZobKJhpSw3eA6SzFUg1z7RhGRMcMzwr4MYXW7FpbE5ZocezH3
LDm45njYQTKmibLhCNAcJAZxorXVuvvOC0yCgeaAKNcVHTsjuxjw220XzmP3gOJi
Thxkx1Ucot//BEXXZdCURM6MWz/FEw==
=pU2S
-----END PGP SIGNATURE-----

--dn7yy8pjyha1XKaJ--
.

From: Danielle Ratson <danieller@nvidia.com>
To: <netdev@vger.kernel.org>
CC: <davem@davemloft.net>, <edumazet@google.com>, <kuba@kernel.org>,
	<pabeni@redhat.com>, <corbet@lwn.net>, <linux@armlinux.org.uk>,
	<sdf@google.com>, <kory.maincent@bootlin.com>,
	<maxime.chevallier@bootlin.com>, <vladimir.oltean@nxp.com>,
	<przemyslaw.kitszel@intel.com>, <ahmed.zaki@intel.com>,
	<richardcochran@gmail.com>, <shayagr@amazon.com>, <paul.greenwalt@intel.com>,
	<jiri@resnulli.us>, <linux-doc@vger.kernel.org>,
	<linux-kernel@vger.kernel.org>, <mlxsw@nvidia.com>, <idosch@nvidia.com>,
	<petrm@nvidia.com>, Danielle Ratson <danieller@nvidia.com>
Subject: [PATCH net-next v8 0/9] Add ability to flash modules' firmware
Date: Thu, 27 Jun 2024 17:08:47 +0300
Message-ID: <20240627140857.1398100-1-danieller@nvidia.com>
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1260940 org.kernel.vger.netdev:355183
Newsgroups: org.kernel.vger.linux-kernel,org.kernel.vger.linux-doc,org.kernel.vger.netdev
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

CMIS compliant modules such as QSFP-DD might be running a firmware that
can be updated in a vendor-neutral way by exchanging messages between
the host and the module as described in section 7.2.2 of revision
4.0 of the CMIS standard.

According to the CMIS standard, the firmware update process is done
using a CDB commands sequence.

CDB (Command Data Block Message Communication) reads and writes are
performed on memory map pages 9Fh-AFh according to the CMIS standard,
section 8.12 of revision 4.0.

Add a pair of new ethtool messages that allow:

* User space to trigger firmware update of transceiver modules

* The kernel to notify user space about the progress of the process

The user interface is designed to be asynchronous in order to avoid RTNL
being held for too long and to allow several modules to be updated
simultaneously. The interface is designed with CMIS compliant modules in
mind, but kept generic enough to accommodate future use cases, if these
arise.

The kernel interface that will implement the firmware update using CDB
command will include 2 layers that will be added under ethtool:

* The upper layer that will be triggered from the module layer, is
 cmis_ fw_update.
* The lower one is cmis_cdb.

In the future there might be more operations to implement using CDB
commands. Therefore, the idea is to keep the cmis_cdb interface clean and
the cmis_fw_update specific to the cdb commands handling it.

The communication between the kernel and the driver will be done using
two ethtool operations that enable reading and writing the transceiver
module EEPROM.
The operation ethtool_ops::get_module_eeprom_by_page, that is already
implemented, will be used for reading from the EEPROM the CDB reply,
e.g. reading module setting, state, etc.
The operation ethtool_ops::set_module_eeprom_by_page, that is added in
the current patchset, will be used for writing to the EEPROM the CDB
command such as start firmware image, run firmware image, etc.

Therefore in order for a driver to implement module flashing, that
driver needs to implement the two functions mentioned above.

Patchset overview:
Patch #1-#2: Implement the EEPROM writing in mlxsw.
Patch #3: Define the interface between the kernel and user space.
Patch #4: Add ability to notify the flashing firmware progress.
Patch #5: Veto operations during flashing.
Patch #6: Add extended compliance codes.
Patch #7: Add the cdb layer.
Patch #8: Add the fw_update layer.
Patch #9: Add ability to flash transceiver modules' firmware.

v8:
	Patch #7:
	* In the ethtool_cmis_wait_for_cond() evaluate the condition once more
	  to decide if the error code should be -ETIMEDOUT or something else.
	* s/netdev_err/netdev_err_once.

v7:
	Patch #4:
		* Return -ENOMEM instead of PTR_ERR(attr) on
		  ethnl_module_fw_flash_ntf_put_err().
	Patch #9:
		* Fix Warning for not unlocking the spin_lock in the error flow
          	  on module_flash_fw_work_list_add().
		* Avoid the fall-through on ethnl_sock_priv_destroy().

v6:
	* Squash some of the last patch to patch #5 and patch #9.
	Patch #3:
		* Add paragraph in .rst file.
	Patch #4:
		* Reserve '1' more place on SKB for NUL terminator in
		  the error message string.
		* Add more prints on error flow, re-write the printing
		  function and add ethnl_module_fw_flash_ntf_put_err().
		* Change the communication method so notification will be
		  sent in unicast instead of multicast.
		* Add new 'struct ethnl_module_fw_flash_ntf_params' that holds
		  the relevant info for unicast communication and use it to
		  send notification to the specific socket.
		* s/nla_put_u64_64bit/nla_put_uint/
	Patch #7:
		* In ethtool_cmis_cdb_init(), Use 'const' for the 'params'
		  parameter.
	Patch #8:
		* Add a list field to struct ethtool_module_fw_flash for
		  module_fw_flash_work_list that will be presented in the next
		  patch.
		* Move ethtool_cmis_fw_update() cleaning to a new function that
		  will be represented in the next patch.
		* Move some of the fields in struct ethtool_module_fw_flash to
		  a separate struct, so ethtool_cmis_fw_update() will get only
		  the relevant parameters for it.
		* Edit the relevant functions to get the relevant params for
		  them.
		* s/CMIS_MODULE_READY_MAX_DURATION_USEC/CMIS_MODULE_READY_MAX_DURATION_MSEC
	Patch #9:
		* Add a paragraph in the commit message.
		* Rename labels in module_flash_fw_schedule().
		* Add info to genl_sk_priv_*() and implement the relevant
		  callbacks, in order to handle properly a scenario of closing
		  the socket from user space before the work item was ended.
		* Add a list the holds all the ethtool_module_fw_flash struct
		  that corresponds to the in progress work items.
		* Add a new enum for the socket types.
		* Use both above to identify a flashing socket, add it to the
		  list and when closing socket affect only the flashing type.
		* Create a new function that will get the work item instead of
		  ethtool_cmis_fw_update().
		* Edit the relevant functions to get the relevant params for
		  them.
		* The new function will call the old ethtool_cmis_fw_update(),
		  and do the cleaning, so the existence of the list should be
		  completely isolated in module.c.

Danielle Ratson (7):
  ethtool: Add an interface for flashing transceiver modules' firmware
  ethtool: Add flashing transceiver modules' firmware notifications
    ability
  ethtool: Veto some operations during firmware flashing process
  net: sfp: Add more extended compliance codes
  ethtool: cmis_cdb: Add a layer for supporting CDB commands
  ethtool: cmis_fw_update: add a layer for supporting firmware update
    using CDB
  ethtool: Add ability to flash transceiver modules' firmware

Ido Schimmel (2):
  ethtool: Add ethtool operation to write to a transceiver module EEPROM
  mlxsw: Implement ethtool operation to write to a transceiver module
    EEPROM

 Documentation/netlink/specs/ethtool.yaml      |  55 ++
 Documentation/networking/ethtool-netlink.rst  |  70 ++
 .../net/ethernet/mellanox/mlxsw/core_env.c    |  57 ++
 .../net/ethernet/mellanox/mlxsw/core_env.h    |   6 +
 drivers/net/ethernet/mellanox/mlxsw/minimal.c |  15 +
 .../mellanox/mlxsw/spectrum_ethtool.c         |  15 +
 include/linux/ethtool.h                       |  20 +-
 include/linux/netdevice.h                     |   4 +-
 include/linux/sfp.h                           |   6 +
 include/uapi/linux/ethtool.h                  |  18 +
 include/uapi/linux/ethtool_netlink.h          |  19 +
 net/ethtool/Makefile                          |   2 +-
 net/ethtool/cmis.h                            | 124 ++++
 net/ethtool/cmis_cdb.c                        | 602 ++++++++++++++++++
 net/ethtool/cmis_fw_update.c                  | 399 ++++++++++++
 net/ethtool/eeprom.c                          |   6 +
 net/ethtool/ioctl.c                           |  12 +
 net/ethtool/module.c                          | 394 ++++++++++++
 net/ethtool/module_fw.h                       |  75 +++
 net/ethtool/netlink.c                         |  56 ++
 net/ethtool/netlink.h                         |  16 +
 tools/net/ynl/Makefile.deps                   |   3 +-
 22 files changed, 1963 insertions(+), 11 deletions(-)
 create mode 100644 net/ethtool/cmis.h
 create mode 100644 net/ethtool/cmis_cdb.c
 create mode 100644 net/ethtool/cmis_fw_update.c
 create mode 100644 net/ethtool/module_fw.h

-- 
2.45.0

.

From: Richard Fitzgerald <rf@opensource.cirrus.com>
To: <broonie@kernel.org>
CC: <linux-kernel@vger.kernel.org>, <patches@opensource.cirrus.com>,
        <alsa-devel@alsa-project.org>, <linux-sound@vger.kernel.org>
Subject: [PATCH 0/4] firmware: cs_dsp: Add check to prevent overrunning the firmware file
Date: Thu, 27 Jun 2024 15:14:28 +0100
Message-ID: <20240627141432.93056-1-rf@opensource.cirrus.com>
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1260953
Newsgroups: org.kernel.vger.linux-kernel,org.kernel.vger.linux-sound
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

This series fixes various missing length checks when processing
variable-length data from the firmware file. These could have
caused overrunning the end of firmware file buffer, or wild
pointer accesses.

Richard Fitzgerald (4):
  firmware: cs_dsp: Fix overflow checking of wmfw header
  firmware: cs_dsp: Return error if block header overflows file
  firmware: cs_dsp: Validate payload length before processing block
  firmware: cs_dsp: Prevent buffer overrun when processing V2 alg
    headers

 drivers/firmware/cirrus/cs_dsp.c | 223 ++++++++++++++++++++++---------
 1 file changed, 160 insertions(+), 63 deletions(-)

-- 
2.39.2

.

Return-Path: <linux-riscv-bounces+linux-riscv=archiver.kernel.org@lists.infradead.org>
From: Celeste Liu <coelacanthushex@gmail.com>
To: linux-riscv@lists.infradead.org,
	=?UTF-8?q?Bj=C3=B6rn=20T=C3=B6pel?= <bjorn@rivosinc.com>
Cc: linux-kernel@vger.kernel.org,
	"Dmitry V . Levin" <ldv@strace.io>,
	Guo Ren <guoren@kernel.org>,
	Palmer Dabbelt <palmer@rivosinc.com>,
	Emil Renner Berthing <emil.renner.berthing@canonical.com>,
	Felix Yan <felixonmars@archlinux.org>,
	Ruizhe Pan <c141028@gmail.com>,
	Celeste Liu <CoelacanthusHex@gmail.com>,
	stable@vger.kernel.org
Subject: [PATCH v2] riscv: entry: always initialize regs->a0 to -ENOSYS
Date: Thu, 27 Jun 2024 22:23:39 +0800
Message-ID: <20240627142338.5114-2-CoelacanthusHex@gmail.com>
MIME-Version: 1.0
X-BeenThere: linux-riscv@lists.infradead.org
X-Mailman-Version: 2.1.34
List-Id: <linux-riscv.lists.infradead.org>
List-Unsubscribe: <http://lists.infradead.org/mailman/options/linux-riscv>,
 <mailto:linux-riscv-request@lists.infradead.org?subject=unsubscribe>
List-Archive: <http://lists.infradead.org/pipermail/linux-riscv/>
List-Post: <mailto:linux-riscv@lists.infradead.org>
List-Help: <mailto:linux-riscv-request@lists.infradead.org?subject=help>
List-Subscribe: <http://lists.infradead.org/mailman/listinfo/linux-riscv>,
 <mailto:linux-riscv-request@lists.infradead.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Sender: "linux-riscv" <linux-riscv-bounces@lists.infradead.org>
Errors-To: linux-riscv-bounces+linux-riscv=archiver.kernel.org@lists.infradead.org
Xref: photonic.trudheim.com org.infradead.lists.linux-riscv:79113 org.kernel.vger.linux-kernel:1260958
Newsgroups: org.infradead.lists.linux-riscv,org.kernel.vger.linux-kernel,org.kernel.vger.stable
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

T3RoZXJ3aXNlIHdoZW4gdGhlIHRyYWNlciBjaGFuZ2VzIHN5c2NhbGwgbnVtYmVyIHRvIC0xLCB0
aGUga2VybmVsIGZhaWxzCnRvIGluaXRpYWxpemUgYTAgd2l0aCAtRU5PU1lTIGFuZCBzdWJzZXF1
ZW50bHkgZmFpbHMgdG8gcmV0dXJuIHRoZSBlcnJvcgpjb2RlIG9mIHRoZSBmYWlsZWQgc3lzY2Fs
bCB0byB1c2Vyc3BhY2UuIEZvciBleGFtcGxlLCBpdCB3aWxsIGJyZWFrCnN0cmFjZSBzeXNjYWxs
IHRhbXBlcmluZy4KCkZpeGVzOiA1MjQ0OWMxN2JkZDEgKCJyaXNjdjogZW50cnk6IHNldCBhMCA9
IC1FTk9TWVMgb25seSB3aGVuIHN5c2NhbGwgIT0gLTEiKQpSZXBvcnRlZC1ieTogIkRtaXRyeSBW
LiBMZXZpbiIgPGxkdkBzdHJhY2UuaW8+ClJldmlld2VkLWJ5OiBCasO2cm4gVMO2cGVsIDxiam9y
bkByaXZvc2luYy5jb20+CkNjOiBzdGFibGVAdmdlci5rZXJuZWwub3JnClNpZ25lZC1vZmYtYnk6
IENlbGVzdGUgTGl1IDxDb2VsYWNhbnRodXNIZXhAZ21haWwuY29tPgotLS0KIGFyY2gvcmlzY3Yv
a2VybmVsL3RyYXBzLmMgfCA0ICsrLS0KIDEgZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKyks
IDIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvYXJjaC9yaXNjdi9rZXJuZWwvdHJhcHMuYyBi
L2FyY2gvcmlzY3Yva2VybmVsL3RyYXBzLmMKaW5kZXggMDVhMTZiMWYwYWVlLi41MWViZmQyM2Uw
MDcgMTAwNjQ0Ci0tLSBhL2FyY2gvcmlzY3Yva2VybmVsL3RyYXBzLmMKKysrIGIvYXJjaC9yaXNj
di9rZXJuZWwvdHJhcHMuYwpAQCAtMzE5LDYgKzMxOSw3IEBAIHZvaWQgZG9fdHJhcF9lY2FsbF91
KHN0cnVjdCBwdF9yZWdzICpyZWdzKQogCiAJCXJlZ3MtPmVwYyArPSA0OwogCQlyZWdzLT5vcmln
X2EwID0gcmVncy0+YTA7CisJCXJlZ3MtPmEwID0gLUVOT1NZUzsKIAogCQlyaXNjdl92X3ZzdGF0
ZV9kaXNjYXJkKHJlZ3MpOwogCkBAIC0zMjgsOCArMzI5LDcgQEAgdm9pZCBkb190cmFwX2VjYWxs
X3Uoc3RydWN0IHB0X3JlZ3MgKnJlZ3MpCiAKIAkJaWYgKHN5c2NhbGwgPj0gMCAmJiBzeXNjYWxs
IDwgTlJfc3lzY2FsbHMpCiAJCQlzeXNjYWxsX2hhbmRsZXIocmVncywgc3lzY2FsbCk7Ci0JCWVs
c2UgaWYgKHN5c2NhbGwgIT0gLTEpCi0JCQlyZWdzLT5hMCA9IC1FTk9TWVM7CisKIAkJLyoKIAkJ
ICogVWx0aW1hdGVseSwgdGhpcyB2YWx1ZSB3aWxsIGdldCBsaW1pdGVkIGJ5IEtTVEFDS19PRkZT
RVRfTUFYKCksCiAJCSAqIHNvIHRoZSBtYXhpbXVtIHN0YWNrIG9mZnNldCBpcyAxayBieXRlcyAo
MTAgYml0cykuCi0tIAoyLjQ1LjIKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fXwpsaW51eC1yaXNjdiBtYWlsaW5nIGxpc3QKbGludXgtcmlzY3ZAbGlzdHMu
aW5mcmFkZWFkLm9yZwpodHRwOi8vbGlzdHMuaW5mcmFkZWFkLm9yZy9tYWlsbWFuL2xpc3RpbmZv
L2xpbnV4LXJpc2N2Cg==
.

From: Li Lingfeng <lilingfeng@huaweicloud.com>
To: tj@kernel.org,
	josef@toxicpanda.com,
	hch@lst.de,
	axboe@kernel.dk,
	mkoutny@suse.com
Cc: cgroups@vger.kernel.org,
	linux-block@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	yangerkun@huawei.com,
	yukuai1@huaweicloud.com,
	houtao1@huawei.com,
	yi.zhang@huawei.com,
	lilingfeng@huaweicloud.com,
	lilingfeng3@huawei.com
Subject: [PATCH v2] block: flush all throttled bios when deleting the cgroup
Date: Thu, 27 Jun 2024 22:26:06 +0800
Message-Id: <20240627142606.3709394-1-lilingfeng@huaweicloud.com>
X-Mailing-List: linux-block@vger.kernel.org
List-Id: <linux-block.vger.kernel.org>
List-Subscribe: <mailto:linux-block+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-block+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Xref: photonic.trudheim.com org.kernel.vger.linux-block:93575 org.kernel.vger.linux-kernel:1260960
Newsgroups: org.kernel.vger.linux-block,org.kernel.vger.cgroups,org.kernel.vger.linux-kernel
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

From: Li Lingfeng <lilingfeng3@huawei.com>

When a process migrates to another cgroup and the original cgroup is deleted,
the restrictions of throttled bios cannot be removed. If the restrictions
are set too low, it will take a long time to complete these bios.

Refer to the process of deleting a disk to remove the restrictions and
issue bios when deleting the cgroup.

This makes difference on the behavior of throttled bios:
Before: the limit of the throttled bios can't be changed and the bios will
complete under this limit;
Now: the limit will be canceled and the throttled bios will be flushed
immediately.

References:
https://lore.kernel.org/r/20220318130144.1066064-4-ming.lei@redhat.com

Signed-off-by: Li Lingfeng <lilingfeng3@huawei.com>
---
  v1->v2:
    Use "flush" instead of "cancel";
    Add description of the affect of throttled bios.
 block/blk-throttle.c | 68 ++++++++++++++++++++++++++++----------------
 1 file changed, 44 insertions(+), 24 deletions(-)

diff --git a/block/blk-throttle.c b/block/blk-throttle.c
index c1bf73f8c75d..a0e5b28951ca 100644
--- a/block/blk-throttle.c
+++ b/block/blk-throttle.c
@@ -1534,6 +1534,42 @@ static void throtl_shutdown_wq(struct request_queue *q)
 	cancel_work_sync(&td->dispatch_work);
 }
 
+static void tg_cancel_bios(struct throtl_grp *tg)
+{
+	struct throtl_service_queue *sq = &tg->service_queue;
+
+	if (tg->flags & THROTL_TG_CANCELING)
+		return;
+	/*
+	 * Set the flag to make sure throtl_pending_timer_fn() won't
+	 * stop until all throttled bios are dispatched.
+	 */
+	tg->flags |= THROTL_TG_CANCELING;
+
+	/*
+	 * Do not dispatch cgroup without THROTL_TG_PENDING or cgroup
+	 * will be inserted to service queue without THROTL_TG_PENDING
+	 * set in tg_update_disptime below. Then IO dispatched from
+	 * child in tg_dispatch_one_bio will trigger double insertion
+	 * and corrupt the tree.
+	 */
+	if (!(tg->flags & THROTL_TG_PENDING))
+		return;
+
+	/*
+	 * Update disptime after setting the above flag to make sure
+	 * throtl_select_dispatch() won't exit without dispatching.
+	 */
+	tg_update_disptime(tg);
+
+	throtl_schedule_pending_timer(sq, jiffies + 1);
+}
+
+static void throtl_pd_offline(struct blkg_policy_data *pd)
+{
+	tg_cancel_bios(pd_to_tg(pd));
+}
+
 struct blkcg_policy blkcg_policy_throtl = {
 	.dfl_cftypes		= throtl_files,
 	.legacy_cftypes		= throtl_legacy_files,
@@ -1541,6 +1577,7 @@ struct blkcg_policy blkcg_policy_throtl = {
 	.pd_alloc_fn		= throtl_pd_alloc,
 	.pd_init_fn		= throtl_pd_init,
 	.pd_online_fn		= throtl_pd_online,
+	.pd_offline_fn		= throtl_pd_offline,
 	.pd_free_fn		= throtl_pd_free,
 };
 
@@ -1561,32 +1598,15 @@ void blk_throtl_cancel_bios(struct gendisk *disk)
 	 */
 	rcu_read_lock();
 	blkg_for_each_descendant_post(blkg, pos_css, q->root_blkg) {
-		struct throtl_grp *tg = blkg_to_tg(blkg);
-		struct throtl_service_queue *sq = &tg->service_queue;
-
-		/*
-		 * Set the flag to make sure throtl_pending_timer_fn() won't
-		 * stop until all throttled bios are dispatched.
-		 */
-		tg->flags |= THROTL_TG_CANCELING;
-
 		/*
-		 * Do not dispatch cgroup without THROTL_TG_PENDING or cgroup
-		 * will be inserted to service queue without THROTL_TG_PENDING
-		 * set in tg_update_disptime below. Then IO dispatched from
-		 * child in tg_dispatch_one_bio will trigger double insertion
-		 * and corrupt the tree.
+		 * disk_release will call pd_offline_fn to cancel bios.
+		 * However, disk_release can't be called if someone get
+		 * the refcount of device and issued bios which are
+		 * inflight after del_gendisk.
+		 * Cancel bios here to ensure no bios are inflight after
+		 * del_gendisk.
 		 */
-		if (!(tg->flags & THROTL_TG_PENDING))
-			continue;
-
-		/*
-		 * Update disptime after setting the above flag to make sure
-		 * throtl_select_dispatch() won't exit without dispatching.
-		 */
-		tg_update_disptime(tg);
-
-		throtl_schedule_pending_timer(sq, jiffies + 1);
+		tg_cancel_bios(blkg_to_tg(blkg));
 	}
 	rcu_read_unlock();
 	spin_unlock_irq(&q->queue_lock);
-- 
2.39.2

.

From: Frank Li <Frank.Li@nxp.com>
To: krzk@kernel.org
Cc: Frank.Li@nxp.com,
	conor+dt@kernel.org,
	devicetree@vger.kernel.org,
	imx@lists.linux.dev,
	krzk+dt@kernel.org,
	linux-kernel@vger.kernel.org,
	robh@kernel.org,
	tglx@linutronix.de
Subject: [PATCH v2 1/1] dt-bindings: interrupt-controller: convert fsl,ls-scfg-msi to yaml
Date: Thu, 27 Jun 2024 10:42:07 -0400
Message-Id: <20240627144207.4003708-1-Frank.Li@nxp.com>
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1260982
Newsgroups: org.kernel.vger.linux-kernel,dev.linux.lists.imx,org.kernel.vger.linux-devicetree
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

Convert device tree binding fsl,ls-scfg-msi to yaml format.

Additional changes:
- Include gic.h and use predefined macro in example.
- Remove label in example.
- Change node name to interrupt-controller in example.
- Fix error in example.
- ls1046a allow 4 irqs, other platform only 1 irq.
- Add $ref: msi-controller.yaml
- Add #msi-cells.

Signed-off-by: Frank Li <Frank.Li@nxp.com>
---
Change from v1 to v2
- sort compatible string
- add ref to msi-controller.yaml
- add msi-cells
- add interrupts description
- remove msi-controller, which already in msi-controller.yaml
---
 .../interrupt-controller/fsl,ls-msi.yaml      | 79 +++++++++++++++++++
 .../interrupt-controller/fsl,ls-scfg-msi.txt  | 30 -------
 2 files changed, 79 insertions(+), 30 deletions(-)
 create mode 100644 Documentation/devicetree/bindings/interrupt-controller/fsl,ls-msi.yaml
 delete mode 100644 Documentation/devicetree/bindings/interrupt-controller/fsl,ls-scfg-msi.txt

diff --git a/Documentation/devicetree/bindings/interrupt-controller/fsl,ls-msi.yaml b/Documentation/devicetree/bindings/interrupt-controller/fsl,ls-msi.yaml
new file mode 100644
index 0000000000000..9ba8d4d73351b
--- /dev/null
+++ b/Documentation/devicetree/bindings/interrupt-controller/fsl,ls-msi.yaml
@@ -0,0 +1,79 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/interrupt-controller/fsl,ls-msi.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Freescale Layerscape SCFG PCIe MSI controller
+
+description: |
+  This interrupt controller hardware is a second level interrupt controller that
+  is hooked to a parent interrupt controller: e.g: ARM GIC for ARM-based
+  platforms. If interrupt-parent is not provided, the default parent interrupt
+  controller will be used.
+
+  Each PCIe node needs to have property msi-parent that points to
+  MSI controller node
+
+maintainers:
+  - Frank Li <Frank.Li@nxp.com>
+
+properties:
+  compatible:
+    enum:
+      - fsl,ls1012a-msi
+      - fsl,ls1021a-msi
+      - fsl,ls1043a-msi
+      - fsl,ls1043a-v1.1-msi
+      - fsl,ls1046a-msi
+
+  reg:
+    maxItems: 1
+
+  '#msi-cells':
+    const: 1
+
+  interrupts:
+    items:
+      - description: Shared MSI interrupt group 0
+      - description: Shared MSI interrupt group 1
+      - description: Shared MSI interrupt group 2
+      - description: Shared MSI interrupt group 3
+    minItems: 1
+
+required:
+  - compatible
+  - reg
+  - msi-controller
+  - interrupts
+
+allOf:
+  - $ref: msi-controller.yaml
+  - if:
+      properties:
+        compatible:
+          contains:
+            enum:
+              - fsl,ls1046a-msi
+    then:
+      properties:
+        interrupts:
+          minItems: 4
+    else:
+      properties:
+        interrupts:
+          maxItems: 1
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/interrupt-controller/arm-gic.h>
+
+    interrupt-controller@1571000 {
+        compatible = "fsl,ls1043a-msi";
+        reg = <0x1571000 0x8>;
+        msi-controller;
+        #msi-cells = <1>;
+        interrupts = <GIC_SPI 116 IRQ_TYPE_LEVEL_HIGH>;
+    };
diff --git a/Documentation/devicetree/bindings/interrupt-controller/fsl,ls-scfg-msi.txt b/Documentation/devicetree/bindings/interrupt-controller/fsl,ls-scfg-msi.txt
deleted file mode 100644
index 454ce04d67874..0000000000000
--- a/Documentation/devicetree/bindings/interrupt-controller/fsl,ls-scfg-msi.txt
+++ /dev/null
@@ -1,30 +0,0 @@
-* Freescale Layerscape SCFG PCIe MSI controller
-
-Required properties:
-
-- compatible: should be "fsl,<soc-name>-msi" to identify
-	      Layerscape PCIe MSI controller block such as:
-              "fsl,ls1021a-msi"
-              "fsl,ls1043a-msi"
-              "fsl,ls1046a-msi"
-              "fsl,ls1043a-v1.1-msi"
-              "fsl,ls1012a-msi"
-- msi-controller: indicates that this is a PCIe MSI controller node
-- reg: physical base address of the controller and length of memory mapped.
-- interrupts: an interrupt to the parent interrupt controller.
-
-This interrupt controller hardware is a second level interrupt controller that
-is hooked to a parent interrupt controller: e.g: ARM GIC for ARM-based
-platforms. If interrupt-parent is not provided, the default parent interrupt
-controller will be used.
-Each PCIe node needs to have property msi-parent that points to
-MSI controller node
-
-Examples:
-
-	msi1: msi-controller@1571000 {
-		compatible = "fsl,ls1043a-msi";
-		reg = <0x0 0x1571000 0x0 0x8>,
-		msi-controller;
-		interrupts = <0 116 0x4>;
-	};
-- 
2.34.1

.

From: srinivas.kandagatla@linaro.org
Subject: [PATCH v2 0/6] ASoC: codecs: wsa88xx: add support for static port
 mapping.
Date: Thu, 27 Jun 2024 15:44:37 +0100
Message-Id: <20240626-port-map-v2-0-6cc1c5608cdd@linaro.org>
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit
To: Banajit Goswami <bgoswami@quicinc.com>, 
 Liam Girdwood <lgirdwood@gmail.com>, Mark Brown <broonie@kernel.org>, 
 Rob Herring <robh@kernel.org>, Krzysztof Kozlowski <krzk+dt@kernel.org>, 
 Conor Dooley <conor+dt@kernel.org>, Jaroslav Kysela <perex@perex.cz>, 
 Takashi Iwai <tiwai@suse.com>, Bjorn Andersson <andersson@kernel.org>, 
 Konrad Dybcio <konrad.dybcio@linaro.org>
Cc: linux-arm-msm@vger.kernel.org, 
 Neil Armstrong <neil.armstrong@linaro.org>, alsa-devel@alsa-project.org, 
 linux-sound@vger.kernel.org, devicetree@vger.kernel.org, 
 linux-kernel@vger.kernel.org, 
 Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>, 
 Srinivas Kandagatla <srinivas.kandagatla@linaro.org>, 
 Manikantan R <quic_manrav@quicinc.com>
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1260987
Newsgroups: org.kernel.vger.linux-kernel,org.alsa-project.alsa-devel,org.kernel.vger.linux-arm-msm,org.kernel.vger.linux-devicetree,org.kernel.vger.linux-sound
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

Existing way of allocating soundwire master ports on Qualcommm platforms is
dynamic, and in linear order starting from 1 to MAX_PORTS.
This will work as long as soundwire device ports are 1:1 mapped
linearly. However on most Qcom SoCs like SM8550, SM8650, x1e80100, these
are NOT mapped in that order.

The result of this is that only one speaker among the pair of speakers
is always silent, With recent changes for WSA codec to support codec
versions and along with these patches we are able to get all speakers
working on these SoCs.

Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
---
Changes in v2:
- used dev_dbg instead of dev_info
- Link to v1: https://lore.kernel.org/r/20240626-port-map-v1-0-bd8987d2b332@linaro.org

---
Manikantan R (1):
      ASoC: dt-bindings: wsa883x: Document port mapping property

Srinivas Kandagatla (5):
      ASoC: codecs: wsa883x: parse port-mapping information
      ASoC: dt-bindings: wsa8840: Document port mapping property
      ASoC: codecs: wsa884x: parse port-mapping information
      arm64: dts: x1e80100-crd: fix wsa soundwire port mapping
      arm64: dts: x1e80100-qcp: fix wsa soundwire port mapping

 Documentation/devicetree/bindings/sound/qcom,wsa883x.yaml | 8 ++++++++
 Documentation/devicetree/bindings/sound/qcom,wsa8840.yaml | 8 ++++++++
 arch/arm64/boot/dts/qcom/x1e80100-crd.dts                 | 4 ++++
 arch/arm64/boot/dts/qcom/x1e80100-qcp.dts                 | 2 ++
 sound/soc/codecs/wsa883x.c                                | 8 ++++++++
 sound/soc/codecs/wsa884x.c                                | 8 ++++++++
 6 files changed, 38 insertions(+)
---
base-commit: 9935be184a55dd84fc3275094f2df095491f6ea1
change-id: 20240626-port-map-ef50c3304d4a

Best regards,
-- 
Srinivas Kandagatla <srinivas.kandagatla@linaro.org>

.

From: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
Subject: [PATCH v4 0/7] usb: typec: ucsi: rework glue driver interface
Date: Thu, 27 Jun 2024 17:44:39 +0300
Message-Id: <20240627-ucsi-rework-interface-v4-0-289ddc6874c7@linaro.org>
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit
To: Heikki Krogerus <heikki.krogerus@linux.intel.com>, 
 Greg Kroah-Hartman <gregkh@linuxfoundation.org>, 
 Maxime Coquelin <mcoquelin.stm32@gmail.com>, 
 Alexandre Torgue <alexandre.torgue@foss.st.com>
Cc: Nikita Travkin <nikita@trvn.ru>, 
 Neil Armstrong <neil.armstrong@linaro.org>, linux-usb@vger.kernel.org, 
 linux-kernel@vger.kernel.org, linux-stm32@st-md-mailman.stormreply.com, 
 linux-arm-kernel@lists.infradead.org
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1260988
Newsgroups: org.kernel.vger.linux-kernel,org.infradead.lists.linux-arm-kernel,org.kernel.vger.linux-usb
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

The interface between UCSI and the glue driver is very low-level. It
allows reading the UCSI data from any offset (but in reality the UCSI
driver reads only VERSION, CCI an MESSAGE_IN data). All event handling
is to be done by the glue driver (which already resulted in several
similar-but-slightly different implementations). It leaves no place to
optimize the write-read-read sequence for the command execution (which
might be beneficial for some of the drivers), etc.

The patchseries attempts to restructure the UCSI glue driver interface
in order to provide sensible operations instead of a low-level read /
write calls.

If this approach is found to be acceptable, I plan to further rework the
command interface, moving reading CCI and MESSAGE_IN to the common
control code, which should simplify driver's implementation and remove
necessity to split quirks between sync_control and read_message_in e.g.
as implemented in the ucsi_ccg.c.

Note, the series was tested only on the ucsi_glink platforms. Further
testing is appreciated.

Depends: [1], [2]

[1] https://lore.kernel.org/linux-usb/20240612124656.2305603-1-fabrice.gasnier@foss.st.com/

[2] https://lore.kernel.org/linux-usb/20240621-ucsi-yoga-ec-driver-v8-1-e03f3536b8c6@linaro.org/

Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
---
Changes in v4:
- Rebased on top of Greg's tree to resolve conflicts.
- Link to v3: https://lore.kernel.org/r/20240625-ucsi-rework-interface-v3-0-7a6c8e17be3a@linaro.org

Changes in v3:
- Rebased on top of the next to resolve conflicts with the merge LG Gram
  patch (Heikki)
- Link to v2: https://lore.kernel.org/r/20240621-ucsi-rework-interface-v2-0-a399ff96bf88@linaro.org

Changes in v2:
- Dropped the RFC prefix
- Rebased on top of the fixed STM32 patch
- Included the pending Yoga C630 driver into the cleanup.
- Link to v1: https://lore.kernel.org/r/20240603-ucsi-rework-interface-v1-0-99a6d544cec8@linaro.org

---
Dmitry Baryshkov (7):
      usb: typec: ucsi: move ucsi_acknowledge() from ucsi_read_error()
      usb: typec: ucsi: simplify command sending API
      usb: typec: ucsi: split read operation
      usb: typec: ucsi: rework command execution functions
      usb: typec: ucsi: inline ucsi_read_message_in
      usb: typec: ucsi: extract common code for command handling
      usb: typec: ucsi: reorder operations in ucsi_run_command()

 drivers/usb/typec/ucsi/ucsi.c           | 221 +++++++++++++++++---------------
 drivers/usb/typec/ucsi/ucsi.h           |  26 ++--
 drivers/usb/typec/ucsi/ucsi_acpi.c      | 127 +++++++++---------
 drivers/usb/typec/ucsi/ucsi_ccg.c       | 103 +++++++--------
 drivers/usb/typec/ucsi/ucsi_glink.c     |  74 ++++-------
 drivers/usb/typec/ucsi/ucsi_stm32g0.c   |  79 ++++--------
 drivers/usb/typec/ucsi/ucsi_yoga_c630.c | 104 +++++----------
 7 files changed, 325 insertions(+), 409 deletions(-)
---
base-commit: 878bae2ba39bdd581cbe77d8210b9a03ae172adf
change-id: 20240525-ucsi-rework-interface-5ff2264f6aec

Best regards,
-- 
Dmitry Baryshkov <dmitry.baryshkov@linaro.org>

.

From: Frank Li <Frank.Li@nxp.com>
To: krzk@kernel.org
Cc: Frank.Li@nxp.com,
	conor+dt@kernel.org,
	devicetree@vger.kernel.org,
	gregkh@linuxfoundation.org,
	imx@lists.linux.dev,
	krzk+dt@kernel.org,
	linux-kernel@vger.kernel.org,
	linux-usb@vger.kernel.org,
	robh@kernel.org
Subject: [PATCH v2 1/1] dt-bindings: usb: Convert fsl-usb to yaml
Date: Thu, 27 Jun 2024 10:48:15 -0400
Message-Id: <20240627144815.4014179-1-Frank.Li@nxp.com>
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1261005
Newsgroups: org.kernel.vger.linux-kernel,dev.linux.lists.imx,org.kernel.vger.linux-devicetree,org.kernel.vger.linux-usb
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

Convert fsl-usb binding doc to yaml format.

Additional change:
- Remove port0 and port1 from required list.
- Use common usb-drd.yaml for dr_mode property
- Keep two difference examples.
- Add interrupts to required property list.
- Remove #address-cells and #size-cells in example.
- Use predefined irq type macro.

Signed-off-by: Frank Li <Frank.Li@nxp.com>
---
Change from v1 to v2
- move phy_type after interrupt
- change file name to fsl,usb2.yaml
- remove 'fsl-usb2-dr-v2.2' from standalone compatible list
---
 .../devicetree/bindings/usb/fsl,usb2.yaml     | 95 +++++++++++++++++++
 .../devicetree/bindings/usb/fsl-usb.txt       | 81 ----------------
 2 files changed, 95 insertions(+), 81 deletions(-)
 create mode 100644 Documentation/devicetree/bindings/usb/fsl,usb2.yaml
 delete mode 100644 Documentation/devicetree/bindings/usb/fsl-usb.txt

diff --git a/Documentation/devicetree/bindings/usb/fsl,usb2.yaml b/Documentation/devicetree/bindings/usb/fsl,usb2.yaml
new file mode 100644
index 0000000000000..caedf11db2846
--- /dev/null
+++ b/Documentation/devicetree/bindings/usb/fsl,usb2.yaml
@@ -0,0 +1,95 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/usb/fsl,usb2.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Freescale SOC USB controllers
+
+maintainers:
+  - Frank Li <Frank.Li@nxp.com>
+
+description: |
+  The device node for a USB controller that is part of a Freescale
+  SOC is as described in the document "Open Firmware Recommended
+  Practice: Universal Serial Bus" with the following modifications
+  and additions.
+
+properties:
+  compatible:
+    oneOf:
+      - enum:
+          - fsl-usb2-mph
+          - fsl-usb2-dr
+      - items:
+          - enum:
+              - fsl-usb2-dr-v2.2
+              - fsl-usb2-dr-v2.5
+          - const: fsl-usb2-dr
+
+  reg:
+    maxItems: 1
+
+  interrupts:
+    maxItems: 1
+
+  phy_type:
+    $ref: /schemas/types.yaml#/definitions/string
+    enum: [ulpi, serial, utmi, utmi_wide]
+
+  port0:
+    $ref: /schemas/types.yaml#/definitions/flag
+    description:
+      Indicates port0 is connected for fsl-usb2-mph compatible controllers.
+
+  port1:
+    $ref: /schemas/types.yaml#/definitions/flag
+    description:
+      Indicates port1 is connected for "fsl-usb2-mph" compatible controllers.
+
+  fsl,invert-drvvbus:
+    $ref: /schemas/types.yaml#/definitions/flag
+    description:
+      for MPC5121 USB0 only. Indicates the
+      port power polarity of internal PHY signal DRVVBUS is inverted.
+
+  fsl,invert-pwr-fault:
+    $ref: /schemas/types.yaml#/definitions/flag
+    description:
+      for MPC5121 USB0 only. Indicates
+      the PWR_FAULT signal polarity is inverted.
+
+required:
+  - compatible
+  - reg
+  - interrupts
+  - phy_type
+
+allOf:
+  - $ref: usb-drd.yaml#
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/interrupt-controller/irq.h>
+
+    usb@22000 {
+        compatible = "fsl-usb2-mph";
+        reg = <22000 1000>;
+        interrupts = <27 IRQ_TYPE_EDGE_RISING>;
+        phy_type = "ulpi";
+        port0;
+        port1;
+    };
+
+  - |
+    #include <dt-bindings/interrupt-controller/irq.h>
+
+    usb@23000 {
+        compatible = "fsl-usb2-dr";
+        reg = <23000 1000>;
+        interrupts = <26 IRQ_TYPE_EDGE_RISING>;
+        dr_mode = "otg";
+        phy_type = "ulpi";
+    };
diff --git a/Documentation/devicetree/bindings/usb/fsl-usb.txt b/Documentation/devicetree/bindings/usb/fsl-usb.txt
deleted file mode 100644
index 0b08b006c5ead..0000000000000
--- a/Documentation/devicetree/bindings/usb/fsl-usb.txt
+++ /dev/null
@@ -1,81 +0,0 @@
-Freescale SOC USB controllers
-
-The device node for a USB controller that is part of a Freescale
-SOC is as described in the document "Open Firmware Recommended
-Practice : Universal Serial Bus" with the following modifications
-and additions :
-
-Required properties :
- - compatible : Should be "fsl-usb2-mph" for multi port host USB
-   controllers, or "fsl-usb2-dr" for dual role USB controllers
-   or "fsl,mpc5121-usb2-dr" for dual role USB controllers of MPC5121.
-   Wherever applicable, the IP version of the USB controller should
-   also be mentioned (for eg. fsl-usb2-dr-v2.2 for bsc9132).
- - phy_type : For multi port host USB controllers, should be one of
-   "ulpi", or "serial". For dual role USB controllers, should be
-   one of "ulpi", "utmi", "utmi_wide", or "serial".
- - reg : Offset and length of the register set for the device
- - port0 : boolean; if defined, indicates port0 is connected for
-   fsl-usb2-mph compatible controllers.  Either this property or
-   "port1" (or both) must be defined for "fsl-usb2-mph" compatible
-   controllers.
- - port1 : boolean; if defined, indicates port1 is connected for
-   fsl-usb2-mph compatible controllers.  Either this property or
-   "port0" (or both) must be defined for "fsl-usb2-mph" compatible
-   controllers.
- - dr_mode : indicates the working mode for "fsl-usb2-dr" compatible
-   controllers.  Can be "host", "peripheral", or "otg".  Default to
-   "host" if not defined for backward compatibility.
-
-Recommended properties :
- - interrupts : <a b> where a is the interrupt number and b is a
-   field that represents an encoding of the sense and level
-   information for the interrupt.  This should be encoded based on
-   the information in section 2) depending on the type of interrupt
-   controller you have.
-
-Optional properties :
- - fsl,invert-drvvbus : boolean; for MPC5121 USB0 only. Indicates the
-   port power polarity of internal PHY signal DRVVBUS is inverted.
- - fsl,invert-pwr-fault : boolean; for MPC5121 USB0 only. Indicates
-   the PWR_FAULT signal polarity is inverted.
-
-Example multi port host USB controller device node :
-	usb@22000 {
-		compatible = "fsl-usb2-mph";
-		reg = <22000 1000>;
-		#address-cells = <1>;
-		#size-cells = <0>;
-		interrupt-parent = <700>;
-		interrupts = <27 1>;
-		phy_type = "ulpi";
-		port0;
-		port1;
-	};
-
-Example dual role USB controller device node :
-	usb@23000 {
-		compatible = "fsl-usb2-dr";
-		reg = <23000 1000>;
-		#address-cells = <1>;
-		#size-cells = <0>;
-		interrupt-parent = <700>;
-		interrupts = <26 1>;
-		dr_mode = "otg";
-		phy = "ulpi";
-	};
-
-Example dual role USB controller device node for MPC5121ADS:
-
-	usb@4000 {
-		compatible = "fsl,mpc5121-usb2-dr";
-		reg = <0x4000 0x1000>;
-		#address-cells = <1>;
-		#size-cells = <0>;
-		interrupt-parent = < &ipic >;
-		interrupts = <44 0x8>;
-		dr_mode = "otg";
-		phy_type = "utmi_wide";
-		fsl,invert-drvvbus;
-		fsl,invert-pwr-fault;
-	};
-- 
2.34.1

.

Date: Thu, 27 Jun 2024 16:00:43 +0100
From: Mark Brown <broonie@kernel.org>
To: Dave Airlie <airlied@redhat.com>, DRI <dri-devel@lists.freedesktop.org>
Cc: Alex Deucher <alexander.deucher@amd.com>, Frank Min <Frank.Min@amd.com>,
	Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
	Linux Next Mailing List <linux-next@vger.kernel.org>
Subject: linux-next: manual merge of the drm tree with the drm-fixes tree
Message-ID: <Zn1-m_-MGxsjV9Se@sirena.org.uk>
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha512;
	protocol="application/pgp-signature"; boundary="ue3LuKhK8SGwUSeP"
Content-Disposition: inline
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1261016 org.kernel.vger.linux-next:61949
Newsgroups: org.kernel.vger.linux-kernel,org.freedesktop.lists.dri-devel,org.kernel.vger.linux-next
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail


--ue3LuKhK8SGwUSeP
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable

Hi all,

Today's linux-next merge of the drm tree got a conflict in:

  drivers/gpu/drm/amd/amdgpu/amdgpu_atomfirmware.c

between commit:

  f6f49dda49db7 ("drm/amdgpu/atomfirmware: fix parsing of vram_info")

=66rom the drm-fixes tree and commit:

  9a55c77978308 ("drm/amdgpu: fix getting vram info for gfx12")

=66rom the drm tree.

I fixed it up (see below) and can carry the fix as necessary. This
is now fixed as far as linux-next is concerned, but any non trivial
conflicts should be mentioned to your upstream maintainer when your tree
is submitted for merging.  You may also want to consider cooperating
with the maintainer of the conflicting tree to minimise any particularly
complex conflicts.

diff --cc drivers/gpu/drm/amd/amdgpu/amdgpu_atomfirmware.c
index 2e13c7c4b2b41,f932bec6e5345..0000000000000
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_atomfirmware.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_atomfirmware.c

--ue3LuKhK8SGwUSeP
Content-Type: application/pgp-signature; name="signature.asc"

-----BEGIN PGP SIGNATURE-----

iQEzBAABCgAdFiEEreZoqmdXGLWf4p/qJNaLcl1Uh9AFAmZ9fpsACgkQJNaLcl1U
h9CRsAf+LW2q7qC2ENz5xQFPQCynOBKV+Y8tZnTt/hPYgOCAVPjdfE9Xf9jOheq1
8TsaTh6EnBEQgfvjE2wa4x5Jb4oEzmhq97vbvE9QGsvS6g6SgJqgZf3ErW52jklc
06jh3/iZFbrLV/mRIXfw92Mk45gNc4B5/wsEP+5b3oij3Rp29bkyp4CpiSQTKmWG
S3nj601uy2iGqmhscshng6neVOFAc+rqhnWsWKhE/lbOO17hJCul7GWsjrYXwZFy
wDeNTwjbuJpqsiqmjOCtJHJwftxmLY1nT3xzGX5lcZK6Hll+VA3KoBLCjvW9GZoC
TpSv+z6ZW8hTd+xl3rS+WoWkqK8txw==
=16uz
-----END PGP SIGNATURE-----

--ue3LuKhK8SGwUSeP--
.

From: Pei Li <peili.dev@gmail.com>
Date: Thu, 27 Jun 2024 08:03:56 -0700
Subject: [PATCH v2] kvm: Fix warning in__kvm_gpc_refresh
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit
Message-Id: <20240627-bug5-v2-1-2c63f7ee6739@gmail.com>
To: David Woodhouse <dwmw2@infradead.org>, Paul Durrant <paul@xen.org>, 
 Sean Christopherson <seanjc@google.com>, 
 Paolo Bonzini <pbonzini@redhat.com>, Thomas Gleixner <tglx@linutronix.de>, 
 Ingo Molnar <mingo@redhat.com>, Borislav Petkov <bp@alien8.de>, 
 Dave Hansen <dave.hansen@linux.intel.com>, x86@kernel.org, 
 "H. Peter Anvin" <hpa@zytor.com>, Nathan Chancellor <nathan@kernel.org>, 
 Nick Desaulniers <ndesaulniers@google.com>, 
 Bill Wendling <morbo@google.com>, Justin Stitt <justinstitt@google.com>
Cc: kvm@vger.kernel.org, linux-kernel@vger.kernel.org, 
 skhan@linuxfoundation.org, linux-kernel-mentees@lists.linuxfoundation.org, 
 syzkaller-bugs@googlegroups.com, llvm@lists.linux.dev, 
 syzbot+fd555292a1da3180fc82@syzkaller.appspotmail.com, 
 Pei Li <peili.dev@gmail.com>
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1261019
Newsgroups: org.kernel.vger.linux-kernel,dev.linux.lists.linux-kernel-mentees,dev.linux.lists.llvm,org.kernel.vger.kvm
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

Check for invalid hva address stored in data and return -EINVAL before
calling into __kvm_gpc_activate().

Reported-by: syzbot+fd555292a1da3180fc82@syzkaller.appspotmail.com
Closes: https://syzkaller.appspot.com/bug?extid=fd555292a1da3180fc82
Tested-by: syzbot+fd555292a1da3180fc82@syzkaller.appspotmail.com
Signed-off-by: Pei Li <peili.dev@gmail.com>
---
Syzbot reports a warning message in __kvm_gpc_refresh(). This warning
requires at least one of gpa and uhva to be valid.
WARNING: CPU: 0 PID: 5090 at arch/x86/kvm/../../../virt/kvm/pfncache.c:259 __kvm_gpc_refresh+0xf17/0x1090 arch/x86/kvm/../../../virt/kvm/pfncache.c:259

We are calling it from kvm_gpc_activate_hva(). This function always calls
__kvm_gpc_activate() with INVALID_GPA. Thus, uhva must be valid to
disable this warning.

This patch checks for invalid hva address and return -EINVAL before
calling __kvm_gpc_activate().

syzbot has tested the proposed patch and the reproducer did not trigger
any issue.

Tested on:

commit:         afcd4813 Merge tag 'mm-hotfixes-stable-2024-06-26-17-2..
git tree:       upstream
console output: https://syzkaller.appspot.com/x/log.txt?x=1427e301980000
kernel config:  https://syzkaller.appspot.com/x/.config?x=e40800950091403a
dashboard link: https://syzkaller.appspot.com/bug?extid=fd555292a1da3180fc82
compiler:       Debian clang version 15.0.6, GNU ld (GNU Binutils for Debian) 2.40
patch:          https://syzkaller.appspot.com/x/patch.diff?x=13838f3e980000

Note: testing is done by a robot and is best-effort only.
---
Changes in v2:
- Adapted Sean's suggestion to check for valid address before calling
  into __kvm_gpc_activate().
- Link to v1: https://lore.kernel.org/r/20240625-bug5-v1-1-e072ed5fce85@gmail.com
---
 arch/x86/kvm/xen.c  | 2 +-
 virt/kvm/pfncache.c | 3 +++
 2 files changed, 4 insertions(+), 1 deletion(-)

diff --git a/arch/x86/kvm/xen.c b/arch/x86/kvm/xen.c
index f65b35a05d91..67bb4e89c399 100644
--- a/arch/x86/kvm/xen.c
+++ b/arch/x86/kvm/xen.c
@@ -741,7 +741,7 @@ int kvm_xen_hvm_set_attr(struct kvm *kvm, struct kvm_xen_hvm_attr *data)
 		} else {
 			void __user * hva = u64_to_user_ptr(data->u.shared_info.hva);
 
-			if (!PAGE_ALIGNED(hva) || !access_ok(hva, PAGE_SIZE)) {
+			if (!PAGE_ALIGNED(hva)) {
 				r = -EINVAL;
 			} else if (!hva) {
 				kvm_gpc_deactivate(&kvm->arch.xen.shinfo_cache);
diff --git a/virt/kvm/pfncache.c b/virt/kvm/pfncache.c
index e3453e869e92..f0039efb9e1e 100644
--- a/virt/kvm/pfncache.c
+++ b/virt/kvm/pfncache.c
@@ -430,6 +430,9 @@ int kvm_gpc_activate(struct gfn_to_pfn_cache *gpc, gpa_t gpa, unsigned long len)
 
 int kvm_gpc_activate_hva(struct gfn_to_pfn_cache *gpc, unsigned long uhva, unsigned long len)
 {
+	if (!access_ok((void __user *)uhva, len))
+		return -EINVAL;
+
 	return __kvm_gpc_activate(gpc, INVALID_GPA, uhva, len);
 }
 

---
base-commit: 2bfcfd584ff5ccc8bb7acde19b42570414bf880b
change-id: 20240625-bug5-5d332b5e5161

Best regards,
-- 
Pei Li <peili.dev@gmail.com>

.

From: Nishanth Menon <nm@ti.com>
To: Tony Lindgren <tony@atomide.com>, Conor Dooley <conor+dt@kernel.org>,
        Krzysztof Kozlowski <krzk+dt@kernel.org>,
        Rob Herring <robh@kernel.org>,
        Linus Walleij <linus.walleij@linaro.org>
CC: <linux-kernel@vger.kernel.org>, <devicetree@vger.kernel.org>,
        <linux-gpio@vger.kernel.org>, <linux-arm-kernel@lists.infradead.org>,
        Nishanth Menon <nm@ti.com>
Subject: [PATCH V2] dt-bindings: pinctrl: pinctrl-single: Fix pinctrl-single,gpio-range description
Date: Thu, 27 Jun 2024 10:06:10 -0500
Message-ID: <20240627150610.469645-1-nm@ti.com>
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1261022
Newsgroups: org.kernel.vger.linux-kernel,org.infradead.lists.linux-arm-kernel,org.kernel.vger.linux-devicetree,org.kernel.vger.linux-gpio
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

The binding is supposed to describe the properties of each element
of the pinctrl-single,gpio-range array entry, however when we use
"- items:" instead of "items:", it explicitly describes that there
is just a single entry in the array.

The pinctrl-single,gpio-range property should describe more than one
entry in the array. Fix the typo and adjust the alignment of the
description of the entries appropriately.

Fixes: 677a62482bd6 ("dt-bindings: pinctrl: Update pinctrl-single to use yaml")
Signed-off-by: Nishanth Menon <nm@ti.com>
---
Symptom:
pinctrl-single,gpio-range = <&range 0 21 7>;
generates no warning
However,
pinctrl-single,gpio-range = <&range 0 21 7>, <&range 32 2 7>;
generates "is too long" warning.

This is just an attempt to fix the binding that is existing.

V1: https://lore.kernel.org/all/20240618165102.2380159-1-nm@ti.com/

Patch is based on next-20240626

 .../devicetree/bindings/pinctrl/pinctrl-single.yaml    | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/Documentation/devicetree/bindings/pinctrl/pinctrl-single.yaml b/Documentation/devicetree/bindings/pinctrl/pinctrl-single.yaml
index c11495524dd2..4e7fd00d602a 100644
--- a/Documentation/devicetree/bindings/pinctrl/pinctrl-single.yaml
+++ b/Documentation/devicetree/bindings/pinctrl/pinctrl-single.yaml
@@ -75,11 +75,11 @@ properties:
     description: Optional list of pin base, nr pins & gpio function
     $ref: /schemas/types.yaml#/definitions/phandle-array
     items:
-      - items:
-          - description: phandle of a gpio-range node
-          - description: pin base
-          - description: number of pins
-          - description: gpio function
+      items:
+        - description: phandle of a gpio-range node
+        - description: pin base
+        - description: number of pins
+        - description: gpio function
 
   '#gpio-range-cells':
     description: No longer needed, may exist in older files for gpio-ranges

base-commit: df9574a57d02b265322e77fb8628d4d33641dda9
-- 
2.43.0

.

Date: Thu, 27 Jun 2024 16:06:31 +0100
From: Mark Brown <broonie@kernel.org>
To: Dave Airlie <airlied@redhat.com>, DRI <dri-devel@lists.freedesktop.org>
Cc: Alex Deucher <alexander.deucher@amd.com>,
	Dillon Varone <dillon.varone@amd.com>,
	Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
	Linux Next Mailing List <linux-next@vger.kernel.org>,
	Michael Strauss <michael.strauss@amd.com>
Subject: linux-next: manual merge of the drm tree with the origin tree
Message-ID: <Zn1_91pUC7YENzRY@sirena.org.uk>
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha512;
	protocol="application/pgp-signature"; boundary="M50tsz2cPts8X1x/"
Content-Disposition: inline
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1261023 org.kernel.vger.linux-next:61950
Newsgroups: org.kernel.vger.linux-kernel,org.freedesktop.lists.dri-devel,org.kernel.vger.linux-next
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail


--M50tsz2cPts8X1x/
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable

Hi all,

Today's linux-next merge of the drm tree got a conflict in:

  drivers/gpu/drm/amd/display/dc/hwss/dcn35/dcn35_init.c

between commit:

  c03d770c0b014 ("drm/amd/display: Attempt to avoid empty TUs when endpoint=
 is DPIA")

=66rom the origin tree and commit:

  0127f0445f7c1 ("drm/amd/display: Refactor input mode programming for DIG =
FIFO")

=66rom the drm tree.

I fixed it up (see below) and can carry the fix as necessary. This
is now fixed as far as linux-next is concerned, but any non trivial
conflicts should be mentioned to your upstream maintainer when your tree
is submitted for merging.  You may also want to consider cooperating
with the maintainer of the conflicting tree to minimise any particularly
complex conflicts.

diff --cc drivers/gpu/drm/amd/display/dc/hwss/dcn35/dcn35_init.c
index 199781233fd5f,428912f371291..0000000000000
--- a/drivers/gpu/drm/amd/display/dc/hwss/dcn35/dcn35_init.c
+++ b/drivers/gpu/drm/amd/display/dc/hwss/dcn35/dcn35_init.c

--M50tsz2cPts8X1x/
Content-Type: application/pgp-signature; name="signature.asc"

-----BEGIN PGP SIGNATURE-----

iQEzBAABCgAdFiEEreZoqmdXGLWf4p/qJNaLcl1Uh9AFAmZ9f/YACgkQJNaLcl1U
h9BKpwf/ctDg3kmV6vtDRNYOgTngHtqfriBgFenwSMMLV+Qw0ujIMej39V4TQLUP
8U90dPj3nI3xMrC7Sqc6bvMQKnnmYcYuUDXIzHZ0BcqYUa2qn8bzi3EPzDVKTiMg
YbFpjKdb5g2ffm04j+LHSJ7h+pBH214lDyceFxE2Ap/OidYoBzTFUaFS2/P5muDs
AoAotaPxRYYyb9quZAV8TRFQnUeEW9SpfYqh4c/TgCV4Pzv6wusR6Bvfo3BbiRrT
he69Im2SkVUYf4IWWSNJgCGQmT2l5RH/la/oc3zNG+J9Sfr0NVNey7VrMJ1RNC2K
d3oHmebOefsd4nQIdsLEK4XH050ukA==
=zMEz
-----END PGP SIGNATURE-----

--M50tsz2cPts8X1x/--
.

From: Guilherme Amadio <amadio@gentoo.org>
To: Arnaldo Carvalho de Melo <acme@kernel.org>
Cc: Namhyung Kim <namhyung@kernel.org>,
	Ian Rogers <irogers@google.com>,
	Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
	linux-perf-users@vger.kernel.org,
	Guilherme Amadio <amadio@gentoo.org>
Subject: [PATCH 1/2] perf build: conditionally add feature check flags for libtrace{event,fs}
Date: Thu, 27 Jun 2024 17:06:05 +0200
Message-ID: <20240627150606.2224888-1-amadio@gentoo.org>
Reply-To: <Znxp3bpc-5tvaa3m@x1>
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1261024
Newsgroups: org.kernel.vger.linux-kernel,org.kernel.vger.linux-perf-users
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

This avoids reported warnings when the packages are not installed.

Fixes: 0f0e1f44569061e3dc590cd0b8cb74d8fd53706b
Signed-off-by: Guilherme Amadio <amadio@gentoo.org>
---
 tools/perf/Makefile.config | 19 +++++++++++--------
 1 file changed, 11 insertions(+), 8 deletions(-)

diff --git a/tools/perf/Makefile.config b/tools/perf/Makefile.config
index 81f73f68d256..987b48f242d3 100644
--- a/tools/perf/Makefile.config
+++ b/tools/perf/Makefile.config
@@ -182,14 +182,6 @@ endif
 FEATURE_CHECK_CFLAGS-libzstd := $(LIBZSTD_CFLAGS)
 FEATURE_CHECK_LDFLAGS-libzstd := $(LIBZSTD_LDFLAGS)
 
-# for linking with debug library, run like:
-# make DEBUG=1 PKG_CONFIG_PATH=/opt/libtraceevent/(lib|lib64)/pkgconfig
-FEATURE_CHECK_CFLAGS-libtraceevent := $(shell $(PKG_CONFIG) --cflags libtraceevent)
-FEATURE_CHECK_LDFLAGS-libtraceevent := $(shell $(PKG_CONFIG) --libs libtraceevent)
-
-FEATURE_CHECK_CFLAGS-libtracefs := $(shell $(PKG_CONFIG) --cflags libtracefs)
-FEATURE_CHECK_LDFLAGS-libtracefs := $(shell $(PKG_CONFIG) --libs libtracefs)
-
 FEATURE_CHECK_CFLAGS-bpf = -I. -I$(srctree)/tools/include -I$(srctree)/tools/arch/$(SRCARCH)/include/uapi -I$(srctree)/tools/include/uapi
 # include ARCH specific config
 -include $(src-perf)/arch/$(SRCARCH)/Makefile
@@ -211,6 +203,17 @@ endif
 ifneq ($(NO_LIBTRACEEVENT),1)
   ifeq ($(call get-executable,$(PKG_CONFIG)),)
   dummy := $(error Error: $(PKG_CONFIG) needed by libtraceevent is missing on this system, please install it)
+  else
+    ifeq ($(shell $(PKG_CONFIG) --exists libtraceevent),0)
+      # for linking with debug library, run like:
+      # make DEBUG=1 PKG_CONFIG_PATH=/opt/libtraceevent/(lib|lib64)/pkgconfig
+      FEATURE_CHECK_CFLAGS-libtraceevent := $(shell $(PKG_CONFIG) --cflags libtraceevent)
+      FEATURE_CHECK_LDFLAGS-libtraceevent := $(shell $(PKG_CONFIG) --libs libtraceevent)
+    endif
+    ifeq ($(shell $(PKG_CONFIG) --exists libtracefs),0)
+      FEATURE_CHECK_CFLAGS-libtracefs := $(shell $(PKG_CONFIG) --cflags libtracefs)
+      FEATURE_CHECK_LDFLAGS-libtracefs := $(shell $(PKG_CONFIG) --libs libtracefs)
+    endif
   endif
 endif
 
-- 
2.45.2

.

Date: Thu, 27 Jun 2024 16:08:54 +0100
From: Mark Brown <broonie@kernel.org>
To: Dave Airlie <airlied@redhat.com>, DRI <dri-devel@lists.freedesktop.org>
Cc: Alex Deucher <alexander.deucher@amd.com>,
	Lijo Lazar <lijo.lazar@amd.com>, Li Ma <li.ma@amd.com>,
	Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
	Linux Next Mailing List <linux-next@vger.kernel.org>
Subject: linux-next: manual merge of the drm tree with the drm-fixes tree
Message-ID: <Zn2Ahpv6za3ef3LT@sirena.org.uk>
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha512;
	protocol="application/pgp-signature"; boundary="BZArcoZlnFggJHEH"
Content-Disposition: inline
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1261027 org.kernel.vger.linux-next:61951
Newsgroups: org.kernel.vger.linux-kernel,org.freedesktop.lists.dri-devel,org.kernel.vger.linux-next
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail


--BZArcoZlnFggJHEH
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable

Hi all,

Today's linux-next merge of the drm tree got a conflict in:

  drivers/gpu/drm/amd/pm/swsmu/inc/smu_types.h

between commit:

  c223376b3019a ("drm/amd/swsmu: add MALL init support workaround for smu_v=
14_0_1")

=66rom the drm-fixes tree and commit:

  ec41bdd82e9b0 ("drm/amd/pm: Update PMFW messages for SMUv13.0.6")

=66rom the drm tree.

I fixed it up (see below) and can carry the fix as necessary. This
is now fixed as far as linux-next is concerned, but any non trivial
conflicts should be mentioned to your upstream maintainer when your tree
is submitted for merging.  You may also want to consider cooperating
with the maintainer of the conflicting tree to minimise any particularly
complex conflicts.

diff --cc drivers/gpu/drm/amd/pm/swsmu/inc/smu_types.h
index 2e32b085824ae,12a7b0634ed56..0000000000000
--- a/drivers/gpu/drm/amd/pm/swsmu/inc/smu_types.h
+++ b/drivers/gpu/drm/amd/pm/swsmu/inc/smu_types.h
@@@ -272,7 -272,8 +272,8 @@@
  	__SMU_DUMMY_MAP(SetSoftMinVpe), \
  	__SMU_DUMMY_MAP(GetMetricsVersion), \
  	__SMU_DUMMY_MAP(EnableUCLKShadow), \
 -	__SMU_DUMMY_MAP(RmaDueToBadPageThreshold),\
 +	__SMU_DUMMY_MAP(RmaDueToBadPageThreshold), \
+ 	__SMU_DUMMY_MAP(SelectPstatePolicy), \
  	__SMU_DUMMY_MAP(MALLPowerController), \
  	__SMU_DUMMY_MAP(MALLPowerState),
 =20

--BZArcoZlnFggJHEH
Content-Type: application/pgp-signature; name="signature.asc"

-----BEGIN PGP SIGNATURE-----

iQEzBAABCgAdFiEEreZoqmdXGLWf4p/qJNaLcl1Uh9AFAmZ9gIUACgkQJNaLcl1U
h9B9+Af9HWLP9pwG99gRcjfbXtQXiTDTWOqY06cYsdplVD4imfZ8+fVA5i3eFuPW
nwKu3JTVbVFgB8PRq9mc6HKEAQCfatz+YMMlL911tbENXkeRor5VO65PrKP257G0
2yD1xGUyLRjacEJrC0CsvmqgZO6xhGbW/j5e+b5bJgZZHxfEOEkHzQj5/O0aoMQ6
Rd+69PBpIO8DkEoOZH0RfwpAKJp+rVfpHayqzIS3GXQNVrzQ3fQrcAXLEVzrp98e
EclOk5R/SiQ6z3kpyTgC1YwhSh53JSxsoxdhJnmYrksMBGBKFN6WRT5PJad2s+yS
zRj4RptDV6O/2+Mpe1mhEqbMvifNxw==
=1q1J
-----END PGP SIGNATURE-----

--BZArcoZlnFggJHEH--
.

From: =?utf-8?q?Barnab=C3=A1s_Cz=C3=A9m=C3=A1n?= <barnabas.czeman@mainlining.org>
Subject: [PATCH v2 0/2] Add interconnect driver for MSM8953/SDM450/SDM632
Date: Thu, 27 Jun 2024 17:08:45 +0200
Message-Id: <20240627-msm8953-interconnect-v2-0-b4940a8eab69@mainlining.org>
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 8bit
To: Georgi Djakov <djakov@kernel.org>, Rob Herring <robh@kernel.org>, 
 Krzysztof Kozlowski <krzk+dt@kernel.org>, 
 Conor Dooley <conor+dt@kernel.org>
Cc: linux-kernel@vger.kernel.org, linux-arm-msm@vger.kernel.org, 
 linux-pm@vger.kernel.org, devicetree@vger.kernel.org, 
 =?utf-8?q?Barnab=C3=A1s_Cz=C3=A9m=C3=A1n?= <barnabas.czeman@mainlining.org>, 
 Vladimir Lypak <vladimir.lypak@gmail.com>
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1261028
Newsgroups: org.kernel.vger.linux-kernel,org.kernel.vger.linux-arm-msm,org.kernel.vger.linux-devicetree,org.kernel.vger.linux-pm
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

This patch series add interconnect driver for MSM8953/SDM450/SDM632
based devices.

Signed-off-by: Barnabás Czémán <barnabas.czeman@mainlining.org>
---
Changes in v2:
- Make nodes const pointers.
- Fix schema issues addressed by reviews.
- Link to v1: https://lore.kernel.org/r/20240626-msm8953-interconnect-v1-0-eeb31a2231b0@mainlining.org

---
Vladimir Lypak (2):
      dt-bindings: interconnect: qcom: Add Qualcomm MSM8953 NoC
      interconnect: qcom: Add MSM8953 driver

 .../bindings/interconnect/qcom,msm8953.yaml        |  101 ++
 drivers/interconnect/qcom/Kconfig                  |    9 +
 drivers/interconnect/qcom/Makefile                 |    2 +
 drivers/interconnect/qcom/msm8953.c                | 1325 ++++++++++++++++++++
 include/dt-bindings/interconnect/qcom,msm8953.h    |   93 ++
 5 files changed, 1530 insertions(+)
---
base-commit: 62c97045b8f720c2eac807a5f38e26c9ed512371
change-id: 20240625-msm8953-interconnect-e03c4eb28d05

Best regards,
-- 
Barnabás Czémán <barnabas.czeman@mainlining.org>

.

From: Ilya Leoshkevich <iii@linux.ibm.com>
To: Alexander Potapenko <glider@google.com>, Marco Elver <elver@google.com>,
        Dmitry Vyukov <dvyukov@google.com>,
        Andrew Morton <akpm@linux-foundation.org>
Cc: kasan-dev@googlegroups.com, linux-mm@kvack.org,
        linux-kernel@vger.kernel.org, Ilya Leoshkevich <iii@linux.ibm.com>
Subject: [PATCH 0/2] kmsan: fix sparse warnings
Date: Thu, 27 Jun 2024 16:57:45 +0200
Message-ID: <20240627145754.27333-1-iii@linux.ibm.com>
Content-Transfer-Encoding: 8bit
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1261038 org.kvack.linux-mm:201635
Newsgroups: org.kernel.vger.linux-kernel,org.kvack.linux-mm
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

Hi,

Kernel test robot reported several sparse warnings in the KMSAN code
base [1].  They belong to two broad classes; fix each in a separate
commit.

Best regards,
Ilya

[1] https://lore.kernel.org/linux-mm/202406272033.KejtfLkw-lkp@intel.com/

Ilya Leoshkevich (2):
  kmsan: add missing __user tags
  kmsan: do not pass NULL pointers as 0

 mm/kmsan/core.c            |  4 ++--
 mm/kmsan/hooks.c           | 15 ++++++++-------
 mm/kmsan/instrumentation.c |  4 ++--
 mm/kmsan/kmsan.h           |  6 +++---
 mm/kmsan/report.c          |  2 +-
 5 files changed, 16 insertions(+), 15 deletions(-)

-- 
2.45.2

.

From: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
To: Steven Rostedt <rostedt@goodmis.org>,
	Masami Hiramatsu <mhiramat@kernel.org>
Cc: linux-trace-kernel@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	Mathieu Desnoyers <mathieu.desnoyers@efficios.com>,
	Peter Zijlstra <peterz@infradead.org>,
	Alexei Starovoitov <ast@kernel.org>,
	Yonghong Song <yhs@fb.com>,
	"Paul E . McKenney" <paulmck@kernel.org>,
	Ingo Molnar <mingo@redhat.com>,
	Arnaldo Carvalho de Melo <acme@kernel.org>,
	Mark Rutland <mark.rutland@arm.com>,
	Alexander Shishkin <alexander.shishkin@linux.intel.com>,
	Jiri Olsa <jolsa@redhat.com>,
	Namhyung Kim <namhyung@kernel.org>,
	bpf@vger.kernel.org,
	Joel Fernandes <joel@joelfernandes.org>
Subject: [PATCH v5 0/8] Faultable Tracepoints
Date: Thu, 27 Jun 2024 11:23:32 -0400
Message-Id: <20240627152340.82413-1-mathieu.desnoyers@efficios.com>
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1261056
Newsgroups: org.kernel.vger.linux-kernel,org.kernel.vger.bpf,org.kernel.vger.linux-trace-kernel
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

Wire up the system call tracepoints with Tasks Trace RCU to allow
the ftrace, perf, and eBPF tracers to handle page faults.

This series does the initial wire-up allowing tracers to handle page
faults, but leaves out the actual handling of said page faults as future
work.

I have tested this against a feature branch of lttng-modules which
implements handling of page faults for the filename argument of the
openat(2) system call.

This v5 addresses comments from the previous round of review [1].

Steven Rostedt suggested separating tracepoints into two separate
sections. It is unclear how that approach would prove to be an
improvement over the currently proposed approach, so those changes were
not incorporated. See [2] for my detailed reply.

In the previous round, Peter Zijlstra suggested use of SRCU rather than
Tasks Trace RCU. See my reply about the distinction between SRCU and
Tasks Trace RCU [3] and this explanation from Paul E. McKenney about the
purpose of Tasks Trace RCU [4].

The macros DEFINE_INACTIVE_GUARD and activate_guard are added to
cleanup.h for use in the __DO_TRACE() macro. Those appear to be more
flexible than the guard_if() proposed by Peter Zijlstra in the previous
round of review [5].

This series is based on kernel v6.9.6.

Thanks,

Mathieu

Link: https://lore.kernel.org/lkml/20231120205418.334172-1-mathieu.desnoyers@efficios.com/ # [1]
Link: https://lore.kernel.org/lkml/e4e9a2bc-1776-4b51-aba4-a147795a5de1@efficios.com/ # [2]
Link: https://lore.kernel.org/lkml/a0ac5f77-411e-4562-9863-81196238f3f5@efficios.com/ # [3]
Link: https://lore.kernel.org/lkml/ba543d44-9302-4115-ac4f-d4e9f8d98a90@paulmck-laptop/ # [4]
Link: https://lore.kernel.org/lkml/20231120221524.GD8262@noisy.programming.kicks-ass.net/ # [5]
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Alexei Starovoitov <ast@kernel.org>
Cc: Yonghong Song <yhs@fb.com>
Cc: Paul E. McKenney <paulmck@kernel.org>
Cc: Ingo Molnar <mingo@redhat.com>
Cc: Arnaldo Carvalho de Melo <acme@kernel.org>
Cc: Mark Rutland <mark.rutland@arm.com>
Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
Cc: Jiri Olsa <jolsa@redhat.com>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: bpf@vger.kernel.org
Cc: Joel Fernandes <joel@joelfernandes.org>

Mathieu Desnoyers (8):
  cleanup.h: Header include guard should match header name
  cleanup.h guard: Rename DEFINE_ prefix to DECLARE_
  cleanup.h: Introduce DEFINE_INACTIVE_GUARD and activate_guard
  tracing: Introduce faultable tracepoints
  tracing/ftrace: Add support for faultable tracepoints
  tracing/bpf-trace: Add support for faultable tracepoints
  tracing/perf: Add support for faultable tracepoints
  tracing: Convert sys_enter/exit to faultable tracepoints

 drivers/cxl/core/cdat.c                     |  2 +-
 drivers/cxl/cxl.h                           |  2 +-
 drivers/gpio/gpiolib.h                      |  2 +-
 drivers/platform/x86/intel/pmc/core_ssram.c |  2 +-
 fs/fuse/virtio_fs.c                         |  2 +-
 fs/pstore/inode.c                           |  4 +-
 include/linux/bitmap.h                      |  2 +-
 include/linux/cleanup.h                     | 85 ++++++++++++--------
 include/linux/cpu.h                         |  2 +-
 include/linux/cpumask.h                     |  2 +-
 include/linux/device.h                      |  6 +-
 include/linux/file.h                        |  4 +-
 include/linux/firmware.h                    |  2 +-
 include/linux/gpio/driver.h                 |  4 +-
 include/linux/iio/iio.h                     |  4 +-
 include/linux/irqflags.h                    |  4 +-
 include/linux/mutex.h                       |  6 +-
 include/linux/of.h                          |  2 +-
 include/linux/pci.h                         |  4 +-
 include/linux/percpu.h                      |  2 +-
 include/linux/preempt.h                     |  6 +-
 include/linux/rcupdate.h                    |  2 +-
 include/linux/rwsem.h                       | 10 +--
 include/linux/sched/task.h                  |  4 +-
 include/linux/slab.h                        |  4 +-
 include/linux/spinlock.h                    | 38 ++++-----
 include/linux/srcu.h                        |  2 +-
 include/linux/tracepoint-defs.h             | 14 ++++
 include/linux/tracepoint.h                  | 88 +++++++++++++++------
 include/sound/pcm.h                         |  6 +-
 include/trace/bpf_probe.h                   | 20 ++++-
 include/trace/define_trace.h                |  7 ++
 include/trace/events/syscalls.h             |  4 +-
 include/trace/perf.h                        | 22 +++++-
 include/trace/trace_events.h                | 68 +++++++++++++++-
 init/Kconfig                                |  1 +
 kernel/sched/core.c                         |  4 +-
 kernel/sched/sched.h                        | 16 ++--
 kernel/trace/bpf_trace.c                    | 11 ++-
 kernel/trace/trace_events.c                 | 28 +++++--
 kernel/trace/trace_fprobe.c                 |  5 +-
 kernel/trace/trace_syscalls.c               | 52 ++++++++++--
 kernel/tracepoint.c                         | 65 +++++++++------
 lib/locking-selftest.c                      | 12 +--
 sound/core/control_led.c                    |  2 +-
 45 files changed, 441 insertions(+), 193 deletions(-)

-- 
2.39.2
.

From: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Subject: [PATCH 0/4] ASoC: codecs: lpass-rx-macro: Few code cleanups
Date: Thu, 27 Jun 2024 17:23:42 +0200
Message-Id: <20240627-b4-qcom-audio-lpass-codec-cleanups-v1-0-ede31891d238@linaro.org>
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit
To: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>, 
 Banajit Goswami <bgoswami@quicinc.com>, Liam Girdwood <lgirdwood@gmail.com>, 
 Mark Brown <broonie@kernel.org>, Jaroslav Kysela <perex@perex.cz>, 
 Takashi Iwai <tiwai@suse.com>
Cc: alsa-devel@alsa-project.org, linux-arm-msm@vger.kernel.org, 
 linux-sound@vger.kernel.org, linux-kernel@vger.kernel.org, 
 Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1261064
Newsgroups: org.kernel.vger.linux-kernel,org.alsa-project.alsa-devel,org.kernel.vger.linux-arm-msm,org.kernel.vger.linux-sound
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

Hi,

Improve a bit the Qualcomm LPASS RX macro driver and align similar parts
of code with LPASS WSA macro driver for consistency.

No external dependencies.

Best regards,
Krzysztof

---
Krzysztof Kozlowski (4):
      ASoC: codecs: lpass-rx-macro: Simplify with devm allocations
      ASoC: codecs: lpass-rx-macro: Keep static regmap_config as const
      ASoC: dapm: Use unsigned for number of widgets in snd_soc_dapm_new_controls()
      ASoC: codecs: lpass-rx-macro: Use unsigned for number of widgets

 include/sound/soc-dapm.h          |  2 +-
 sound/soc/codecs/lpass-rx-macro.c | 37 ++++++++++++++++++++++++-------------
 sound/soc/soc-dapm.c              |  2 +-
 3 files changed, 26 insertions(+), 15 deletions(-)
---
base-commit: 47ec7f026f5db6a0fe26c6215554d043d04368eb
change-id: 20240627-b4-qcom-audio-lpass-codec-cleanups-27175f1d069f

Best regards,
-- 
Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>

.

From: David Sterba <dsterba@suse.com>
To: torvalds@linux-foundation.org
Cc: David Sterba <dsterba@suse.com>,
	linux-btrfs@vger.kernel.org,
	linux-kernel@vger.kernel.org
Subject: [GIT PULL] Btrfs fixes for 6.10-rc6
Date: Thu, 27 Jun 2024 17:28:32 +0200
Message-ID: <cover.1719501798.git.dsterba@suse.com>
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1261073
Newsgroups: org.kernel.vger.linux-kernel,org.kernel.vger.linux-btrfs
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

Hi,

a few more fixes. Please pull, thanks.

- fix quota root leak after quota disable failure

- fix condition when checking if a zone can be added as free

- allocate inode in NOFS context during logging or tree-log replay

- handle raid-stripe-tree lookup correctly during scrub

----------------------------------------------------------------
The following changes since commit cebae292e0c32a228e8f2219c270a7237be24a6a:

  btrfs: zoned: allocate dummy checksums for zoned NODATASUM writes (2024-06-13 20:43:55 +0200)

are available in the Git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux.git tags/for-6.10-rc5-tag

for you to fetch changes up to a7e4c6a3031c74078dba7fa36239d0f4fe476c53:

  btrfs: qgroup: fix quota root leak after quota disable failure (2024-06-25 00:35:50 +0200)

----------------------------------------------------------------
Filipe Manana (2):
      btrfs: use NOFS context when getting inodes during logging and log replay
      btrfs: qgroup: fix quota root leak after quota disable failure

Naohiro Aota (1):
      btrfs: zoned: fix initial free space detection

Qu Wenruo (1):
      btrfs: scrub: handle RST lookup error correctly

 fs/btrfs/free-space-cache.c |  2 +-
 fs/btrfs/qgroup.c           |  4 ++--
 fs/btrfs/scrub.c            | 26 +++++++++++++++-----------
 fs/btrfs/tree-log.c         | 43 ++++++++++++++++++++++++++++---------------
 4 files changed, 46 insertions(+), 29 deletions(-)
.

Return-Path: <linux-riscv-bounces+linux-riscv=archiver.kernel.org@lists.infradead.org>
From: Yixun Lan <dlan@gentoo.org>
Subject: [PATCH v2 00/10] riscv: add initial support for SpacemiT K1
Date: Thu, 27 Jun 2024 15:31:14 +0000
Message-Id: <20240627-k1-01-basic-dt-v2-0-cc06c7555f07@gentoo.org>
MIME-Version: 1.0
To: Rob Herring <robh@kernel.org>, Krzysztof Kozlowski <krzk+dt@kernel.org>, 
 Conor Dooley <conor+dt@kernel.org>, Conor Dooley <conor@kernel.org>, 
 Paul Walmsley <paul.walmsley@sifive.com>, 
 Palmer Dabbelt <palmer@dabbelt.com>, Albert Ou <aou@eecs.berkeley.edu>, 
 Daniel Lezcano <daniel.lezcano@linaro.org>, 
 Thomas Gleixner <tglx@linutronix.de>, 
 Samuel Holland <samuel.holland@sifive.com>, 
 Anup Patel <anup@brainfault.org>, 
 Greg Kroah-Hartman <gregkh@linuxfoundation.org>, 
 Jiri Slaby <jirislaby@kernel.org>, Lubomir Rintel <lkundrak@v3.sk>
Cc: devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, 
 Palmer Dabbelt <palmer@sifive.com>, linux-riscv@lists.infradead.org, 
 linux-serial@vger.kernel.org, Inochi Amaoto <inochiama@outlook.com>, 
 Meng Zhang <zhangmeng.kevin@spacemit.com>, Yangyu Chen <cyy@cyyself.name>, 
 Yixun Lan <dlan@gentoo.org>
X-BeenThere: linux-riscv@lists.infradead.org
X-Mailman-Version: 2.1.34
List-Id: <linux-riscv.lists.infradead.org>
List-Unsubscribe: <http://lists.infradead.org/mailman/options/linux-riscv>,
 <mailto:linux-riscv-request@lists.infradead.org?subject=unsubscribe>
List-Archive: <http://lists.infradead.org/pipermail/linux-riscv/>
List-Post: <mailto:linux-riscv@lists.infradead.org>
List-Help: <mailto:linux-riscv-request@lists.infradead.org?subject=help>
List-Subscribe: <http://lists.infradead.org/mailman/listinfo/linux-riscv>,
 <mailto:linux-riscv-request@lists.infradead.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: "linux-riscv" <linux-riscv-bounces@lists.infradead.org>
Errors-To: linux-riscv-bounces+linux-riscv=archiver.kernel.org@lists.infradead.org
Xref: photonic.trudheim.com org.infradead.lists.linux-riscv:79116 org.kernel.vger.linux-kernel:1261074
Newsgroups: org.infradead.lists.linux-riscv,org.kernel.vger.linux-devicetree,org.kernel.vger.linux-kernel,org.kernel.vger.linux-serial
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

SpacemiT K1 is an ideal chip for some new extension such as RISC-V Vector
1.0 and Zicond evaluation now. Add initial support for it to allow more
people to participate in building drivers to mainline for it.

This kernel has been tested upon Banana Pi BPI-F3 board on vendor U-Boot
bootflow generated by Armbian SDK[1] and patched OpenSBI[2] to enable
Zicboz, which does not in the vendor dts on its U-Boot. Then successfully
booted to busybox on initrd with this log[3].

As previous discussion in patch v1[4], maintainer expect more basic drivers
ready before really merging it, which would be fine. For other follow-up patches, 
that are clk, pinctrl/gpio, reset.. My current goal would target at a headless
system including SD card, emmc, and ethernet.

P.S: talked to Yangyu, I will help and take care of this patch series, thanks
---
Changes in v2:
 - fix timebase-frequency according to current setting
 - add other uart dt nodes, fix input frequency
 - introduce new uart compatible for K1 SoC
 - add 'k1' prefix to bananapi-f3.dts
 - fix k1-clint compatible
 - fix some typos
 - Link to v1: https://lore.kernel.org/r/tencent_BC64B7B1876F5D10479BD19112F73F262505@qq.com

Link: https://github.com/BPI-SINOVOIP/armbian-build/tree/v24.04.30 [1]
Link: https://gist.github.com/cyyself/a07096e6e99c949ed13f8fa16d884402 [2]
Link: https://gist.github.com/cyyself/a2201c01f5c8955a119641f97b7d0280 [3]
Link: https://lore.kernel.org/r/20240618-hardwood-footrest-ab5ec5bce3cf@wendy [4]

To: Rob Herring <robh@kernel.org>
To: Krzysztof Kozlowski <krzk+dt@kernel.org>
To: Conor Dooley <conor+dt@kernel.org>
To: Conor Dooley <conor@kernel.org>
To: Paul Walmsley <paul.walmsley@sifive.com>
To: Palmer Dabbelt <palmer@dabbelt.com>
To: Albert Ou <aou@eecs.berkeley.edu>
To: Daniel Lezcano <daniel.lezcano@linaro.org>
To: Thomas Gleixner <tglx@linutronix.de>
To: Samuel Holland <samuel.holland@sifive.com>
To: Anup Patel <anup@brainfault.org>
To: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
To: Jiri Slaby <jirislaby@kernel.org>
To: Lubomir Rintel <lkundrak@v3.sk>
Cc: devicetree@vger.kernel.org
Cc: linux-kernel@vger.kernel.org
Cc: Palmer Dabbelt <palmer@sifive.com>
Cc: linux-riscv@lists.infradead.org
Cc: linux-serial@vger.kernel.org
Cc: Inochi Amaoto <inochiama@outlook.com>
Cc: Meng Zhang <zhangmeng.kevin@spacemit.com>

Signed-off-by: Yangyu Chen <cyy@cyyself.name>
Signed-off-by: Yixun Lan <dlan@gentoo.org>

---
Yangyu Chen (9):
      dt-bindings: vendor-prefixes: add spacemit
      dt-bindings: riscv: Add SpacemiT X60 compatibles
      dt-bindings: riscv: add SpacemiT K1 bindings
      dt-bindings: timer: Add SpacemiT K1 CLINT
      dt-bindings: interrupt-controller: Add SpacemiT K1 PLIC
      riscv: add SpacemiT SOC family Kconfig support
      riscv: dts: add initial SpacemiT K1 SoC device tree
      riscv: dts: spacemit: add Banana Pi BPI-F3 board device tree
      riscv: defconfig: enable SpacemiT SoC

Yixun Lan (1):
      dt-bindings: serial: 8250: Add SpacemiT K1 uart compatible

 .../interrupt-controller/sifive,plic-1.0.0.yaml    |   5 +-
 Documentation/devicetree/bindings/riscv/cpus.yaml  |   1 +
 .../devicetree/bindings/riscv/spacemit.yaml        |  24 ++
 Documentation/devicetree/bindings/serial/8250.yaml |   4 +-
 .../devicetree/bindings/timer/sifive,clint.yaml    |   1 +
 .../devicetree/bindings/vendor-prefixes.yaml       |   2 +
 arch/riscv/Kconfig.socs                            |   5 +
 arch/riscv/boot/dts/Makefile                       |   1 +
 arch/riscv/boot/dts/spacemit/Makefile              |   2 +
 arch/riscv/boot/dts/spacemit/k1-bananapi-f3.dts    |  19 ++
 arch/riscv/boot/dts/spacemit/k1.dtsi               | 378 +++++++++++++++++++++
 arch/riscv/configs/defconfig                       |   1 +
 12 files changed, 441 insertions(+), 2 deletions(-)
---
base-commit: f2661062f16b2de5d7b6a5c42a9a5c96326b8454
change-id: 20240626-k1-01-basic-dt-1aa31eeebcd2

Best regards,
-- 
Yixun Lan <dlan@gentoo.org>


_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv
.

From: Benjamin Tissoires <bentiss@kernel.org>
Date: Thu, 27 Jun 2024 17:49:07 +0200
Subject: [PATCH] selftests/hid: ensure CKI can compile our new tests on old
 kernels
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit
Message-Id: <20240627-fix-cki-v1-1-2b47ceac116a@kernel.org>
To: Jiri Kosina <jikos@kernel.org>, Shuah Khan <shuah@kernel.org>
Cc: linux-input@vger.kernel.org, linux-kselftest@vger.kernel.org, 
 linux-kernel@vger.kernel.org, kernel test robot <lkp@intel.com>, 
 Benjamin Tissoires <bentiss@kernel.org>
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1261100
Newsgroups: org.kernel.vger.linux-kernel,org.kernel.vger.linux-input,org.kernel.vger.linux-kselftest
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

In the same way than commit ae7487d112cf ("selftests/hid: ensure we can
compile the tests on kernels pre-6.3") we should expose struct hid_bpf_ops
when it's not available in vmlinux.h.

So unexpose an eventual struct hid_bpf_ops, include vmlinux.h, and
re-export struct hid_bpf_ops.

Fixes: d7696738d66b ("selftests/hid: convert the hid_bpf selftests with struct_ops")
Reported-by: kernel test robot <lkp@intel.com>
Closes: https://lore.kernel.org/r/202406270328.bscLN1IF-lkp@intel.com/
Signed-off-by: Benjamin Tissoires <bentiss@kernel.org>
---
Same situation than in an early report when HID-BPF was initially
included: the automatically generated vmlinux.h doesn't contain all of
the required structs and the compilation of the bpf program fails.
---
 tools/testing/selftests/hid/progs/hid_bpf_helpers.h | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)

diff --git a/tools/testing/selftests/hid/progs/hid_bpf_helpers.h b/tools/testing/selftests/hid/progs/hid_bpf_helpers.h
index c72e44321764..5a911f0e8625 100644
--- a/tools/testing/selftests/hid/progs/hid_bpf_helpers.h
+++ b/tools/testing/selftests/hid/progs/hid_bpf_helpers.h
@@ -7,6 +7,7 @@
 
 /* "undefine" structs and enums in vmlinux.h, because we "override" them below */
 #define hid_bpf_ctx hid_bpf_ctx___not_used
+#define hid_bpf_ops hid_bpf_ops___not_used
 #define hid_report_type hid_report_type___not_used
 #define hid_class_request hid_class_request___not_used
 #define hid_bpf_attach_flags hid_bpf_attach_flags___not_used
@@ -24,6 +25,7 @@
 #include "vmlinux.h"
 
 #undef hid_bpf_ctx
+#undef hid_bpf_ops
 #undef hid_report_type
 #undef hid_class_request
 #undef hid_bpf_attach_flags
@@ -68,6 +70,20 @@ enum hid_class_request {
 	HID_REQ_SET_PROTOCOL		= 0x0B,
 };
 
+struct hid_bpf_ops {
+	int			hid_id;
+	u32			flags;
+	struct list_head	list;
+	int (*hid_device_event)(struct hid_bpf_ctx *ctx, enum hid_report_type report_type,
+				__u64 source);
+	int (*hid_rdesc_fixup)(struct hid_bpf_ctx *ctx);
+	int (*hid_hw_request)(struct hid_bpf_ctx *ctx, unsigned char reportnum,
+			       enum hid_report_type rtype, enum hid_class_request reqtype,
+			       __u64 source);
+	int (*hid_hw_output_report)(struct hid_bpf_ctx *ctx, __u64 source);
+	struct hid_device *hdev;
+};
+
 #ifndef BPF_F_BEFORE
 #define BPF_F_BEFORE (1U << 3)
 #endif

---
base-commit: d3e15189bfd4d0a9d3a7ad8bd0e6ebb1c0419f93
change-id: 20240627-fix-cki-f372855cbf6f

Best regards,
-- 
Benjamin Tissoires <bentiss@kernel.org>

.

Date: Thu, 27 Jun 2024 17:52:49 +0200
From: Alexander Gordeev <agordeev@linux.ibm.com>
To: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Vasily Gorbik <gor@linux.ibm.com>, Heiko Carstens <hca@linux.ibm.com>,
        linux-s390@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: [GIT PULL] s390 fixes for 6.10-rc6
Message-ID: <Zn2K0ZLW5gU6rCxf@tuxmaker.boeblingen.de.ibm.com>
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1261102
Newsgroups: org.kernel.vger.linux-kernel,org.kernel.vger.linux-s390
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

Hello Linus,

Please pull s390 changes for 6.10-rc6.

Thank you,
Alexander

The following changes since commit 693d41f7c938f92d881e6a51525e6c132a186afd:

  s390/mm: Restore mapping of kernel image using large pages (2024-06-11 16:20:40 +0200)

are available in the Git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux.git tags/s390-6.10-7

for you to fetch changes up to cea5589e958f8aef301ce9d004bc73fa5bb3b304:

  s390/boot: Do not adjust GOT entries for undef weak sym (2024-06-25 14:39:42 +0200)

----------------------------------------------------------------
s390 updates for 6.10-rc6

- Add missing virt_to_phys() conversion for directed interrupt
  bit vectors

- Fix broken configuration change notifications for virtio-ccw

- Fix sclp_init() cleanup path on failure and as result - fix
  a list double add warning

- Fix unconditional adjusting of GOT entries containing undefined
  weak symbols that resolve to zero

----------------------------------------------------------------
Halil Pasic (1):
      s390/virtio_ccw: Fix config change notifications

Heiko Carstens (1):
      s390/sclp: Fix sclp_init() cleanup on failure

Jens Remus (1):
      s390/boot: Do not adjust GOT entries for undef weak sym

Niklas Schnelle (1):
      s390/pci: Add missing virt_to_phys() for directed DIBV

 arch/s390/boot/startup.c         | 11 +++++++----
 arch/s390/pci/pci_irq.c          |  2 +-
 drivers/s390/char/sclp.c         |  1 +
 drivers/s390/virtio/virtio_ccw.c |  4 +++-
 4 files changed, 12 insertions(+), 6 deletions(-)
.

From: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
To: intel-xe@lists.freedesktop.org,
	linux-kernel@vger.kernel.org,
	dri-devel@lists.freedesktop.org,
	Tejun Heo <tj@kernel.org>,
	Zefan Li <lizefan.x@bytedance.com>,
	Johannes Weiner <hannes@cmpxchg.org>,
	Andrew Morton <akpm@linux-foundation.org>
Cc: Friedrich Vock <friedrich.vock@gmx.de>,
	cgroups@vger.kernel.org,
	linux-mm@kvack.org,
	Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
Subject: [RFC PATCH 0/6] DRM resource management cgroup, try 2.
Date: Thu, 27 Jun 2024 17:47:19 +0200
Message-ID: <20240627154754.74828-1-maarten.lankhorst@linux.intel.com>
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1261105 org.kvack.linux-mm:201640
Newsgroups: org.kernel.vger.linux-kernel,org.freedesktop.lists.dri-devel,org.freedesktop.lists.intel-xe,org.kernel.vger.cgroups,org.kvack.linux-mm
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

Hey,

A new version of my attempt at managing VRAM through cgroups.
Even though it's called the DRM resource management cgroup, it would be trivial
to rename it to devmem or whatever, since there is nothing DRM specific about it.

This series allows setting limits on VRAM similar to system memory,
with min/low/max limits.
This allows various cgroups to have their own limits for usage.

It sounds very abstract, but it can be used to prioritise the foreground
application (by setting low), or hard partition memory so multiple processes
sharing a single GPU use a proportional amount of memory each in a fair way,
or to prevent long running compute jobs from having their memory evicted.

This is a minimal proof of concept to get discussion going again. It works,
but it only tracks active use of VRAM. In the ideal world, we would track
it better in a way that also integrates better with the memory cgroup
controller. Ideally for every VRAM allocation, we would know we could push
it out to swap if needed, charging the original process not the process evicting.

I'm hoping to restart the discussion, so that we can plug the holes and finally move forward.

New in this version:
- Complete rewrite using page_counter.
- Support setting min/low/max, respected in the same way as memory cgroup.
  (Could be useful to add/allow high? To go over limit for temporary bindings
   during eviction on GART.)
- Locking reworked. Fastpath should now be lockless with RCU.
- Add a second implementation for AMD, to show how easy it is to make it work.
  (Should we completely move this to TTM instead?)
- TTM now always respects min/low when evicting, bailing out with -ENOSPC instead
  where required.

I'm hoping for some good feedback on the path forward for upstreaming. I feel this
version has a lot better chance of being upstreamed than the previous. It should
be a lot more scalable thanks to the usage of RCU and page_counter.

Cheers,
Maarten

Maarten Lankhorst (6):
  mm/page_counter: Move calculating protection values to page_counter
  drm/cgroup: Add memory accounting DRM cgroup
  drm/ttm: Handle cgroup based eviction in TTM
  drm/xe: Implement cgroup for vram
  drm/amdgpu: Add cgroups implementation
  drm/xe: Hack to test with mapped pages instead of vram.

 Documentation/admin-guide/cgroup-v2.rst       |  51 ++
 Documentation/gpu/drm-compute.rst             |  54 ++
 drivers/gpu/drm/amd/amdgpu/amdgpu.h           |   2 +
 drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c       |   6 +
 drivers/gpu/drm/amd/amdgpu/amdgpu_vram_mgr.c  |   6 +
 drivers/gpu/drm/ttm/tests/ttm_bo_test.c       |  18 +-
 drivers/gpu/drm/ttm/tests/ttm_resource_test.c |   2 +-
 drivers/gpu/drm/ttm/ttm_bo.c                  |  38 +-
 drivers/gpu/drm/ttm/ttm_resource.c            |  28 +-
 drivers/gpu/drm/xe/xe_device.c                |   4 +
 drivers/gpu/drm/xe/xe_device_types.h          |   4 +
 drivers/gpu/drm/xe/xe_ttm_sys_mgr.c           |  14 +
 drivers/gpu/drm/xe/xe_ttm_vram_mgr.c          |  10 +
 include/drm/ttm/ttm_bo.h                      |   3 +-
 include/drm/ttm/ttm_resource.h                |  16 +-
 include/linux/cgroup_drm.h                    | 115 +++
 include/linux/cgroup_subsys.h                 |   4 +
 include/linux/page_counter.h                  |   4 +
 init/Kconfig                                  |   7 +
 kernel/cgroup/Makefile                        |   1 +
 kernel/cgroup/drm.c                           | 813 ++++++++++++++++++
 mm/memcontrol.c                               | 154 +---
 mm/page_counter.c                             | 173 ++++
 23 files changed, 1355 insertions(+), 172 deletions(-)
 create mode 100644 Documentation/gpu/drm-compute.rst
 create mode 100644 include/linux/cgroup_drm.h
 create mode 100644 kernel/cgroup/drm.c

-- 
2.45.2

.

Date: Thu, 27 Jun 2024 15:59:22 +0000
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
Mime-Version: 1.0
Message-ID: <20240627155924.2361370-1-tadamsjr@google.com>
Subject: [PATCH v2 0/2] small pm80xx driver fixes
From: TJ Adams <tadamsjr@google.com>
To: Jack Wang <jinpu.wang@cloud.ionos.com>, 
	"James E . J . Bottomley" <James.Bottomley@HansenPartnership.com>, 
	"Martin K . Petersen" <martin.petersen@oracle.com>
Cc: linux-scsi@vger.kernel.org, linux-kernel@vger.kernel.org, 
	Igor Pylypiv <ipylypiv@google.com>, TJ Adams <tadamsjr@google.com>
Content-Type: text/plain; charset="UTF-8"
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1261111
Newsgroups: org.kernel.vger.linux-kernel,org.kernel.vger.linux-scsi
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

These are 2 small patches to prevent a kernel crash and change some
logs' levels. V1 consisted of 3 patches. One patch is being dropped so
it can be reworked and sent separately.

Igor Pylypiv (1):
  scsi: pm80xx: Set phy->enable_completion only when we wait for it

Terrence Adams (1):
  scsi: pm8001: Update log level when reading config table

 drivers/scsi/pm8001/pm8001_sas.c | 4 +++-
 drivers/scsi/pm8001/pm80xx_hwi.c | 6 +++---
 2 files changed, 6 insertions(+), 4 deletions(-)

-- 
2.45.2.741.gdbec12cfda-goog

.

From: Jean-Michel Hautbois <jeanmichel.hautbois@yoseli.org>
Subject: [PATCH v2 0/2] M5441x: Add NFC support
Date: Thu, 27 Jun 2024 18:05:27 +0200
Message-Id: <20240627-upstream-nfc-mcf5441x-v2-0-312929d09ee5@yoseli.org>
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit
To: Geert Uytterhoeven <geert@linux-m68k.org>, 
 Miquel Raynal <miquel.raynal@bootlin.com>, 
 Richard Weinberger <richard@nod.at>, Vignesh Raghavendra <vigneshr@ti.com>, 
 Stefan Agner <stefan@agner.ch>
Cc: linux-m68k@lists.linux-m68k.org, linux-kernel@vger.kernel.org, 
 linux-mtd@lists.infradead.org, 
 Jean-Michel Hautbois <jeanmichel.hautbois@yoseli.org>
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1261120
Newsgroups: org.kernel.vger.linux-kernel,org.infradead.lists.linux-mtd,org.kernel.vger.linux-m68k
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

The M5441x has the same NFC IP as the VF610. It does not support
device-tree, so a few changes are needed in particular at probe time.

A new variant is also needed as the Reference Manual states that the
NFC_ROW_ADDR does not drive CS.

Tested on a custom board with a Micron RAW nand.

Signed-off-by: Jean-Michel Hautbois <jeanmichel.hautbois@yoseli.org>
---
Changes in v2:
- Removed uneeded ifdef
- Split the m5441x definitions in a separate patch
- Link to v1: https://lore.kernel.org/r/20240620-upstream-nfc-mcf5441x-v1-1-69b64807d7a6@yoseli.org

---
Jean-Michel Hautbois (2):
      arch: m68k: Add definitions for flash NFC support
      mtd: nand: Add support for M5441x NFC

 arch/m68k/include/asm/m5441xsim.h |   7 +++
 drivers/mtd/nand/raw/Kconfig      |   2 +-
 drivers/mtd/nand/raw/vf610_nfc.c  | 102 ++++++++++++++++++++++++++++----------
 3 files changed, 85 insertions(+), 26 deletions(-)
---
base-commit: afcd48134c58d6af45fb3fdb648f1260b20f2326
change-id: 20240620-upstream-nfc-mcf5441x-82e23b45e286

Best regards,
-- 
Jean-Michel Hautbois <jeanmichel.hautbois@yoseli.org>

.

From: Mateusz Guzik <mjguzik@gmail.com>
To: brauner@kernel.org
Cc: viro@zeniv.linux.org.uk,
	jack@suse.cz,
	linux-kernel@vger.kernel.org,
	linux-fsdevel@vger.kernel.org,
	Mateusz Guzik <mjguzik@gmail.com>
Subject: [PATCH] vfs: rename parent_ino to d_parent_ino and make it use RCU
Date: Thu, 27 Jun 2024 18:11:52 +0200
Message-ID: <20240627161152.802567-1-mjguzik@gmail.com>
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1261125
Newsgroups: org.kernel.vger.linux-kernel,org.kernel.vger.linux-fsdevel
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

The routine is used by procfs through dir_emit_dots.

The combined RCU and lock fallback implementation is too big for an
inline. Given that the routine takes a dentry argument fs/dcache.c seems
like the place to put it in.

Signed-off-by: Mateusz Guzik <mjguzik@gmail.com>
---

this shows up with stress-ng --getdent (as one of many things)

build-tested with first adding d_parent_ino, then building allmodconfig
and fixing failures as they pop up. by the end of it grep shows no
remaining occurences, so i don't believe there will be any build regressions.

scheme borrowed from dget_parent

I cared enough to whip out the patch, but I'm not going to particularly
strongly defend it. arguably the getdent bench is not that great and I'm
not confident anything real runs into this as a problem.

 fs/dcache.c            | 30 ++++++++++++++++++++++++++++++
 fs/f2fs/file.c         |  2 +-
 fs/hfsplus/ioctl.c     |  4 ++--
 include/linux/dcache.h |  2 ++
 include/linux/fs.h     | 16 +---------------
 5 files changed, 36 insertions(+), 18 deletions(-)

diff --git a/fs/dcache.c b/fs/dcache.c
index a0a944fd3a1c..38d42f333b35 100644
--- a/fs/dcache.c
+++ b/fs/dcache.c
@@ -3100,6 +3100,36 @@ void d_tmpfile(struct file *file, struct inode *inode)
 }
 EXPORT_SYMBOL(d_tmpfile);
 
+/*
+ * Obtain inode number of the parent dentry.
+ */
+ino_t d_parent_ino(struct dentry *dentry)
+{
+	struct dentry *parent;
+	struct inode *iparent;
+	unsigned seq;
+	ino_t ret;
+
+	rcu_read_lock();
+	seq = raw_seqcount_begin(&dentry->d_seq);
+	parent = READ_ONCE(dentry->d_parent);
+	iparent = d_inode_rcu(parent);
+	if (likely(iparent)) {
+		ret = iparent->i_ino;
+		if (!read_seqcount_retry(&dentry->d_seq, seq)) {
+			rcu_read_unlock();
+			return ret;
+		}
+	}
+	rcu_read_unlock();
+
+	spin_lock(&dentry->d_lock);
+	ret = dentry->d_parent->d_inode->i_ino;
+	spin_unlock(&dentry->d_lock);
+	return ret;
+}
+EXPORT_SYMBOL(d_parent_ino);
+
 static __initdata unsigned long dhash_entries;
 static int __init set_dhash_entries(char *str)
 {
diff --git a/fs/f2fs/file.c b/fs/f2fs/file.c
index a390b82dd26e..66ab9a859655 100644
--- a/fs/f2fs/file.c
+++ b/fs/f2fs/file.c
@@ -185,7 +185,7 @@ static int get_parent_ino(struct inode *inode, nid_t *pino)
 	if (!dentry)
 		return 0;
 
-	*pino = parent_ino(dentry);
+	*pino = d_parent_ino(dentry);
 	dput(dentry);
 	return 1;
 }
diff --git a/fs/hfsplus/ioctl.c b/fs/hfsplus/ioctl.c
index 5661a2e24d03..40d04dba13ac 100644
--- a/fs/hfsplus/ioctl.c
+++ b/fs/hfsplus/ioctl.c
@@ -40,7 +40,7 @@ static int hfsplus_ioctl_bless(struct file *file, int __user *user_flags)
 
 	/* Directory containing the bootable system */
 	vh->finder_info[0] = bvh->finder_info[0] =
-		cpu_to_be32(parent_ino(dentry));
+		cpu_to_be32(d_parent_ino(dentry));
 
 	/*
 	 * Bootloader. Just using the inode here breaks in the case of
@@ -51,7 +51,7 @@ static int hfsplus_ioctl_bless(struct file *file, int __user *user_flags)
 
 	/* Per spec, the OS X system folder - same as finder_info[0] here */
 	vh->finder_info[5] = bvh->finder_info[5] =
-		cpu_to_be32(parent_ino(dentry));
+		cpu_to_be32(d_parent_ino(dentry));
 
 	mutex_unlock(&sbi->vh_mutex);
 	return 0;
diff --git a/include/linux/dcache.h b/include/linux/dcache.h
index 58916b3f53ad..bff956f7b2b9 100644
--- a/include/linux/dcache.h
+++ b/include/linux/dcache.h
@@ -283,6 +283,8 @@ static inline unsigned d_count(const struct dentry *dentry)
 	return dentry->d_lockref.count;
 }
 
+ino_t d_parent_ino(struct dentry *dentry);
+
 /*
  * helper function for dentry_operations.d_dname() members
  */
diff --git a/include/linux/fs.h b/include/linux/fs.h
index 32cbcb3443e5..04ee7d7c9621 100644
--- a/include/linux/fs.h
+++ b/include/linux/fs.h
@@ -3463,20 +3463,6 @@ static inline int kiocb_set_rw_flags(struct kiocb *ki, rwf_t flags)
 	return 0;
 }
 
-static inline ino_t parent_ino(struct dentry *dentry)
-{
-	ino_t res;
-
-	/*
-	 * Don't strictly need d_lock here? If the parent ino could change
-	 * then surely we'd have a deeper race in the caller?
-	 */
-	spin_lock(&dentry->d_lock);
-	res = dentry->d_parent->d_inode->i_ino;
-	spin_unlock(&dentry->d_lock);
-	return res;
-}
-
 /* Transaction based IO helpers */
 
 /*
@@ -3601,7 +3587,7 @@ static inline bool dir_emit_dot(struct file *file, struct dir_context *ctx)
 static inline bool dir_emit_dotdot(struct file *file, struct dir_context *ctx)
 {
 	return ctx->actor(ctx, "..", 2, ctx->pos,
-			  parent_ino(file->f_path.dentry), DT_DIR);
+			  d_parent_ino(file->f_path.dentry), DT_DIR);
 }
 static inline bool dir_emit_dots(struct file *file, struct dir_context *ctx)
 {
-- 
2.43.0

.

From: Prabhakar <prabhakar.csengg@gmail.com>
To: Geert Uytterhoeven <geert+renesas@glider.be>,
	Michael Turquette <mturquette@baylibre.com>,
	Stephen Boyd <sboyd@kernel.org>,
	Rob Herring <robh@kernel.org>,
	Krzysztof Kozlowski <krzk+dt@kernel.org>,
	Conor Dooley <conor+dt@kernel.org>,
	Philipp Zabel <p.zabel@pengutronix.de>,
	Magnus Damm <magnus.damm@gmail.com>,
	linux-clk@vger.kernel.org
Cc: devicetree@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	linux-renesas-soc@vger.kernel.org,
	Prabhakar <prabhakar.csengg@gmail.com>,
	Biju Das <biju.das.jz@bp.renesas.com>,
	Fabrizio Castro <fabrizio.castro.jz@renesas.com>,
	Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com>
Subject: [PATCH v3 0/3] Add CPG support for RZ/V2H(P) SoC
Date: Thu, 27 Jun 2024 17:13:12 +0100
Message-Id: <20240627161315.98143-1-prabhakar.mahadev-lad.rj@bp.renesas.com>
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1261127
Newsgroups: org.kernel.vger.linux-kernel,org.kernel.vger.linux-clk,org.kernel.vger.linux-devicetree,org.kernel.vger.linux-renesas-soc
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

From: Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com>

Hi All,

This patch series aims to add the CPG support for the Renesas
RZ/V2H(P) SoC.

v2 -> v3
- Dropped '|' for CPG description
- Dropped description for '#power-domain-cells' property
- Added 3 clock inputs for CPG
- Dropped label in example node
- Used 4 spaces for example node
- Renamed r9a09g057-cpg.h -> renesas,r9a09g057-cpg.h
- Merged adding renesas,r9a09g057-cpg.h in DT binding patch
- Updated commit message for patch 1/3
- Dropped num_hw_resets from struct rzv2h_cpg_priv
- Dropped range_check for module clocks
- Made mon_index to s8 instead of u8 in struct rzv2h_mod_clk
- Added support for critical module clocks with DEF_MOD_CRITICAL
- Added check for mon_index in rzv2h_mod_clock_endisable and
  rzv2h_mod_clock_is_enabled()
- Added CLK_PLLDTY
- Added core clocks sys_0_pclk and iotop_0_shclk
- Dropped r9a09g057_crit_mod_clks

v1->v2
- Updated commit message
- Updated description for binding as suggested by Geert
- Updated descriptions for clocks and resets property
- Renamed extal->qextal
- Updated '#power-domain-cells' value
- Dropped the module clocks and just added the core clocks
- Introduced family specific config option
- Now using register indexes for CLKON/CLKMON/RST/RSTMON
- Introduced PLL_CONF macro
- Dropped function pointer to get PLL_CLK1/2 offsets
- Added range check for core clks
- Dropped NULLified clocks check
- Dropped pll_clk1/clk2_offset
- Made r9a09g057_mod_clks/r9a09g057_resets as static const

v1: https://patchwork.kernel.org/project/linux-renesas-soc/cover/20240524082800.333991-1-prabhakar.mahadev-lad.rj@bp.renesas.com/

Cheers,
Prabhakar

Lad Prabhakar (3):
  dt-bindings: clock: renesas: Document RZ/V2H(P) SoC CPG
  clk: renesas: Add family-specific clock driver for RZ/V2H(P)
  clk: renesas: Add RZ/V2H(P) CPG driver

 .../bindings/clock/renesas,rzv2h-cpg.yaml     |  80 +++
 drivers/clk/renesas/Kconfig                   |   9 +
 drivers/clk/renesas/Makefile                  |   2 +
 drivers/clk/renesas/r9a09g057-cpg.c           |  79 +++
 drivers/clk/renesas/rzv2h-cpg.c               | 667 ++++++++++++++++++
 drivers/clk/renesas/rzv2h-cpg.h               | 161 +++++
 .../dt-bindings/clock/renesas,r9a09g057-cpg.h |  21 +
 7 files changed, 1019 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/clock/renesas,rzv2h-cpg.yaml
 create mode 100644 drivers/clk/renesas/r9a09g057-cpg.c
 create mode 100644 drivers/clk/renesas/rzv2h-cpg.c
 create mode 100644 drivers/clk/renesas/rzv2h-cpg.h
 create mode 100644 include/dt-bindings/clock/renesas,r9a09g057-cpg.h

-- 
2.34.1

.

From: Thomas Huth <thuth@redhat.com>
To: Jonathan Corbet <corbet@lwn.net>,
	linux-doc@vger.kernel.org
Cc: linux-kernel@vger.kernel.org
Subject: [PATCH] Documentation: Remove IA-64 from kernel-parameters
Date: Thu, 27 Jun 2024 18:24:58 +0200
Message-ID: <20240627162458.387700-1-thuth@redhat.com>
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1261141
Newsgroups: org.kernel.vger.linux-kernel,org.kernel.vger.linux-doc
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

IA-64 has been removed from the tree, so we should also remove
the corresponding kernel-parameters documentation now.

Signed-off-by: Thomas Huth <thuth@redhat.com>
---
 Note: Patch is based on linux-next branch (which already contains
       some other patches to kernel-parameters.txt)

 .../admin-guide/kernel-parameters.rst         |  1 -
 .../admin-guide/kernel-parameters.txt         | 45 ++-----------------
 2 files changed, 3 insertions(+), 43 deletions(-)

diff --git a/Documentation/admin-guide/kernel-parameters.rst b/Documentation/admin-guide/kernel-parameters.rst
index e8bdf5e86a9b..fdea7c26ef80 100644
--- a/Documentation/admin-guide/kernel-parameters.rst
+++ b/Documentation/admin-guide/kernel-parameters.rst
@@ -118,7 +118,6 @@ is applicable::
 	HIBERNATION HIBERNATION is enabled.
 	HW	Appropriate hardware is enabled.
 	HYPER_V HYPERV support is enabled.
-	IA-64	IA-64 architecture is enabled.
 	IMA     Integrity measurement architecture is enabled.
 	IP_PNP	IP DHCP, BOOTP, or RARP is enabled.
 	IPV6	IPv6 support is enabled.
diff --git a/Documentation/admin-guide/kernel-parameters.txt b/Documentation/admin-guide/kernel-parameters.txt
index 86f8f1f464ff..a2d36b622a67 100644
--- a/Documentation/admin-guide/kernel-parameters.txt
+++ b/Documentation/admin-guide/kernel-parameters.txt
@@ -1738,8 +1738,6 @@
 			for 64-bit NUMA, off otherwise.
 			Format: 0 | 1 (for off | on)
 
-	hcl=		[IA-64] SGI's Hardware Graph compatibility layer
-
 	hd=		[EIDE] (E)IDE hard drive subsystem geometry
 			Format: <cyl>,<head>,<sect>
 
@@ -2498,7 +2496,7 @@
 
 	keepinitrd	[HW,ARM] See retain_initrd.
 
-	kernelcore=	[KNL,X86,IA-64,PPC,EARLY]
+	kernelcore=	[KNL,X86,PPC,EARLY]
 			Format: nn[KMGTPE] | nn% | "mirror"
 			This parameter specifies the amount of memory usable by
 			the kernel for non-movable allocations.  The requested
@@ -3162,17 +3160,10 @@
 			[SECURITY] Choose order of LSM initialization. This
 			overrides CONFIG_LSM, and the "security=" parameter.
 
-	machvec=	[IA-64] Force the use of a particular machine-vector
-			(machvec) in a generic kernel.
-			Example: machvec=hpzx1
-
 	machtype=	[Loongson] Share the same kernel image file between
 			different yeeloong laptops.
 			Example: machtype=lemote-yeeloong-2f-7inch
 
-	max_addr=nn[KMG]	[KNL,BOOT,IA-64] All physical memory greater
-			than or equal to this physical address is ignored.
-
 	maxcpus=	[SMP,EARLY] Maximum number of processors that an SMP kernel
 			will bring up during bootup.  maxcpus=n : n >= 0 limits
 			the kernel to bring up 'n' processors. Surely after
@@ -3410,9 +3401,6 @@
 			Enable or disable the microcode minimal revision
 			enforcement for the runtime microcode loader.
 
-	min_addr=nn[KMG]	[KNL,BOOT,IA-64] All physical memory below this
-			physical address is ignored.
-
 	mini2440=	[ARM,HW,KNL]
 			Format:[0..2][b][c][t]
 			Default: "0tb"
@@ -3577,7 +3565,7 @@
 	mousedev.yres=	[MOUSE] Vertical screen resolution, used for devices
 			reporting absolute coordinates, such as tablets
 
-	movablecore=	[KNL,X86,IA-64,PPC,EARLY]
+	movablecore=	[KNL,X86,PPC,EARLY]
 			Format: nn[KMGTPE] | nn%
 			This parameter is the complement to kernelcore=, it
 			specifies the amount of memory used for migratable
@@ -3851,8 +3839,6 @@
 
 	no_entry_flush  [PPC,EARLY] Don't flush the L1-D cache when entering the kernel.
 
-	noexec		[IA-64]
-
 	noexec32	[X86-64]
 			This affects only 32-bit executables.
 			noexec32=on: enable non-executable mappings (default)
@@ -3872,13 +3858,6 @@
 			register save and restore. The kernel will only save
 			legacy floating-point registers on task switch.
 
-	nohalt		[IA-64] Tells the kernel not to use the power saving
-			function PAL_HALT_LIGHT when idle. This increases
-			power-consumption. On the positive side, it reduces
-			interrupt wake-up latency, which may improve performance
-			in certain environments such as networked servers or
-			real-time systems.
-
 	no_hash_pointers
 			[KNL,EARLY]
 			Force pointers printed to the console or buffers to be
@@ -3933,8 +3912,6 @@
 			remapping.
 			[Deprecated - use intremap=off]
 
-	nointroute	[IA-64]
-
 	noinvpcid	[X86,EARLY] Disable the INVPCID cpu feature.
 
 	noiotrap	[SH] Disables trapped I/O port accesses.
@@ -3944,8 +3921,6 @@
 
 	noisapnp	[ISAPNP] Disables ISA PnP code.
 
-	nojitter	[IA-64] Disables jitter checking for ITC timers.
-
 	nokaslr		[KNL,EARLY]
 			When CONFIG_RANDOMIZE_BASE is set, this disables
 			kernel and module base offset ASLR (Address Space
@@ -3960,8 +3935,6 @@
 
 	nolapic_timer	[X86-32,APIC,EARLY] Do not use the local APIC timer.
 
-	nomca		[IA-64] Disable machine check abort handling
-
 	nomce		[X86-32] Disable Machine Check Exception
 
 	nomfgpt		[X86-32] Disable Multi-Function General Purpose
@@ -4013,8 +3986,6 @@
 	noresume	[SWSUSP] Disables resume and restores original swap
 			space.
 
-	nosbagart	[IA-64]
-
 	no-scroll	[VGA] Disables scrollback.
 			This is required for the Braillex ib80-piezo Braille
 			reader made by F.H. Papenmeier (Germany).
@@ -4115,10 +4086,6 @@
 			parameter, xsave area per process might occupy more
 			memory on xsaves enabled systems.
 
-	nptcg=		[IA-64] Override max number of concurrent global TLB
-			purges which is reported from either PAL_VM_SUMMARY or
-			SAL PALO.
-
 	nr_cpus=	[SMP,EARLY] Maximum number of processors that an SMP kernel
 			could support.  nr_cpus=n : n >= 1 limits the kernel to
 			support 'n' processors. It could be larger than the
@@ -6042,9 +6009,6 @@
 			apic=verbose is specified.
 			Example: apic=debug show_lapic=all
 
-	simeth=		[IA-64]
-	simscsi=
-
 	slab_debug[=options[,slabs][;[options[,slabs]]...]	[MM]
 			Enabling slab_debug allows one to determine the
 			culprit if slab objects become corrupted. Enabling
@@ -6561,7 +6525,7 @@
 			This parameter controls use of the Protected
 			Execution Facility on pSeries.
 
-	swiotlb=	[ARM,IA-64,PPC,MIPS,X86,S390,EARLY]
+	swiotlb=	[ARM,PPC,MIPS,X86,S390,EARLY]
 			Format: { <int> [,<int>] | force | noforce }
 			<int> -- Number of I/O TLB slabs
 			<int> -- Second integer after comma. Number of swiotlb
@@ -7209,9 +7173,6 @@
 			Try vdso32=0 if you encounter an error that says:
 			dl_main: Assertion `(void *) ph->p_vaddr == _rtld_local._dl_sysinfo_dso' failed!
 
-	vector=		[IA-64,SMP]
-			vector=percpu: enable percpu vector domain
-
 	video=		[FB,EARLY] Frame buffer configuration
 			See Documentation/fb/modedb.rst.
 
-- 
2.45.2

.

From: Nishanth Menon <nm@ti.com>
To: Conor Dooley <conor+dt@kernel.org>,
        Krzysztof Kozlowski
	<krzk+dt@kernel.org>,
        Rob Herring <robh@kernel.org>, Vignesh Raghavendra
	<vigneshr@ti.com>
CC: <linux-kernel@vger.kernel.org>, <devicetree@vger.kernel.org>,
        <linux-arm-kernel@lists.infradead.org>,
        Tero Kristo <kristo@kernel.org>, Vaishnav Achath <vaishnav.a@ti.com>,
        Jared McArthur <j-mcarthur@ti.com>, Bryan Brattlof <bb@ti.com>,
        Dhruva Gole <d-gole@ti.com>, Nishanth Menon
	<nm@ti.com>
Subject: [PATCH V2 0/3] arm64: dts: ti: k3-am62p/j722s: Add gpio-ranges properties
Date: Thu, 27 Jun 2024 11:25:36 -0500
Message-ID: <20240627162539.691223-1-nm@ti.com>
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1261144
Newsgroups: org.kernel.vger.linux-kernel,org.infradead.lists.linux-arm-kernel,org.kernel.vger.linux-devicetree
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

Hi,

This series was tested on BeagleY-AI[1] using the script[2].

This allows gpiod to request for a gpio that is not in the default GPIO
mux mode and the framework controls the mux over to required GPIO mode.

The series is based off next-20240617.

NOTE: there is also a dtb_warning that is added, The fix for which is in
the binding[3].

Changes since V1:
 - Mux definition PIN_GPIO_RANGE_IOPAD instead of PIN_GPIO_MUX_MODE
 - Refactored on top of next-20240626
 - Note: since the patches have changed, I have skipped Dhruva's
   reviewed-by

V1: https://lore.kernel.org/linux-arm-kernel/20240618173123.2592074-1-nm@ti.com/

Jared McArthur (1):
  arm64: dts: ti: k3-j722s: Add gpio-ranges properties

Nishanth Menon (2):
  arm64: dts: ti: k3-pinctrl: Define a generic GPIO MUX Mode
  arm64: dts: ti: k3-am62p: Add gpio-ranges properties

 .../boot/dts/ti/k3-am62p-j722s-common-mcu.dtsi |  8 ++++++++
 arch/arm64/boot/dts/ti/k3-am62p-main.dtsi      | 17 +++++++++++++++++
 arch/arm64/boot/dts/ti/k3-j722s-main.dtsi      | 18 ++++++++++++++++++
 arch/arm64/boot/dts/ti/k3-pinctrl.h            |  3 +++
 4 files changed, 46 insertions(+)

base-commit: df9574a57d02b265322e77fb8628d4d33641dda9

[1] https://www.beagleboard.org/boards/beagley-ai
[2] https://gist.github.com/nmenon/4973770cf0df3f02c2e4f7f3d048d80d
[3] https://lore.kernel.org/linux-arm-kernel/20240627150610.469645-1-nm@ti.com/

-- 
2.43.0
.

Date: Thu, 27 Jun 2024 17:26:28 +0100
From: Mark Brown <broonie@kernel.org>
To: Lee Jones <lee@kernel.org>
Cc: Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
	Linux Next Mailing List <linux-next@vger.kernel.org>,
	Thomas =?iso-8859-1?Q?Wei=DFschuh?= <linux@weissschuh.net>,
	Tzung-Bi Shih <tzungbi@kernel.org>
Subject: linux-next: manual merge of the leds-lj tree with the
 chrome-platform tree
Message-ID: <Zn2StETOCb26F3I5@sirena.org.uk>
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha512;
	protocol="application/pgp-signature"; boundary="Hh9JSyXiINCq6YZM"
Content-Disposition: inline
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1261146 org.kernel.vger.linux-next:61954
Newsgroups: org.kernel.vger.linux-kernel,org.kernel.vger.linux-next
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail


--Hh9JSyXiINCq6YZM
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable

Hi all,

Today's linux-next merge of the leds-lj tree got a conflict in:

  MAINTAINERS

between commit:

  bc3e45258096f ("hwmon: add ChromeOS EC driver")

=66rom the chrome-platform tree and commit:

  8d6ce6f3ec9d5 ("leds: Add ChromeOS EC driver")

=66rom the leds-lj tree.

I fixed it up (see below) and can carry the fix as necessary. This
is now fixed as far as linux-next is concerned, but any non trivial
conflicts should be mentioned to your upstream maintainer when your tree
is submitted for merging.  You may also want to consider cooperating
with the maintainer of the conflicting tree to minimise any particularly
complex conflicts.

diff --cc MAINTAINERS
index de839b7c4ac2a,a7deb8fa20cac..0000000000000
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@@ -5197,14 -5135,11 +5197,19 @@@ S:	Maintaine
  F:	Documentation/devicetree/bindings/sound/google,cros-ec-codec.yaml
  F:	sound/soc/codecs/cros_ec_codec.*
 =20
 +CHROMEOS EC HARDWARE MONITORING
 +M:	Thomas Wei=DFschuh <thomas@weissschuh.net>
 +L:	chrome-platform@lists.linux.dev
 +L:	linux-hwmon@vger.kernel.org
 +S:	Maintained
 +F:	Documentation/hwmon/cros_ec_hwmon.rst
 +F:	drivers/hwmon/cros_ec_hwmon.c
 +
+ CHROMEOS EC LED DRIVER
+ M:	Thomas Wei=DFschuh <thomas@weissschuh.net>
+ S:	Maintained
+ F:	drivers/leds/leds-cros_ec.c
+=20
  CHROMEOS EC SUBDRIVERS
  M:	Benson Leung <bleung@chromium.org>
  R:	Guenter Roeck <groeck@chromium.org>

--Hh9JSyXiINCq6YZM
Content-Type: application/pgp-signature; name="signature.asc"

-----BEGIN PGP SIGNATURE-----

iQEzBAABCgAdFiEEreZoqmdXGLWf4p/qJNaLcl1Uh9AFAmZ9krMACgkQJNaLcl1U
h9DAPwf+PdxHGqQdzW8qZldQ7mjUbiEmigrLHXulGhaZVJsySdDJS53MLqGOFKOr
qs3TTZw6mdMLsAjCV0xcKFS8/R0TcVmK8n5nmIJxx8qXAtI1DGrVbCeCBQDjAsn6
d4HBDgtowSniQYNchdpF599hh6Jz2b+6b2swNZduEOyOiWBKMQLMICd62T6/jl5a
xlG1ZkMQwxF74vsErHIBz3UeTXNsnO496v9Z2GePJAWz6g2MrHuH7zQaV88T8cIb
2v+RV1chI3YBXorXd1xw8O5KSEQVb803M8PohSZOnRpBSruKYQOITCmj/jYN3G+v
pddfvj+LPArZyFqu0ruHUWWFlM8peQ==
=JHu7
-----END PGP SIGNATURE-----

--Hh9JSyXiINCq6YZM--
.

From: Ayush Singh <ayush@beagleboard.org>
Subject: [PATCH v5 0/7] misc: Add mikroBUS driver
Date: Thu, 27 Jun 2024 21:56:10 +0530
Message-Id: <20240627-mikrobus-scratch-spi-v5-0-9e6c148bf5f0@beagleboard.org>
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit
To: Mark Brown <broonie@kernel.org>, 
 Vaishnav M A <vaishnav@beagleboard.org>, Rob Herring <robh@kernel.org>, 
 Krzysztof Kozlowski <krzk+dt@kernel.org>, 
 Conor Dooley <conor+dt@kernel.org>, Derek Kiernan <derek.kiernan@amd.com>, 
 Dragan Cvetic <dragan.cvetic@amd.com>, Arnd Bergmann <arnd@arndb.de>, 
 Greg Kroah-Hartman <gregkh@linuxfoundation.org>, Nishanth Menon <nm@ti.com>, 
 Vignesh Raghavendra <vigneshr@ti.com>, Tero Kristo <kristo@kernel.org>, 
 Michael Walle <mwalle@kernel.org>, Andrew Lunn <andrew@lunn.ch>, 
 jkridner@beagleboard.org, robertcnelson@beagleboard.org
Cc: linux-spi@vger.kernel.org, linux-kernel@vger.kernel.org, 
 devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org, 
 Ayush Singh <ayush@beagleboard.org>, Ayush Singh <ayushdevel1325@gmail.com>
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1261147
Newsgroups: org.kernel.vger.linux-kernel,org.infradead.lists.linux-arm-kernel,org.kernel.vger.linux-devicetree,org.kernel.vger.linux-spi
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

MikroBUS is an open standard  developed by MikroElektronika for connecting
add-on boards to microcontrollers or microprocessors. It essentially
allows you to easily expand the functionality of your main boards using
these add-on boards.

This patchset adds mikroBUS as a Linux bus type and provides a driver to
parse and register the mikroBUS board using device tree infrastructure.

The patchset is based on work originally done by Vaishnav.

Link: https://www.mikroe.com/mikrobus
Link: https://docs.beagleboard.org/latest/boards/beagleplay/
Link: https://lore.kernel.org/all/20240317193714.403132-1-ayushdevel1325@gmail.com/ Patch v4

Changes v5
- Complete rewrite to use device tree instead of mikroBUS manifest.
- Only support for SPI.
- Adds `mikrobus,spi` compatible property.

Changes v4:
- Better commit messages
- Remove clickID, serdev, pwm, regulator, clocks etc. Just the basic
  mikroBUS driver.
- Fix a lot of memory leaks, unused variables, etc.
- Create accompanying PR in Greybus Spec repository
- Switch to 80 columns formatting
- Some other fixes pointed out in v3

Changes in v3:
- Use phandle instead of busname for spi
- Use spi board info for registering new device
- Convert dt bindings to yaml
- Add support for clickID
- Code cleanup and style changes
- Additions required to spi, serdev, w1 and regulator subsystems

Changes in v2:
- support for adding mikroBUS ports from DT overlays,
- remove debug sysFS interface for adding mikrobus ports,
- consider extended pin usage/deviations from mikrobus standard
  specifications
- use greybus CPort protocol enum instead of new protocol enums
- Fix cases of wrong indentation, ignoring return values, freeing allocated
  resources in case of errors and other style suggestions in v1 review.

Signed-off-by: Ayush Singh <ayush@beagleboard.org>
---
Ayush Singh (7):
      dt-bindings: connector: Add mikrobus-connector
      dt-bindings: mikrobus: Add mikrobus board base
      dt-bindings: mikrobus: Add mikrobus-spi binding
      spi: Make of_find_spi_controller_by_node() available
      spi: Make of_register_spi_device() available
      mikrobus: Add mikroBUS driver
      dts: ti: k3-am625-beagleplay: Add mikroBUS

 .../bindings/connector/mikrobus-connector.yaml     | 107 ++++++
 .../bindings/mikrobus/mikrobus-board.yaml          |  20 ++
 .../devicetree/bindings/mikrobus/mikrobus-spi.yaml |  37 +++
 MAINTAINERS                                        |   9 +
 arch/arm64/boot/dts/ti/k3-am625-beagleplay.dts     |  94 +++++-
 drivers/misc/Kconfig                               |  16 +
 drivers/misc/Makefile                              |   1 +
 drivers/misc/mikrobus.c                            | 361 +++++++++++++++++++++
 drivers/spi/spi.c                                  | 209 ++++++------
 include/linux/spi/spi.h                            |   7 +
 10 files changed, 750 insertions(+), 111 deletions(-)
---
base-commit: f76698bd9a8ca01d3581236082d786e9a6b72bb7
change-id: 20240627-mikrobus-scratch-spi-ad8c98dcec98

Best regards,
-- 
Ayush Singh <ayush@beagleboard.org>

.

From: SeongJae Park <sj@kernel.org>
To: SeongJae Park <sj@kernel.org>,
	Andrew Morton <akpm@linux-foundation.org>
Cc: damon@lists.linux.dev,
	linux-mm@kvack.org,
	linux-kernel@vger.kernel.org
Subject: [PATCH mm-unstable] mm/damon/core: ensure max threshold attempt for max_nr_regions violation
Date: Thu, 27 Jun 2024 09:31:52 -0700
Message-Id: <20240627163153.75969-1-sj@kernel.org>
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1261159 org.kvack.linux-mm:201648
Newsgroups: org.kernel.vger.linux-kernel,dev.linux.lists.damon,org.kvack.linux-mm
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

Since commit ed6cb9d022c8 ("mm/damon/core: increase regions merge
aggressiveness while respecting min_nr_regions") of mm-unstable,
kdamond_merge_regions() stops the repeated merge attempts for meeting
max_nr_regions if the merge threshold that increased for next iteration
is higher than the possible maximum threshold.  Hence, it can skip a
merge attempt with the maximum threshold depending on the amount of the
threshold increase, the maximum threshold, and the last-used threshold
value.  In extreme situations (e.g., region 1 has 100% access frequency,
region 2 has 0% access frequency, so on), this can degrade the
max_nr_regions violation recovery.

Fix this by stopping the loop by comparing the last-used threshold
instead of the to-be-used threshold, and if the last-used threshold is
same to or higher than the maximum possible threshold.

Fixes: ed6cb9d022c8 ("mm/damon/core: increase regions merge aggressiveness while respecting min_nr_regions") # mm-unstable
Closes: https://lore.kernel.org/20240626214954.46143-1-sj@kernel.org
Signed-off-by: SeongJae Park <sj@kernel.org>
---
 mm/damon/core.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/mm/damon/core.c b/mm/damon/core.c
index dac27b949403..7a87628b76ab 100644
--- a/mm/damon/core.c
+++ b/mm/damon/core.c
@@ -1718,7 +1718,7 @@ static void kdamond_merge_regions(struct damon_ctx *c, unsigned int threshold,
 		}
 		threshold = max(1, threshold * 2);
 	} while (nr_regions > c->attrs.max_nr_regions &&
-			threshold <= max_thres);
+			threshold / 2 < max_thres);
 }
 
 /*
-- 
2.39.2

.

Return-Path: <linux-riscv-bounces+linux-riscv=archiver.kernel.org@lists.infradead.org>
From: Mayuresh Chitale <mchitale@ventanamicro.com>
To: linux-riscv@lists.infradead.org,
	linux-kernel@vger.kernel.org
Cc: Mayuresh Chitale <mchitale@ventanamicro.com>,
	Paul Walmsley <paul.walmsley@sifive.com>,
	Palmer Dabbelt <palmer@dabbelt.com>,
	Albert Ou <aou@eecs.berkeley.edu>,
	Alexandre Ghiti <alexghiti@rivosinc.com>,
	Samuel Holland <samuel.holland@sifive.com>,
	Andrew Jones <ajones@ventanamicro.com>
Subject: [PATCH v7] riscv: mm: Add support for Svinval extension
Date: Thu, 27 Jun 2024 22:23:27 +0530
Message-Id: <20240627165327.7685-1-mchitale@ventanamicro.com>
MIME-Version: 1.0
X-BeenThere: linux-riscv@lists.infradead.org
X-Mailman-Version: 2.1.34
List-Id: <linux-riscv.lists.infradead.org>
List-Unsubscribe: <http://lists.infradead.org/mailman/options/linux-riscv>,
 <mailto:linux-riscv-request@lists.infradead.org?subject=unsubscribe>
List-Archive: <http://lists.infradead.org/pipermail/linux-riscv/>
List-Post: <mailto:linux-riscv@lists.infradead.org>
List-Help: <mailto:linux-riscv-request@lists.infradead.org?subject=help>
List-Subscribe: <http://lists.infradead.org/mailman/listinfo/linux-riscv>,
 <mailto:linux-riscv-request@lists.infradead.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: "linux-riscv" <linux-riscv-bounces@lists.infradead.org>
Errors-To: linux-riscv-bounces+linux-riscv=archiver.kernel.org@lists.infradead.org
Xref: photonic.trudheim.com org.infradead.lists.linux-riscv:79132 org.kernel.vger.linux-kernel:1261166
Newsgroups: org.infradead.lists.linux-riscv,org.kernel.vger.linux-kernel
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

The Svinval extension splits SFENCE.VMA instruction into finer-grained
invalidation and ordering operations and is mandatory for RVA23S64 profile.
When Svinval is enabled the local_flush_tlb_range_threshold_asid function
should use the following sequence to optimize the tlb flushes instead of
a simple sfence.vma:

sfence.w.inval
svinval.vma
  .
  .
svinval.vma
sfence.inval.ir

The maximum number of consecutive svinval.vma instructions that
can be executed in local_flush_tlb_range_threshold_asid function
is limited to 64. This is required to avoid soft lockups and the
approach is similar to that used in arm64.

Signed-off-by: Mayuresh Chitale <mchitale@ventanamicro.com>
---
Changes in v7:
- Use existing svinval macros in the insn-def.h
- Rename local_sinval_vma_asid to local_sinval_vma

Changes in v6:
- Rebase on latest torvalds/master

Changes in v5:
- Reduce tlb flush threshold to 64
- Improve implementation of local_flush_tlb* functions

Changes in v4:
- Rebase and refactor as per latest changes on torvalds/master
- Drop patch 1 in the series

Changes in v3:
- Fix incorrect vma used for sinval instructions
- Use unified static key mechanism for svinval
- Rebased on torvalds/master

Changes in v2:
- Rebased on 5.18-rc3
- update riscv_fill_hwcap to probe Svinval extension

 arch/riscv/mm/tlbflush.c | 32 ++++++++++++++++++++++++++++++++
 1 file changed, 32 insertions(+)

diff --git a/arch/riscv/mm/tlbflush.c b/arch/riscv/mm/tlbflush.c
index 9b6e86ce3867..d3396619d8c4 100644
--- a/arch/riscv/mm/tlbflush.c
+++ b/arch/riscv/mm/tlbflush.c
@@ -6,6 +6,28 @@
 #include <linux/hugetlb.h>
 #include <asm/sbi.h>
 #include <asm/mmu_context.h>
+#include <asm/cpufeature.h>
+
+#define has_svinval()	riscv_has_extension_unlikely(RISCV_ISA_EXT_SVINVAL)
+
+static inline void local_sfence_inval_ir(void)
+{
+	asm volatile(SFENCE_INVAL_IR() ::: "memory");
+}
+
+static inline void local_sfence_w_inval(void)
+{
+	asm volatile(SFENCE_W_INVAL() ::: "memory");
+}
+
+static inline void local_sinval_vma(unsigned long vma, unsigned long asid)
+{
+	if (asid != FLUSH_TLB_NO_ASID)
+		asm volatile(SINVAL_VMA(%0, %1) : : "r" (vma), "r" (asid) :
+			     "memory");
+	else
+		asm volatile(SINVAL_VMA(%0, zero) : : "r" (vma) : "memory");
+}
 
 /*
  * Flush entire TLB if number of entries to be flushed is greater
@@ -26,6 +48,16 @@ static void local_flush_tlb_range_threshold_asid(unsigned long start,
 		return;
 	}
 
+	if (has_svinval()) {
+		local_sfence_w_inval();
+		for (i = 0; i < nr_ptes_in_range; ++i) {
+			local_sinval_vma(start, asid);
+			start += stride;
+		}
+		local_sfence_inval_ir();
+		return;
+	}
+
 	for (i = 0; i < nr_ptes_in_range; ++i) {
 		local_flush_tlb_page_asid(start, asid);
 		start += stride;
-- 
2.34.1


_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv
.

From: Colin Ian King <colin.i.king@gmail.com>
To: Steven Rostedt <rostedt@goodmis.org>,
	Masami Hiramatsu <mhiramat@kernel.org>,
	Mathieu Desnoyers <mathieu.desnoyers@efficios.com>,
	Takashi Sakamoto <o-takashi@sakamocchi.jp>,
	linux-kernel@vger.kernel.org
Cc: kernel-janitors@vger.kernel.org,
	linux-trace-kernel@vger.kernel.org
Subject: [PATCH][next] firewire: core: Fix spelling mistakes in tracepoint messages
Date: Thu, 27 Jun 2024 18:08:47 +0100
Message-Id: <20240627170847.125531-1-colin.i.king@gmail.com>
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 8bit
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1261187
Newsgroups: org.kernel.vger.linux-kernel,org.kernel.vger.kernel-janitors,org.kernel.vger.linux-trace-kernel
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

There are two spelling mistakes in the tracepoint message text. Fix them.

Signed-off-by: Colin Ian King <colin.i.king@gmail.com>
---
 include/trace/events/firewire.h | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/include/trace/events/firewire.h b/include/trace/events/firewire.h
index d9158a134beb..86330ba58336 100644
--- a/include/trace/events/firewire.h
+++ b/include/trace/events/firewire.h
@@ -853,7 +853,7 @@ DECLARE_EVENT_CLASS(isoc_single_completions_template,
 		memcpy(__get_dynamic_array(header), header, __get_dynamic_array_len(header));
 	),
 	TP_printk(
-		"context=0x%llx card_index=%u timestap=0x%04x cause=%s header=%s",
+		"context=0x%llx card_index=%u timestamp=0x%04x cause=%s header=%s",
 		__entry->context,
 		__entry->card_index,
 		__entry->timestamp,
@@ -891,7 +891,7 @@ TRACE_EVENT(isoc_inbound_multiple_completions,
 		__entry->cause = cause;
 	),
 	TP_printk(
-		"context=0x%llx card_index=%u comleted=%u cause=%s",
+		"context=0x%llx card_index=%u completed=%u cause=%s",
 		__entry->context,
 		__entry->card_index,
 		__entry->completed,
-- 
2.39.2

.

From: Andrii Nakryiko <andrii@kernel.org>
To: linux-fsdevel@vger.kernel.org,
	brauner@kernel.org,
	viro@zeniv.linux.org.uk,
	akpm@linux-foundation.org
Cc: linux-kernel@vger.kernel.org,
	bpf@vger.kernel.org,
	gregkh@linuxfoundation.org,
	linux-mm@kvack.org,
	liam.howlett@oracle.com,
	surenb@google.com,
	rppt@kernel.org,
	adobriyan@gmail.com,
	Andrii Nakryiko <andrii@kernel.org>
Subject: [PATCH v6 0/6] ioctl()-based API to query VMAs from /proc/<pid>/maps
Date: Thu, 27 Jun 2024 10:08:52 -0700
Message-ID: <20240627170900.1672542-1-andrii@kernel.org>
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1261188 org.kvack.linux-mm:201654
Newsgroups: org.kernel.vger.linux-kernel,org.kernel.vger.bpf,org.kernel.vger.linux-fsdevel,org.kvack.linux-mm
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

Implement binary ioctl()-based interface to /proc/<pid>/maps file to allow
applications to query VMA information more efficiently than reading *all* VMAs
nonselectively through text-based interface of /proc/<pid>/maps file.

Patch #2 goes into a lot of details and background on some common patterns of
using /proc/<pid>/maps in the area of performance profiling and subsequent
symbolization of captured stack traces. As mentioned in that patch, patterns
of VMA querying can differ depending on specific use case, but can generally
be grouped into two main categories: the need to query a small subset of VMAs
covering a given batch of addresses, or reading/storing/caching all
(typically, executable) VMAs upfront for later processing.

The new PROCMAP_QUERY ioctl() API added in this patch set was motivated by the
former pattern of usage. Earlier revisions had a patch adding a tool that
faithfully reproduces an efficient VMA matching pass of a symbolizer,
collecting a subset of covering VMAs for a given set of addresses as
efficiently as possible. This tool served both as a testing ground, as well as
a benchmarking tool. It implements everything both for currently existing
text-based /proc/<pid>/maps interface, as well as for newly-added
PROCMAP_QUERY ioctl(). This revision dropped the tool from the patch set and,
once the API lands upstream, this tool might be added separately on Github as
an example.

Based on discussion on earlier revisions of this patch set, it turned out
that this ioctl() API is competitive with highly-optimized text-based
pre-processing pattern that perf tool is using. Based on perf discussion, this
revision adds more flexibility in specifying a subset of VMAs that are of
interest. Now it's possible to specify desired permissions of VMAs (e.g.,
request only executable ones) and/or restrict to only a subset of VMAs that
have file backing. This further improves the efficiency when using this new
API thanks to more selective (executable VMAs only) querying.

In addition to a custom benchmarking tool, and experimental perf integration
(available at [0]), Daniel Mueller has since also implemented an experimental
integration into blazesym (see [1]), a library used for stack trace
symbolization by our server fleet-wide profiler and another on-device profiler
agent that runs on weaker ARM devices. The latter ARM-based device profiler is
especially sensitive to performance, and so we benchmarked and compared
text-based /proc/<pid>/maps solution to the equivalent one using PROCMAP_QUERY
ioctl().

Results are very encouraging, giving us 5x improvement for end-to-end
so-called "address normalization" pass, which is the part of the symbolization
process that happens locally on ARM device, before being sent out for further
heavier-weight processing on more powerful remote server. Note that this is
not an artificial microbenchmark. It's a full end-to-end API call being
measured with real-world data on real-world device.

  TEXT-BASED
  ==========
  Benchmarking main/normalize_process_no_build_ids_uncached_maps
  main/normalize_process_no_build_ids_uncached_maps
	  time:   [49.777 µs 49.982 µs 50.250 µs]

  IOCTL-BASED
  ===========
  Benchmarking main/normalize_process_no_build_ids_uncached_maps
  main/normalize_process_no_build_ids_uncached_maps
	  time:   [10.328 µs 10.391 µs 10.457 µs]
	  change: [−79.453% −79.304% −79.166%] (p = 0.00 < 0.02)
	  Performance has improved.

You can see above that we see the drop from 50µs down to 10µs for exactly
the same amount of work, with the same data and target process.

With the aforementioned custom tool, we see about ~40x improvement (it might
vary a bit, depending on a specific captured set of addresses). And even for
perf-based benchmark it's on par or slightly ahead when using permission-based
filtering (fetching only executable VMAs).

Earlier revisions attempted to use per-VMA locking, if kernel was compiled
with CONFIG_PER_VMA_LOCK=y, but it turned out that anon_vma_name() is not yet
compatible with per-VMA locking and assumes mmap_lock to be taken, which makes
the use of per-VMA locking for this API premature. It was agreed ([2]) to
continue for now with just mmap_lock, but the code structure is such that it
should be easy to add per-VMA locking support once all the pieces are ready.

One thing that did not change was basing this new API as an ioctl() command
on /proc/<pid>/maps file. An ioctl-based API on top of pidfd was considered,
but has its own downsides. Implementing ioctl() directly on pidfd will cause
access permission checks on every single ioctl(), which leads to performance
concerns and potential spam of capable() audit messages. It also prevents
a nice pattern, possible with /proc/<pid>/maps, in which application opens
/proc/self/maps FD (requiring no additional capabilities) and passed this FD
to profiling agent for querying. To achieve similar pattern, a new file would
have to be created from pidf just for VMA querying, which is considered to be
inferior to just querying /proc/<pid>/maps FD as proposed in current approach.
These aspects were discussed in the hallway track at recent LSF/MM/BPF 2024
and sticking to procfs ioctl() was the final agreement we arrived at.

This patch set is based on top of mm-unstable branch in mm tree.

  [0] https://github.com/anakryiko/linux/commits/procfs-proc-maps-ioctl-v2/
  [1] https://github.com/libbpf/blazesym/pull/675
  [2] https://lore.kernel.org/bpf/7rm3izyq2vjp5evdjc7c6z4crdd3oerpiknumdnmmemwyiwx7t@hleldw7iozi3/

v5->v6:
  - make vma_page_size an __u64 field (Liam);
v4->v5:
  - added tests in selftests/proc (Andrew);
  - added vma_page_size field (Liam);
  - dropped the benchmark tool and BPF selftests parts, I'll send them
    directly to bpf-next once this API makes it into that tree;
v3->v4:
  - drop per-VMA locking changes for now, we'll need anon_vma_name() to be
    compatible with vma->vm_lock approach (Suren, Liam);
v2->v3:
  - drop mmap_lock aggressively under CONFIG_PER_VMA_LOCK (Liam);
  - code massaging to abstract per-VMA vs mmap_lock differences (Liam);
v1->v2:
  - per-VMA lock is used, if possible (Liam, Suren);
  - added file-backed VMA querying (perf folks);
  - added permission-based VMA querying (perf folks);
  - split out build ID into separate patch (Suren);
  - better documented API, added mention of ioctl() into procfs docs (Greg).

Andrii Nakryiko (6):
  fs/procfs: extract logic for getting VMA name constituents
  fs/procfs: implement efficient VMA querying API for /proc/<pid>/maps
  fs/procfs: add build ID fetching to PROCMAP_QUERY API
  docs/procfs: call out ioctl()-based PROCMAP_QUERY command existence
  tools: sync uapi/linux/fs.h header into tools subdir
  selftests/proc: add PROCMAP_QUERY ioctl tests

 Documentation/filesystems/proc.rst         |   9 +
 fs/proc/task_mmu.c                         | 383 ++++++++++++++++++---
 include/uapi/linux/fs.h                    | 158 ++++++++-
 tools/include/uapi/linux/fs.h              | 184 +++++++++-
 tools/testing/selftests/proc/Makefile      |   1 +
 tools/testing/selftests/proc/proc-pid-vm.c |  86 +++++
 6 files changed, 754 insertions(+), 67 deletions(-)

-- 
2.43.0

.

From: Colin Ian King <colin.i.king@gmail.com>
To: Tejun Heo <tj@kernel.org>,
	David Vernet <void@manifault.com>,
	Josh Don <joshdon@google.com>,
	Barret Rhoden <brho@google.com>,
	Hao Luo <haoluo@google.com>
Cc: kernel-janitors@vger.kernel.org,
	linux-kernel@vger.kernel.org
Subject: [PATCH][next] sched_ext: Fix spelling mistake: "intead" -> "instead"
Date: Thu, 27 Jun 2024 18:11:32 +0100
Message-Id: <20240627171132.127421-1-colin.i.king@gmail.com>
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 8bit
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1261196
Newsgroups: org.kernel.vger.linux-kernel,org.kernel.vger.kernel-janitors
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

There is a spelling mistake in the help text. Fix it.

Signed-off-by: Colin Ian King <colin.i.king@gmail.com>
---
 tools/sched_ext/scx_qmap.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/tools/sched_ext/scx_qmap.c b/tools/sched_ext/scx_qmap.c
index 4d41c0cb1dab..e4e3ecffc4cf 100644
--- a/tools/sched_ext/scx_qmap.c
+++ b/tools/sched_ext/scx_qmap.c
@@ -31,7 +31,7 @@ const char help_fmt[] =
 "  -d PID        Disallow a process from switching into SCHED_EXT (-1 for self)\n"
 "  -D LEN        Set scx_exit_info.dump buffer length\n"
 "  -S            Suppress qmap-specific debug dump\n"
-"  -p            Switch only tasks on SCHED_EXT policy intead of all\n"
+"  -p            Switch only tasks on SCHED_EXT policy instead of all\n"
 "  -v            Print libbpf debug messages\n"
 "  -h            Display this help and exit\n";
 
-- 
2.39.2

.

Return-Path: <linux-riscv-bounces+linux-riscv=archiver.kernel.org@lists.infradead.org>
From: Evan Green <evan@rivosinc.com>
To: Palmer Dabbelt <palmer@dabbelt.com>
Cc: Yangyu Chen <cyy@cyyself.name>,
	Evan Green <evan@rivosinc.com>,
	Albert Ou <aou@eecs.berkeley.edu>,
	Alexandre Ghiti <alexghiti@rivosinc.com>,
	Andrew Jones <ajones@ventanamicro.com>,
	Andy Chiu <andy.chiu@sifive.com>,
	Ben Dooks <ben.dooks@codethink.co.uk>,
	=?UTF-8?q?Bj=C3=B6rn=20T=C3=B6pel?= <bjorn@rivosinc.com>,
	Charlie Jenkins <charlie@rivosinc.com>,
	=?UTF-8?q?Cl=C3=A9ment=20L=C3=A9ger?= <cleger@rivosinc.com>,
	Conor Dooley <conor.dooley@microchip.com>,
	Costa Shulyupin <costa.shul@redhat.com>,
	Erick Archer <erick.archer@gmx.com>,
	Jonathan Corbet <corbet@lwn.net>,
	Paul Walmsley <paul.walmsley@sifive.com>,
	linux-doc@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	linux-riscv@lists.infradead.org
Subject: [PATCH v3 0/2] RISC-V: hwprobe: Misaligned scalar perf fix and rename
Date: Thu, 27 Jun 2024 10:22:36 -0700
Message-Id: <20240627172238.2460840-1-evan@rivosinc.com>
MIME-Version: 1.0
X-BeenThere: linux-riscv@lists.infradead.org
X-Mailman-Version: 2.1.34
List-Id: <linux-riscv.lists.infradead.org>
List-Unsubscribe: <http://lists.infradead.org/mailman/options/linux-riscv>,
 <mailto:linux-riscv-request@lists.infradead.org?subject=unsubscribe>
List-Archive: <http://lists.infradead.org/pipermail/linux-riscv/>
List-Post: <mailto:linux-riscv@lists.infradead.org>
List-Help: <mailto:linux-riscv-request@lists.infradead.org?subject=help>
List-Subscribe: <http://lists.infradead.org/mailman/listinfo/linux-riscv>,
 <mailto:linux-riscv-request@lists.infradead.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: "linux-riscv" <linux-riscv-bounces@lists.infradead.org>
Errors-To: linux-riscv-bounces+linux-riscv=archiver.kernel.org@lists.infradead.org
Xref: photonic.trudheim.com org.infradead.lists.linux-riscv:79133 org.kernel.vger.linux-kernel:1261200
Newsgroups: org.infradead.lists.linux-riscv,org.kernel.vger.linux-doc,org.kernel.vger.linux-kernel
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail


The CPUPERF0 hwprobe key was documented and identified in code as
a bitmask value, but its contents were an enum. This produced
incorrect behavior in conjunction with the WHICH_CPUS hwprobe flag.
The first patch in this series fixes the bitmask/enum problem by
creating a new hwprobe key that returns the same data, but is
properly described as a value instead of a bitmask. The second patch
renames the value definitions in preparation for adding vector misaligned
access info. As of this version, the old defines are kept in place to
maintain source compatibility with older userspace programs.


Changes in v3:
 - Further documentation wordsmithing (Conor)
 - Leave the old defines in place (Conor, Palmer)

Changes in v2:
 - Clarified the distinction of slow and fast refers to misaligned word
   accesses. Previously it just said misaligned accesses, leaving it
   ambiguous as to which type of access was measured.
 - Removed shifts in values (Andrew)
 - Renamed key to RISCV_HWPROBE_KEY_MISALIGNED_SCALAR_PERF (Palmer)
 - Added patch to rename misaligned perf key values (Palmer)

Evan Green (2):
  RISC-V: hwprobe: Add MISALIGNED_PERF key
  RISC-V: hwprobe: Add SCALAR to misaligned perf defines

 Documentation/arch/riscv/hwprobe.rst       | 30 +++++++++++++---------
 arch/riscv/include/asm/hwprobe.h           |  2 +-
 arch/riscv/include/uapi/asm/hwprobe.h      |  6 +++++
 arch/riscv/kernel/sys_hwprobe.c            | 11 ++++----
 arch/riscv/kernel/traps_misaligned.c       |  6 ++---
 arch/riscv/kernel/unaligned_access_speed.c | 12 ++++-----
 6 files changed, 40 insertions(+), 27 deletions(-)

-- 
2.34.1


_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv
.

From: Serge Semin <fancer.lancer@gmail.com>
To: Viresh Kumar <vireshk@kernel.org>,
	Andy Shevchenko <andriy.shevchenko@linux.intel.com>,
	Vinod Koul <vkoul@kernel.org>
Cc: Serge Semin <fancer.lancer@gmail.com>,
	=?UTF-8?q?Ilpo=20J=C3=A4rvinen?= <ilpo.jarvinen@linux.intel.com>,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	Jiri Slaby <jirislaby@kernel.org>,
	dmaengine@vger.kernel.org,
	linux-serial@vger.kernel.org,
	linux-kernel@vger.kernel.org
Subject: [PATCH RESEND v3 0/6] dmaengine: dw: Fix src/dst addr width misconfig
Date: Thu, 27 Jun 2024 20:22:16 +0300
Message-ID: <20240627172231.24856-1-fancer.lancer@gmail.com>
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1261215
Newsgroups: org.kernel.vger.linux-kernel,org.kernel.vger.dmaengine,org.kernel.vger.linux-serial
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

The main goal of this series is to fix the data disappearance in case of
the DW UART handled by the DW AHB DMA engine. The problem happens on a
portion of the data received when the pre-initialized DEV_TO_MEM
DMA-transfer is paused and then disabled. The data just hangs up in the
DMA-engine FIFO and isn't flushed out to the memory on the DMA-channel
suspension (see the second commit log for details). On a way to find the
denoted problem fix it was discovered that the driver doesn't verify the
peripheral device address width specified by a client driver, which in its
turn if unsupported or undefined value passed may cause DMA-transfer being
misconfigured. It's fixed in the first patch of the series.

In addition to that three cleanup patches follow the fixes described above
in order to make the DWC-engine configuration procedure more coherent.
First one simplifies the CTL_LO register setup methods. Second and third
patches simplify the max-burst calculation procedure and unify it with the
rest of the verification methods. Please see the patches log for more
details.

Final patch is another cleanup which unifies the status variables naming
in the driver.

Link: https://lore.kernel.org/dmaengine/20240416162908.24180-1-fancer.lancer@gmail.com/
Changelog v2:
- Add a note to the Patch #1 commit message about having the verification
  method called in the dwc_config() function. (Andy)
- Add hyphen to "1byte" in the in-situ comment. (Andy)
- Convert "err" to "ret" variables and add a new patch which unifies the
  status variables naming. (Andy)
- Add a in-situ comment regarding why the memory-side bus width
  verification was required. (Andy)
- Group sms+dms and smsize+dmsize local variables initializations up. (Andy)
- Move the zero initializations out to the variables init block
  in the prepare_ctllo() callbacks. (Andy)
- Directly refer to dwc_config() in the commit messages. (Andy)
- Convert dwc_verify_maxburst() to returning zero. (Andy)
- Add a comment regarding the values utilized in dwc_verify_p_buswidth()
  being pre-verified before the method is called. (Andy)
- Add new patches:
  [PATCH v2 4/6] dmaengine: dw: Define encode_maxburst() above prepare_ctllo() callbacks
  [PATCH v2 6/6] dmaengine: dw: Unify ret-val local variable naming
  (Andy)

Link: https://lore.kernel.org/dmaengine/20240419175655.25547-1-fancer.lancer@gmail.com/
Changelog v3:
- Rebase onto the kernel 6.10-rc4.
- Just resend.

base-commit: 6ba59ff4227927d3a8530fc2973b80e94b54d58f
Signed-off-by: Serge Semin <fancer.lancer@gmail.com>
Cc: "Ilpo Järvinen" <ilpo.jarvinen@linux.intel.com>
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: Jiri Slaby <jirislaby@kernel.org>
Cc: dmaengine@vger.kernel.org
Cc: linux-serial@vger.kernel.org
Cc: linux-kernel@vger.kernel.org

Serge Semin (6):
  dmaengine: dw: Add peripheral bus width verification
  dmaengine: dw: Add memory bus width verification
  dmaengine: dw: Simplify prepare CTL_LO methods
  dmaengine: dw: Define encode_maxburst() above prepare_ctllo()
    callbacks
  dmaengine: dw: Simplify max-burst calculation procedure
  dmaengine: dw: Unify ret-val local variables naming

 drivers/dma/dw/core.c     | 131 +++++++++++++++++++++++++++++++-------
 drivers/dma/dw/dw.c       |  40 +++++++-----
 drivers/dma/dw/idma32.c   |  19 +++---
 drivers/dma/dw/platform.c |  20 +++---
 drivers/dma/dw/regs.h     |   1 -
 5 files changed, 154 insertions(+), 57 deletions(-)

-- 
2.43.0

.

From: Serge Semin <fancer.lancer@gmail.com>
To: Michal Simek <michal.simek@amd.com>,
	Alexander Stein <alexander.stein@ew.tq-group.com>,
	Borislav Petkov <bp@alien8.de>,
	Tony Luck <tony.luck@intel.com>,
	James Morse <james.morse@arm.com>,
	Mauro Carvalho Chehab <mchehab@kernel.org>,
	Robert Richter <rric@kernel.org>
Cc: Serge Semin <fancer.lancer@gmail.com>,
	Punnaiah Choudary Kalluri <punnaiah.choudary.kalluri@xilinx.com>,
	Dinh Nguyen <dinguyen@kernel.org>,
	Shubhrajyoti Datta <shubhrajyoti.datta@gmail.com>,
	Arnd Bergmann <arnd@arndb.de>,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	linux-arm-kernel@lists.infradead.org,
	linux-edac@vger.kernel.org,
	linux-kernel@vger.kernel.org
Subject: [PATCH RESEND v6 00/18] EDAC/mc/synopsys: Various fixes and cleanups
Date: Thu, 27 Jun 2024 20:32:07 +0300
Message-ID: <20240627173251.25718-1-fancer.lancer@gmail.com>
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1261229
Newsgroups: org.kernel.vger.linux-kernel,org.infradead.lists.linux-arm-kernel,org.kernel.vger.linux-edac
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

This patchset is a first one in the series created in the framework of
my Synopsys DW uMCTL2 DDRC-related work:

[1: In-progress v6] EDAC/mc/synopsys: Various fixes and cleanups
Link: ---you are looking at it---
[2: In-progress v4] EDAC/synopsys: Add generic DDRC info and address mapping
Link: https://lore.kernel.org/linux-edac/20230920192806.29960-1-fancer.lancer@gmail.com
[3: In-progress v4] EDAC/synopsys: Add generic resources and Scrub support
Link: https://lore.kernel.org/linux-edac/20230920195720.32047-1-fancer.lancer@gmail.com

Note the patchsets above must be merged in the same order as they are
placed in the list in order to prevent conflicts. Nothing prevents them
from being reviewed synchronously though. Any tests are very welcome.
Thanks in advance.

The main goal of the entire set of the changes provided in the mentioned
patchsets is to as much as possible specialise the synopsys_edac.c driver
to be working with the Synopsys DW uMCTL2 DDR controllers of various
versions and synthesized parameters, and add useful error-detection
features.

Regarding this series content. It's an initial patchset which
traditionally provides various fixes, cleanups and modifications required
for the more comfortable further features development. The main goal of it
though is to detach the Xilinx Zynq A05 DDRC related code into the
dedicated driver since first it has nothing to do with the Synopsys DW
uMCTL2 DDR controller and second it will be a great deal obstacle on the
way of extending the Synopsys-part functionality.

The series starts with the fixes patches, which in short concern the next
aspects: touching the ZynqMP-specific CSRs on the Xilinx ZinqMP platform
only, serializing an access to the ECCCLR/ECCCTL register, adding correct memory
devices type detection, setting a correct value to the
mem_ctl_info.scrub_cap field, dropping an erroneous ADDRMAP[4] parsing and
getting back a correct order of the ECC errors info detection procedure.

Afterwards the patchset provides several cleanup patches required for the
more coherent code splitting up (Xilinx Zynq A05 and Synopsys DW uMCTL2
DDRCs) so the provided modifications would be useful in both drivers.
First of all the next redundant entities are dropped: internal
CE/UE errors counters, local to_mci() macros definition, some redundant
ecc_error_info structure fields and redundant info from the error message,
duplicated dimm->nr_pages debug printout and spaces from the MEM_TYPE
flags declarations. (The later two updates concern the MCI core part.)
Secondly before detaching the Zynq A05-related code an unique MC index
allocation infrastructure is added to the MCI core. It's required since
after splitting the driver up both supported types of memory devices could
be correctly probed on the same platform. Note even though it's currently
unsupported by the synsopsys_edac.c driver it's claimed to be possible by
the original driver author (it was a reason of having two unrelated
devices supported in a single driver). Finally the Xilinx Zynq A05 part of
the driver is moved out to a dedicated driver. After that the
platform-specific setups API is removed from the Synopsys DW uMCTL2 DDRC
driver since it's no longer required.

Finally as the cherry on the cake a set of the local coding style
cleanups are provided: unify the DW uMCTL2 DDRC driver entities naming and
replace the open-coded "shift/mask" pattern with the kernel helpers like
BIT/GENMASK/FIELD_x in there. It shall significantly improve the code
readability.

Changelog v2:
- Move Synopsys DW uMCTL2 DDRC bindings file renaming to a separate patch.
  (@Krzysztof)
- Introduce a new compatible string "snps,dw-umctl2-ddrc" matching the new
  DT-schema name.
- Forgot to fix some of the prefix of the SYNPS_ZYNQMP_IRQ_REGS macro
  in several places. (@tbot)
- Drop the no longer used "priv" pointer from the mc_init() function.
  (@tbot)
- Include "linux/bitfield.h" header file to get the FIELD_GET macro
  definition. (@tbot)
- Drop the already merged in patches:
[PATCH 12/20] EDAC/mc: Replace spaces with tabs in memtype flags definition
[PATCH 13/20] EDAC/mc: Drop duplicated dimm->nr_pages debug printout

Changelog v3:
- Drop the no longer used "priv" pointer from the mc_init() function.
  (@tbot)
- Drop the merged in patches:
[PATCH v2 14/19] dt-bindings: memory: snps: Detach Zynq DDRC controller support
[PATCH v2 15/19] dt-bindings: memory: snps: Use more descriptive device name
  (@Krzysztof)

Changelog v4:
- Remove Rob, Krzysztof and DT-mailing list from Cc since the respective
  patches have already been merged in.
- Add a new patch
  [PATCH v4 6/20] EDAC/synopsys: Fix misleading IRQ self-cleared quirk flag
  detached from the very first patch of the series.
- Add a new patch
  [PATCH v4 15/20] EDAC/mc: Re-use generic unique MC index allocation procedure
- Add a new patch
  [PATCH v4 18/20] EDAC/synopsys: Unify CSRs macro declarations
  collecting the changes from various patches of the series.
- Drop redundant empty lines left by mistake.
- Drop private counters access from the check_errors() method too.
- Rebase onto the kernel v6.6-rcX.

Link: https://lore.kernel.org/linux-edac/20230920191059.28395-1-fancer.lancer@gmail.com
Changelog v5:
- Fix function names in the zynq_edac.c kdoc.
- Rebase onto the kernel 6.8-rc3.

Link: https://lore.kernel.org/linux-edac/20240222181324.28242-1-fancer.lancer@gmail.com/
Changelog v6:
- Drop the patch with the already applied content:
  [PATCH v5 01/20] EDAC/synopsys: Fix ECC status data and IRQ disable race condition
  [PATCH v5 07/20] EDAC/synopsys: Use platform device devm ioremap method
- Minor commit log changes.
- Rebase onto the kernel 6.10-rc4 and just resend.

base-commit: 6ba59ff4227927d3a8530fc2973b80e94b54d58f
Signed-off-by: Serge Semin <fancer.lancer@gmail.com>
Cc: Punnaiah Choudary Kalluri <punnaiah.choudary.kalluri@xilinx.com>
Cc: Dinh Nguyen <dinguyen@kernel.org>
Cc: Shubhrajyoti Datta <shubhrajyoti.datta@gmail.com>
Cc: Arnd Bergmann <arnd@arndb.de>
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: linux-arm-kernel@lists.infradead.org
Cc: linux-edac@vger.kernel.org
Cc: linux-kernel@vger.kernel.org

Serge Semin (18):
  EDAC/synopsys: Fix generic device type detection procedure
  EDAC/synopsys: Fix mci->scrub_cap field setting
  EDAC/synopsys: Drop erroneous ADDRMAP4.addrmap_col_b10 parse
  EDAC/synopsys: Fix reading errors count before ECC status
  EDAC/synopsys: Fix misleading IRQ self-cleared quirk flag
  EDAC/synopsys: Drop internal CE and UE counters
  EDAC/synopsys: Drop local to_mci() macro definition
  EDAC/synopsys: Drop struct ecc_error_info.blknr field
  EDAC/synopsys: Shorten out struct ecc_error_info.bankgrpnr field name
  EDAC/synopsys: Drop redundant info from the error messages
  EDAC/mc: Init DIMM labels in MC registration method
  EDAC/mc: Add generic unique MC index allocation procedure
  EDAC/mc: Re-use generic unique MC index allocation procedure
  EDAC/synopsys: Detach Zynq A05 DDRC support to separate driver
  EDAC/synopsys: Drop unused platform-specific setup API
  EDAC/synopsys: Unify CSRs macro declarations
  EDAC/synopsys: Unify struct/macro/function prefixes
  EDAC/synopsys: Convert to using BIT/GENMASK/FIELD_x macros

 MAINTAINERS                  |   1 +
 drivers/edac/Kconfig         |   9 +-
 drivers/edac/Makefile        |   1 +
 drivers/edac/dmc520_edac.c   |   4 +-
 drivers/edac/edac_mc.c       | 135 ++++-
 drivers/edac/edac_mc.h       |   4 +
 drivers/edac/pasemi_edac.c   |   5 +-
 drivers/edac/ppc4xx_edac.c   |   5 +-
 drivers/edac/synopsys_edac.c | 927 ++++++++++++-----------------------
 drivers/edac/zynq_edac.c     | 501 +++++++++++++++++++
 10 files changed, 932 insertions(+), 660 deletions(-)
 create mode 100644 drivers/edac/zynq_edac.c

-- 
2.43.0

.

From: Thomas Huth <thuth@redhat.com>
To: dri-devel@lists.freedesktop.org,
	Maarten Lankhorst <maarten.lankhorst@linux.intel.com>,
	Maxime Ripard <mripard@kernel.org>,
	Thomas Zimmermann <tzimmermann@suse.de>,
	David Airlie <airlied@gmail.com>,
	Daniel Vetter <daniel@ffwll.ch>,
	Geert Uytterhoeven <geert@linux-m68k.org>
Cc: linux-kernel@vger.kernel.org,
	Javier Martinez Canillas <javierm@redhat.com>,
	Hamza Mahfooz <hamza.mahfooz@amd.com>
Subject: [PATCH] drm/fbdev-generic: Fix framebuffer on big endian devices
Date: Thu, 27 Jun 2024 19:35:30 +0200
Message-ID: <20240627173530.460615-1-thuth@redhat.com>
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1261253
Newsgroups: org.kernel.vger.linux-kernel,org.freedesktop.lists.dri-devel
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

Starting with kernel 6.7, the framebuffer text console is not working
anymore with the virtio-gpu device on s390x hosts. Such big endian fb
devices are usinga different pixel ordering than little endian devices,
e.g. DRM_FORMAT_BGRX8888 instead of DRM_FORMAT_XRGB8888.

This used to work fine as long as drm_client_buffer_addfb() was still
calling drm_mode_addfb() which called drm_driver_legacy_fb_format()
internally to get the right format. But drm_client_buffer_addfb() has
recently been reworked to call drm_mode_addfb2() instead with the
format value that has been passed to it as a parameter (see commit
6ae2ff23aa43 ("drm/client: Convert drm_client_buffer_addfb() to drm_mode_addfb2()").

That format parameter is determined in drm_fbdev_generic_helper_fb_probe()
via the drm_mode_legacy_fb_format() function - which only generates
formats suitable for little endian devices. So to fix this issue
switch to drm_driver_legacy_fb_format() here instead to take the
device endianness into consideration.

Fixes: 6ae2ff23aa43 ("drm/client: Convert drm_client_buffer_addfb() to drm_mode_addfb2()")
Closes: https://issues.redhat.com/browse/RHEL-45158
Signed-off-by: Thomas Huth <thuth@redhat.com>
---
 drivers/gpu/drm/drm_fbdev_generic.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/drm_fbdev_generic.c b/drivers/gpu/drm/drm_fbdev_generic.c
index 97e579c33d84..1e200d815e1a 100644
--- a/drivers/gpu/drm/drm_fbdev_generic.c
+++ b/drivers/gpu/drm/drm_fbdev_generic.c
@@ -84,7 +84,8 @@ static int drm_fbdev_generic_helper_fb_probe(struct drm_fb_helper *fb_helper,
 		    sizes->surface_width, sizes->surface_height,
 		    sizes->surface_bpp);
 
-	format = drm_mode_legacy_fb_format(sizes->surface_bpp, sizes->surface_depth);
+	format = drm_driver_legacy_fb_format(dev, sizes->surface_bpp,
+					     sizes->surface_depth);
 	buffer = drm_client_framebuffer_create(client, sizes->surface_width,
 					       sizes->surface_height, format);
 	if (IS_ERR(buffer))
-- 
2.45.2

.

Message-ID: <76d879d2-200d-4b15-8fab-fcd382a4c3e2@gmail.com>
Date: Thu, 27 Jun 2024 19:36:23 +0200
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Content-Language: en-US
To: Linux Kernel Mailing List <linux-kernel@vger.kernel.org>
Cc: Linux Kernel Build System <linux-kbuild@vger.kernel.org>,
 Chris Mason <clm@fb.com>, Josef Bacik <josef@toxicpanda.com>,
 David Sterba <dsterba@suse.com>, linux-btrfs@vger.kernel.org
From: Mirsad Todorovac <mtodorovac69@gmail.com>
Subject: =?UTF-8?Q?=5BPROBLEM=5D_make_randconfig=3A_fs/btrfs/ref-verify=2Ec?=
 =?UTF-8?B?OjUwMDoxNjogZXJyb3I6IOKAmHJldOKAmSBtYXkgYmUgdXNlZCB1bmluaXRpYWxp?=
 =?UTF-8?Q?zed_in_this_function_=5B-Werror=3Dmaybe-uninitialized=5D?=
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1261254
Newsgroups: org.kernel.vger.linux-kernel,org.kernel.vger.linux-btrfs,org.kernel.vger.linux-kbuild
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

Hi all,

After following Boris' advice in https://lore.kernel.org/lkml/20240404134142.GCZg6uFh_ZSzUFLChd@fat_crate.local/
on using the randconfig test, this is the second catch:

KCONFIG_SEED=0xEE80059C

marvin@defiant:~/linux/kernel/linux_torvalds$ time nice make -j 36 bindeb-pkg |& tee ../err-6.10-rc5-05a.log; date
  GEN     debian
dpkg-buildpackage --build=binary --no-pre-clean --unsigned-changes -R'make -f debian/rules' -j1 -a$(cat debian/arch)
dpkg-buildpackage: info: source package linux-upstream
dpkg-buildpackage: info: source version 6.10.0-rc5-gafcd48134c58-27
dpkg-buildpackage: info: source distribution jammy
dpkg-buildpackage: info: source changed by marvin <marvin@defiant>
dpkg-architecture: warning: specified GNU system type i686-linux-gnu does not match CC system type x86_64-linux-gnu, try setting a correct CC environment variable
 dpkg-source --before-build .
dpkg-buildpackage: info: host architecture i386
 make -f debian/rules binary
#
# No change to .config
#
  CALL    scripts/checksyscalls.sh
  UPD     init/utsversion-tmp.h
  CC      init/version.o
  AR      init/built-in.a
  CHK     kernel/kheaders_data.tar.xz
  CC [M]  fs/btrfs/ref-verify.o
  AR      fs/built-in.a
fs/btrfs/ref-verify.c: In function ‘process_extent_item.isra’:
fs/btrfs/ref-verify.c:500:16: error: ‘ret’ may be used uninitialized in this function [-Werror=maybe-uninitialized]
  500 |         return ret;
      |                ^~~
cc1: all warnings being treated as errors
make[7]: *** [scripts/Makefile.build:244: fs/btrfs/ref-verify.o] Error 1
make[6]: *** [scripts/Makefile.build:485: fs/btrfs] Error 2
make[5]: *** [scripts/Makefile.build:485: fs] Error 2
make[4]: *** [Makefile:1934: .] Error 2
make[3]: *** [debian/rules:74: build-arch] Error 2
dpkg-buildpackage: error: make -f debian/rules binary subprocess returned exit status 2
make[2]: *** [scripts/Makefile.package:121: bindeb-pkg] Error 2
make[1]: *** [/home/marvin/linux/kernel/linux_torvalds/Makefile:1555: bindeb-pkg] Error 2
make: *** [Makefile:240: __sub-make] Error 2

real	0m2.583s
user	0m9.943s
sys	0m5.607s
Thu Jun 27 19:14:55 CEST 2024
marvin@defiant:~/linux/kernel/linux_torvalds$ 

This fix does nothing to the algorithm, but it silences compiler -Werror=maybe-uninitialised

---
diff --git a/fs/btrfs/ref-verify.c b/fs/btrfs/ref-verify.c
index cf531255ab76..0b5ff30e2d81 100644
--- a/fs/btrfs/ref-verify.c
+++ b/fs/btrfs/ref-verify.c
@@ -459,6 +459,8 @@ static int process_extent_item(struct btrfs_fs_info *fs_info,
                iref = (struct btrfs_extent_inline_ref *)(ei + 1);
        }
 
+       ret = -EINVAL;
+
        ptr = (unsigned long)iref;
        end = (unsigned long)ei + item_size;
        while (ptr < end) {
---

Hope this helps.

Best regards,
Mirsad Todorovac
.

From: =?utf-8?q?Thomas_Wei=C3=9Fschuh?= <linux@weissschuh.net>
Subject: [PATCH v2 0/4] i2c: smbus cleanups and SPD support for piix4
Date: Thu, 27 Jun 2024 19:48:10 +0200
Message-Id: <20240627-piix4-spd-v2-0-617ce47b8ff4@weissschuh.net>
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 8bit
To: Andi Shyti <andi.shyti@kernel.org>, Jean Delvare <jdelvare@suse.com>
Cc: linux-i2c@vger.kernel.org, linux-kernel@vger.kernel.org, 
 Guenter Roeck <linux@roeck-us.net>, 
 Wolfram Sang <wsa+renesas@sang-engineering.com>, 
 Heiner Kallweit <hkallweit1@gmail.com>, 
 =?utf-8?q?Thomas_Wei=C3=9Fschuh?= <linux@weissschuh.net>
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1261276
Newsgroups: org.kernel.vger.linux-kernel,org.kernel.vger.linux-i2c
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

Patches 1-3 are preparation patches, with patch 1 being a fix.
Patch 4 is the actual change to piix4.

Patch 3 drops the warning about muxed busses.
I didn't feel that the warning only would warrant the additional
complexity it introduces with multiple callers of i2c_register_spd().

If other feel different, maybe a more generic warning/info or a source
code comment would suffice.

On a machine with 32 slots of which 16 are populated only the first 8
slots are addressable, half of which are empty.
Unfortunately I couldn't run a custom kernel for testing.
But manually instantiating ee1004 devices worked as expected,
so the proposed changes should also work.

Tested with spd5118 and two DIMMs.

Guenter, I dropped your Tested-by as the piix4 patch changed.

Signed-off-by: Thomas Weißschuh <linux@weissschuh.net>
---
Changes in v2:
- Add new i2c-smbus prep patches
- Only register SPD for port 0
- Link to v1: https://lore.kernel.org/r/20240530-piix4-spd-v1-1-9cbf1abebf41@weissschuh.net

---
Thomas Weißschuh (4):
      i2c: smbus: only limit max banks to eight
      i2c: smbus: probe SPDs on a best-effort basis
      i2c: smbus: drop warning about muxed segments requirement
      i2c: piix4: Register SPDs

 drivers/i2c/busses/Kconfig     |  1 +
 drivers/i2c/busses/i2c-piix4.c |  4 ++++
 drivers/i2c/i2c-smbus.c        | 15 ++++-----------
 3 files changed, 9 insertions(+), 11 deletions(-)
---
base-commit: 4e2600bca665197acb537ae63f24d3075e6bac8b
change-id: 20240530-piix4-spd-39c156b22959

Best regards,
-- 
Thomas Weißschuh <linux@weissschuh.net>

.

Date: Thu, 27 Jun 2024 18:48:52 +0100
From: Mark Brown <broonie@kernel.org>
To: Linux Next Mailing List <linux-next@vger.kernel.org>
Cc: Linux Kernel Mailing List <linux-kernel@vger.kernel.org>
Subject: linux-next: Tree for Jun 27
Message-ID: <Zn2mBPrQHe4k1TXC@sirena.org.uk>
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha512;
	protocol="application/pgp-signature"; boundary="6R/g9yWYluo+aSeQ"
Content-Disposition: inline
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1261277 org.kernel.vger.linux-next:61955
Newsgroups: org.kernel.vger.linux-kernel,org.kernel.vger.linux-next
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail


--6R/g9yWYluo+aSeQ
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline

Hi all,

Changes since 20240626:

The rpmsg tree gained a build failure, I used the version from 20240626
instead.

The vfs-brauner tree gained a build failure, I used the version from
20240626 instead.

The drm tree gained multiple conflicts with the drm-fixes tree.

The drm tree gained a conflict with Linus' tree.

The leds-lj tree gained a conflict with the chrome-platform tree.

Non-merge commits (relative to Linus' tree): 8127
 8860 files changed, 765288 insertions(+), 152271 deletions(-)

----------------------------------------------------------------------------

I have created today's linux-next tree at
git://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git
(patches at http://www.kernel.org/pub/linux/kernel/next/ ).  If you
are tracking the linux-next tree using git, you should not use "git pull"
to do so as that will try to merge the new linux-next release with the
old one.  You should use "git fetch" and checkout or reset to the new
master.

You can see which trees have been included by looking in the Next/Trees
file in the source.  There is also the merge.log file in the Next
directory.  Between each merge, the tree was built with a defconfig
for arm64, an allmodconfig for x86_64, a multi_v7_defconfig for arm
and a native build of tools/perf.

Below is a summary of the state of the merge.

I am currently merging 378 trees (counting Linus' and 106 trees of bug
fix patches pending for the current merge release).

Stats about the size of the tree over time can be seen at
http://neuling.org/linux-next-size.html .

Status of my local build tests will be at
http://kisskb.ellerman.id.au/linux-next .  If maintainers want to give
advice about cross compilers/configs that work, we are always open to add
more builds.

Thanks to Randy Dunlap for doing many randconfig builds.  And to Paul
Gortmaker for triage and bug fixes.

--6R/g9yWYluo+aSeQ
Content-Type: application/pgp-signature; name="signature.asc"

-----BEGIN PGP SIGNATURE-----

iQEzBAABCgAdFiEEreZoqmdXGLWf4p/qJNaLcl1Uh9AFAmZ9pgMACgkQJNaLcl1U
h9BnAwf+LfsBtV8Fi/SWpoMLJltuLYyK4Cq5O1h3prZYUvjM1DX4pRDdNLkr57NU
E8A9KIHdf8ptE3Dc1wt7df/uJdmfGtu18t1sQyQqmlpXzpgyKnAUJsBf3l52CI2s
v1kOku3GrxktF1UyoaAm1Vku8nVWNuT4wy/bGWS/s9QBO27ZhB76bKFoRrmUKdqD
g8K3xvksjKYIiQbpBQ4DrQRVCtaSOviaoXY8dyJukGb2PON+ede6QSaLvdqM/q0w
f9OHByQsnFkmQUBNPCkDX9q/M+6IqUoM2jT01Qiuokuv5csU4BFwqYVNKTo1uLh0
a3y8grm9uArLzO13A564zD8y0x9jig==
=m0PV
-----END PGP SIGNATURE-----

--6R/g9yWYluo+aSeQ--
.

From: Gautam Menghani <gautam@linux.ibm.com>
To: mpe@ellerman.id.au, npiggin@gmail.com, christophe.leroy@csgroup.eu,
        naveen.n.rao@linux.ibm.com
Cc: Gautam Menghani <gautam@linux.ibm.com>, linuxppc-dev@lists.ozlabs.org,
        kvm@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: [RFC PATCH 0/2] Fix doorbell emulation for nested KVM guests in V1 API
Date: Thu, 27 Jun 2024 23:33:34 +0530
Message-ID: <20240627180342.110238-1-gautam@linux.ibm.com>
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1261285
Newsgroups: org.kernel.vger.linux-kernel,org.kernel.vger.kvm,org.ozlabs.lists.linuxppc-dev
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

Doorbell emulation for nested KVM guests in V1 API is broken because of
2 reasons:
1. L0 presenting H_EMUL_ASSIST to L1 instead of H_FAC_UNAVAIL
2. Broken plumbing for passing around doorbell state.

Fix the trap passed to L1 and the plumbing for maintaining doorbell
state.

Gautam Menghani (2):
  Revert "KVM: PPC: Book3S HV Nested: Stop forwarding all HFUs to L1"
  arch/powerpc/kvm: Fix doorbells for nested KVM guests on PowerNV

 arch/powerpc/kvm/book3s_hv.c        | 40 ++++++++---------------------
 arch/powerpc/kvm/book3s_hv_nested.c | 20 ++++++++++++---
 2 files changed, 26 insertions(+), 34 deletions(-)

-- 
2.45.1

.

From: Tanmay Shah <tanmay.shah@amd.com>
To: <andersson@kernel.org>, <mathieu.poirier@linaro.org>
CC: <linux-remoteproc@vger.kernel.org>, <linux-kernel@vger.kernel.org>,
	"Tanmay Shah" <tanmay.shah@amd.com>
Subject: [PATCH v6] remoteproc: xlnx: add attach detach support
Date: Thu, 27 Jun 2024 10:29:38 -0700
Message-ID: <20240627172936.227439-1-tanmay.shah@amd.com>
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1261293
Newsgroups: org.kernel.vger.linux-kernel,org.kernel.vger.linux-remoteproc
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

It is possible that remote processor is already running before
linux boot or remoteproc platform driver probe. Implement required
remoteproc framework ops to provide resource table address and
connect or disconnect with remote processor in such case.

Signed-off-by: Tanmay Shah <tanmay.shah@amd.com>
---

Changes in v6:
  - Move rproc state check to add_tcm_carveout
  - free node reference using of_node_put
  - fix iounmap use

Changes in v5:
  - Fix comment on assigning DETACHED state to remoteproc instance
    during driver probe.
  - Fix patch subject and remove "drivers"

Changes in v4:
  - Move change log out of commit text

Changes in v3:
  - Drop SRAM patch from the series
  - Change type from "struct resource_table *" to void __iomem *
  - Change comment format from /** to /*
  - Remove unmap of resource table va address during detach, allowing
    attach-detach-reattach use case.
  - Unmap rsc_data_va after retrieving resource table data structure.
  - Unmap resource table va during driver remove op

Changes in v2:
  - Fix typecast warnings reported using sparse tool.
  - Fix following sparse warnings:

 drivers/remoteproc/xlnx_r5_remoteproc.c | 151 ++++++++++++++++++++++++
 1 file changed, 151 insertions(+)

diff --git a/drivers/remoteproc/xlnx_r5_remoteproc.c b/drivers/remoteproc/xlnx_r5_remoteproc.c
index 84243d1dff9f..596f3ffb8935 100644
--- a/drivers/remoteproc/xlnx_r5_remoteproc.c
+++ b/drivers/remoteproc/xlnx_r5_remoteproc.c
@@ -25,6 +25,10 @@
 /* RX mailbox client buffer max length */
 #define MBOX_CLIENT_BUF_MAX	(IPI_BUF_LEN_MAX + \
 				 sizeof(struct zynqmp_ipi_message))
+
+#define RSC_TBL_XLNX_MAGIC	((uint32_t)'x' << 24 | (uint32_t)'a' << 16 | \
+				 (uint32_t)'m' << 8 | (uint32_t)'p')
+
 /*
  * settings for RPU cluster mode which
  * reflects possible values of xlnx,cluster-mode dt-property
@@ -73,6 +77,26 @@ struct mbox_info {
 	struct mbox_chan *rx_chan;
 };
 
+/**
+ * struct rsc_tbl_data
+ *
+ * Platform specific data structure used to sync resource table address.
+ * It's important to maintain order and size of each field on remote side.
+ *
+ * @version: version of data structure
+ * @magic_num: 32-bit magic number.
+ * @comp_magic_num: complement of above magic number
+ * @rsc_tbl_size: resource table size
+ * @rsc_tbl: resource table address
+ */
+struct rsc_tbl_data {
+	const int version;
+	const u32 magic_num;
+	const u32 comp_magic_num;
+	const u32 rsc_tbl_size;
+	const uintptr_t rsc_tbl;
+} __packed;
+
 /*
  * Hardcoded TCM bank values. This will stay in driver to maintain backward
  * compatibility with device-tree that does not have TCM information.
@@ -95,20 +119,24 @@ static const struct mem_bank_data zynqmp_tcm_banks_lockstep[] = {
 /**
  * struct zynqmp_r5_core
  *
+ * @rsc_tbl_va: resource table virtual address
  * @dev: device of RPU instance
  * @np: device node of RPU instance
  * @tcm_bank_count: number TCM banks accessible to this RPU
  * @tcm_banks: array of each TCM bank data
  * @rproc: rproc handle
+ * @rsc_tbl_size: resource table size retrieved from remote
  * @pm_domain_id: RPU CPU power domain id
  * @ipi: pointer to mailbox information
  */
 struct zynqmp_r5_core {
+	void __iomem *rsc_tbl_va;
 	struct device *dev;
 	struct device_node *np;
 	int tcm_bank_count;
 	struct mem_bank_data **tcm_banks;
 	struct rproc *rproc;
+	u32 rsc_tbl_size;
 	u32 pm_domain_id;
 	struct mbox_info *ipi;
 };
@@ -557,6 +585,14 @@ static int add_tcm_banks(struct rproc *rproc)
 		dev_dbg(dev, "TCM carveout %s addr=%llx, da=0x%x, size=0x%lx",
 			bank_name, bank_addr, da, bank_size);
 
+		/*
+		 * In DETACHED state firmware is already running so no need to
+		 * request add TCM registers. However, request TCM PD node to let
+		 * platform management firmware know that TCM is in use.
+		 */
+		if (rproc->state == RPROC_DETACHED)
+			continue;
+
 		rproc_mem = rproc_mem_entry_init(dev, NULL, bank_addr,
 						 bank_size, da,
 						 tcm_mem_map, tcm_mem_unmap,
@@ -662,6 +698,107 @@ static int zynqmp_r5_rproc_unprepare(struct rproc *rproc)
 	return 0;
 }
 
+static struct resource_table *zynqmp_r5_get_loaded_rsc_table(struct rproc *rproc,
+							     size_t *size)
+{
+	struct zynqmp_r5_core *r5_core;
+
+	r5_core = rproc->priv;
+
+	*size = r5_core->rsc_tbl_size;
+
+	return (struct resource_table *)r5_core->rsc_tbl_va;
+}
+
+static int zynqmp_r5_get_rsc_table_va(struct zynqmp_r5_core *r5_core)
+{
+	struct resource_table *rsc_tbl_addr;
+	struct device *dev = r5_core->dev;
+	struct rsc_tbl_data *rsc_data_va;
+	struct resource res_mem;
+	struct device_node *np;
+	int ret;
+
+	/*
+	 * It is expected from remote processor firmware to provide resource
+	 * table address via struct rsc_tbl_data data structure.
+	 * Start address of first entry under "memory-region" property list
+	 * contains that data structure which holds resource table address, size
+	 * and some magic number to validate correct resource table entry.
+	 */
+	np = of_parse_phandle(r5_core->np, "memory-region", 0);
+	if (!np) {
+		dev_err(dev, "failed to get memory region dev node\n");
+		return -EINVAL;
+	}
+
+	ret = of_address_to_resource(np, 0, &res_mem);
+	of_node_put(np);
+	if (ret) {
+		dev_err(dev, "failed to get memory-region resource addr\n");
+		return -EINVAL;
+	}
+
+	rsc_data_va = (struct rsc_tbl_data *)ioremap_wc(res_mem.start,
+							sizeof(struct rsc_tbl_data));
+	if (!rsc_data_va) {
+		dev_err(dev, "failed to map resource table data address\n");
+		return -EIO;
+	}
+
+	/*
+	 * If RSC_TBL_XLNX_MAGIC number and its complement isn't found then
+	 * do not consider resource table address valid and don't attach
+	 */
+	if (rsc_data_va->magic_num != RSC_TBL_XLNX_MAGIC ||
+	    rsc_data_va->comp_magic_num != ~RSC_TBL_XLNX_MAGIC) {
+		dev_dbg(dev, "invalid magic number, won't attach\n");
+		return -EINVAL;
+	}
+
+	r5_core->rsc_tbl_va = ioremap_wc(rsc_data_va->rsc_tbl,
+					 rsc_data_va->rsc_tbl_size);
+	if (!r5_core->rsc_tbl_va) {
+		dev_err(dev, "failed to get resource table va\n");
+		return -EINVAL;
+	}
+
+	rsc_tbl_addr = (struct resource_table *)r5_core->rsc_tbl_va;
+
+	/*
+	 * As of now resource table version 1 is expected. Don't fail to attach
+	 * but warn users about it.
+	 */
+	if (rsc_tbl_addr->ver != 1)
+		dev_warn(dev, "unexpected resource table version %d\n",
+			 rsc_tbl_addr->ver);
+
+	r5_core->rsc_tbl_size = rsc_data_va->rsc_tbl_size;
+
+	iounmap((void __iomem *)rsc_data_va);
+
+	return 0;
+}
+
+static int zynqmp_r5_attach(struct rproc *rproc)
+{
+	dev_dbg(&rproc->dev, "rproc %d attached\n", rproc->index);
+
+	return 0;
+}
+
+static int zynqmp_r5_detach(struct rproc *rproc)
+{
+	/*
+	 * Generate last notification to remote after clearing virtio flag.
+	 * Remote can avoid polling on virtio reset flag if kick is generated
+	 * during detach by host and check virtio reset flag on kick interrupt.
+	 */
+	zynqmp_r5_rproc_kick(rproc, 0);
+
+	return 0;
+}
+
 static const struct rproc_ops zynqmp_r5_rproc_ops = {
 	.prepare	= zynqmp_r5_rproc_prepare,
 	.unprepare	= zynqmp_r5_rproc_unprepare,
@@ -673,6 +810,9 @@ static const struct rproc_ops zynqmp_r5_rproc_ops = {
 	.sanity_check	= rproc_elf_sanity_check,
 	.get_boot_addr	= rproc_elf_get_boot_addr,
 	.kick		= zynqmp_r5_rproc_kick,
+	.get_loaded_rsc_table = zynqmp_r5_get_loaded_rsc_table,
+	.attach		= zynqmp_r5_attach,
+	.detach		= zynqmp_r5_detach,
 };
 
 /**
@@ -723,6 +863,16 @@ static struct zynqmp_r5_core *zynqmp_r5_add_rproc_core(struct device *cdev)
 		goto free_rproc;
 	}
 
+	/*
+	 * If firmware is already available in the memory then move rproc state
+	 * to DETACHED. Firmware can be preloaded via debugger or by any other
+	 * agent (processors) in the system.
+	 * If firmware isn't available in the memory and resource table isn't
+	 * found, then rproc state remains OFFLINE.
+	 */
+	if (!zynqmp_r5_get_rsc_table_va(r5_core))
+		r5_rproc->state = RPROC_DETACHED;
+
 	r5_core->rproc = r5_rproc;
 	return r5_core;
 
@@ -1134,6 +1284,7 @@ static void zynqmp_r5_cluster_exit(void *data)
 	for (i = 0; i < cluster->core_count; i++) {
 		r5_core = cluster->r5_cores[i];
 		zynqmp_r5_free_mbox(r5_core->ipi);
+		iounmap(r5_core->rsc_tbl_va);
 		of_reserved_mem_device_release(r5_core->dev);
 		put_device(r5_core->dev);
 		rproc_del(r5_core->rproc);

base-commit: 8fa5d65ee3f228ad8fb4a2a20cbd8cf7a1fcfcab
-- 
2.25.1

.

From: Namhyung Kim <namhyung@kernel.org>
To: Arnaldo Carvalho de Melo <acme@kernel.org>,
	Ian Rogers <irogers@google.com>,
	Kan Liang <kan.liang@linux.intel.com>
Cc: Jiri Olsa <jolsa@kernel.org>,
	Adrian Hunter <adrian.hunter@intel.com>,
	Peter Zijlstra <peterz@infradead.org>,
	Ingo Molnar <mingo@kernel.org>,
	LKML <linux-kernel@vger.kernel.org>,
	linux-perf-users@vger.kernel.org
Subject: [PATCH] perf report: Display pregress bar on redirected pipe data
Date: Thu, 27 Jun 2024 11:19:16 -0700
Message-ID: <20240627181916.1202110-1-namhyung@kernel.org>
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1261295
Newsgroups: org.kernel.vger.linux-kernel,org.kernel.vger.linux-perf-users
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

It's possible to save pipe output of perf record into a file.

  $ perf record -o- ... > pipe.data

And you can use the data same as the normal perf data.

  $ perf report -i pipe.data

In that case, perf tools will treat the input as a pipe, but it can get
the total size of the input.  This means it can show the progress bar
unlike the normal pipe input (which doesn't know the total size in
advance).

While at it, fix the string in __perf_session__process_dir_events().

Signed-off-by: Namhyung Kim <namhyung@kernel.org>
---
 tools/perf/util/session.c | 20 +++++++++++++++++++-
 1 file changed, 19 insertions(+), 1 deletion(-)

diff --git a/tools/perf/util/session.c b/tools/perf/util/session.c
index 0ec92d47373c..5596bed1b8c8 100644
--- a/tools/perf/util/session.c
+++ b/tools/perf/util/session.c
@@ -2050,6 +2050,7 @@ static int __perf_session__process_pipe_events(struct perf_session *session)
 {
 	struct ordered_events *oe = &session->ordered_events;
 	struct perf_tool *tool = session->tool;
+	struct ui_progress prog;
 	union perf_event *event;
 	uint32_t size, cur_size = 0;
 	void *buf = NULL;
@@ -2057,9 +2058,21 @@ static int __perf_session__process_pipe_events(struct perf_session *session)
 	u64 head;
 	ssize_t err;
 	void *p;
+	bool update_prog = false;
 
 	perf_tool__fill_defaults(tool);
 
+	/*
+	 * If it's from a file saving pipe data (by redirection), it would have
+	 * a file name other than "-".  Then we can get the total size and show
+	 * the progress.
+	 */
+	if (strcmp(session->data->path, "-") && session->data->file.size) {
+		ui_progress__init_size(&prog, session->data->file.size,
+				       "Processing events...");
+		update_prog = true;
+	}
+
 	head = 0;
 	cur_size = sizeof(union perf_event);
 
@@ -2131,6 +2144,9 @@ static int __perf_session__process_pipe_events(struct perf_session *session)
 	if (err)
 		goto out_err;
 
+	if (update_prog)
+		ui_progress__update(&prog, size);
+
 	if (!session_done())
 		goto more;
 done:
@@ -2144,6 +2160,8 @@ static int __perf_session__process_pipe_events(struct perf_session *session)
 	err = perf_session__flush_thread_stacks(session);
 out_err:
 	free(buf);
+	if (update_prog)
+		ui_progress__finish();
 	if (!tool->no_warn)
 		perf_session__warn_about_errors(session);
 	ordered_events__free(&session->ordered_events);
@@ -2523,7 +2541,7 @@ static int __perf_session__process_dir_events(struct perf_session *session)
 
 	perf_tool__fill_defaults(tool);
 
-	ui_progress__init_size(&prog, total_size, "Sorting events...");
+	ui_progress__init_size(&prog, total_size, "Processing events...");
 
 	nr_readers = 1;
 	for (i = 0; i < data->dir.nr; i++) {
-- 
2.45.2.803.g4e1b14247a-goog

.

From: Leon Romanovsky <leon@kernel.org>
To: Jason Gunthorpe <jgg@nvidia.com>
Cc: Leon Romanovsky <leonro@nvidia.com>,
	Ajay Sharma <sharmaajay@microsoft.com>,
	Akiva Goldberger <agoldberger@nvidia.com>,
	Bernard Metzler <bmt@zurich.ibm.com>,
	Bryan Tan <bryan-bt.tan@broadcom.com>,
	Chengchang Tang <tangchengchang@huawei.com>,
	Cheng Xu <chengyou@linux.alibaba.com>,
	Christian Benvenuti <benve@cisco.com>,
	Dennis Dalessandro <dennis.dalessandro@cornelisnetworks.com>,
	Junxian Huang <huangjunxian6@hisilicon.com>,
	Kai Shen <kaishen@linux.alibaba.com>,
	linux-kernel@vger.kernel.org,
	linux-rdma@vger.kernel.org,
	Long Li <longli@microsoft.com>,
	Michael Margolin <mrgolin@amazon.com>,
	Michal Kalderon <mkalderon@marvell.com>,
	Mustafa Ismail <mustafa.ismail@intel.com>,
	Nelson Escobar <neescoba@cisco.com>,
	Potnuri Bharat Teja <bharat@chelsio.com>,
	Selvin Xavier <selvin.xavier@broadcom.com>,
	Shiraz Saleem <shiraz.saleem@intel.com>,
	Vishnu Dasa <vishnu.dasa@broadcom.com>,
	Yishai Hadas <yishaih@nvidia.com>,
	Zhu Yanjun <zyjzyj2000@gmail.com>
Subject: [PATCH rdma-next v2 0/2] Extend mlx5 CQ creation with large UAR page index
Date: Thu, 27 Jun 2024 21:23:48 +0300
Message-ID: <cover.1719512393.git.leon@kernel.org>
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1261299
Newsgroups: org.kernel.vger.linux-kernel,org.kernel.vger.linux-rdma
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

From: Leon Romanovsky <leonro@nvidia.com>

Changelog:
v2:
 * Another fix to compilation errors in first patch
v1: https://lore.kernel.org/all/cover.1719244483.git.leon@kernel.org
 * Fixed compilation errors in first patch
 * Changed new attribute name as Jason suggested
v0: https://lore.kernel.org/all/cover.1718554263.git.leon@kernel.org/

------------------------------------------------------------------------
Hi,

This series from Akiva extends the mlx5 private field with the UAR page
index which is larger than 16 bits as was before.

As this is first time, we extend ioctl API with private data field after
it already has UHW object, we need to change create CQ API signature to
support it.

Thanks

Akiva Goldberger (2):
  RDMA: Pass entire uverbs attr bundle to create cq function
  RDMA/mlx5: Send UAR page index as ioctl attribute

 drivers/infiniband/core/uverbs_cmd.c          |  2 +-
 drivers/infiniband/core/uverbs_std_types_cq.c |  2 +-
 drivers/infiniband/hw/bnxt_re/ib_verbs.c      |  3 +-
 drivers/infiniband/hw/bnxt_re/ib_verbs.h      |  2 +-
 drivers/infiniband/hw/cxgb4/cq.c              |  3 +-
 drivers/infiniband/hw/cxgb4/iw_cxgb4.h        |  2 +-
 drivers/infiniband/hw/efa/efa.h               |  2 +-
 drivers/infiniband/hw/efa/efa_verbs.c         |  3 +-
 drivers/infiniband/hw/erdma/erdma_verbs.c     |  3 +-
 drivers/infiniband/hw/erdma/erdma_verbs.h     |  2 +-
 drivers/infiniband/hw/hns/hns_roce_cq.c       |  3 +-
 drivers/infiniband/hw/hns/hns_roce_device.h   |  2 +-
 drivers/infiniband/hw/irdma/verbs.c           |  5 +--
 drivers/infiniband/hw/mana/cq.c               |  3 +-
 drivers/infiniband/hw/mana/mana_ib.h          |  2 +-
 drivers/infiniband/hw/mlx4/cq.c               |  3 +-
 drivers/infiniband/hw/mlx4/mlx4_ib.h          |  2 +-
 drivers/infiniband/hw/mlx5/cq.c               | 31 ++++++++++++++++---
 drivers/infiniband/hw/mlx5/main.c             |  1 +
 drivers/infiniband/hw/mlx5/mlx5_ib.h          |  3 +-
 drivers/infiniband/hw/mthca/mthca_provider.c  |  3 +-
 drivers/infiniband/hw/ocrdma/ocrdma_verbs.c   |  3 +-
 drivers/infiniband/hw/ocrdma/ocrdma_verbs.h   |  2 +-
 drivers/infiniband/hw/qedr/verbs.c            |  3 +-
 drivers/infiniband/hw/qedr/verbs.h            |  2 +-
 drivers/infiniband/hw/usnic/usnic_ib_verbs.c  |  2 +-
 drivers/infiniband/hw/usnic/usnic_ib_verbs.h  |  2 +-
 drivers/infiniband/hw/vmw_pvrdma/pvrdma_cq.c  |  5 +--
 .../infiniband/hw/vmw_pvrdma/pvrdma_verbs.h   |  2 +-
 drivers/infiniband/sw/rdmavt/cq.c             |  6 ++--
 drivers/infiniband/sw/rdmavt/cq.h             |  2 +-
 drivers/infiniband/sw/rxe/rxe_verbs.c         |  3 +-
 drivers/infiniband/sw/siw/siw_verbs.c         |  5 +--
 drivers/infiniband/sw/siw/siw_verbs.h         |  2 +-
 include/rdma/ib_verbs.h                       |  2 +-
 include/uapi/rdma/ib_user_ioctl_cmds.h        |  7 ++---
 include/uapi/rdma/mlx5_user_ioctl_cmds.h      |  4 +++
 37 files changed, 89 insertions(+), 45 deletions(-)

-- 
2.45.2

.

From: Anand Khoje <anand.a.khoje@oracle.com>
To: linux-rdma@vger.kernel.org, linux-kernel@vger.kernel.org,
        netdev@vger.kernel.org
Cc: saeedm@mellanox.com, leon@kernel.org, tariqt@nvidia.com,
        edumazet@google.com, kuba@kernel.org, pabeni@redhat.com,
        davem@davemloft.net, rama.nichanamatlu@oracle.com,
        manjunath.b.patil@oracle.com
Subject: [PATCH v6] net/mlx5: Reclaim max 50K pages at once
Date: Thu, 27 Jun 2024 23:54:43 +0530
Message-ID: <20240627182443.19254-1-anand.a.khoje@oracle.com>
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1261301 org.kernel.vger.netdev:355236
Newsgroups: org.kernel.vger.linux-kernel,org.kernel.vger.linux-rdma,org.kernel.vger.netdev
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

In non FLR context, at times CX-5 requests release of ~8 million FW pages.
This needs humongous number of cmd mailboxes, which to be released once
the pages are reclaimed. Release of humongous number of cmd mailboxes is
consuming cpu time running into many seconds. Which with non preemptible
kernels is leading to critical process starving on that cpu’s RQ.
To alleviate this, this change restricts the total number of pages
a worker will try to reclaim maximum 50K pages in one go.
The limit 50K is aligned with the current firmware capacity/limit of
releasing 50K pages at once per MLX5_CMD_OP_MANAGE_PAGES + MLX5_PAGES_TAKE
device command.

Our tests have shown significant benefit of this change in terms of
time consumed by dma_pool_free().
During a test where an event was raised by HCA
to release 1.3 Million pages, following observations were made:

- Without this change:
Number of mailbox messages allocated was around 20K, to accommodate
the DMA addresses of 1.3 million pages.
The average time spent by dma_pool_free() to free the DMA pool is between
16 usec to 32 usec.
           value  ------------- Distribution ------------- count
             256 |                                         0
             512 |@                                        287
            1024 |@@@                                      1332
            2048 |@                                        656
            4096 |@@@@@                                    2599
            8192 |@@@@@@@@@@                               4755
           16384 |@@@@@@@@@@@@@@@                          7545
           32768 |@@@@@                                    2501
           65536 |                                         0

- With this change:
Number of mailbox messages allocated was around 800; this was to
accommodate DMA addresses of only 50K pages.
The average time spent by dma_pool_free() to free the DMA pool in this case
lies between 1 usec to 2 usec.
           value  ------------- Distribution ------------- count
             256 |                                         0
             512 |@@@@@@@@@@@@@@@@@@                       346
            1024 |@@@@@@@@@@@@@@@@@@@@@@                   435
            2048 |                                         0
            4096 |                                         0
            8192 |                                         1
           16384 |                                         0

Signed-off-by: Anand Khoje <anand.a.khoje@oracle.com>
---
Changes in v6
 - Added comments to explain usage os negative MAX_RECLAIM_NPAGES
---
 drivers/net/ethernet/mellanox/mlx5/core/pagealloc.c | 16 +++++++++++++++-
 1 file changed, 15 insertions(+), 1 deletion(-)

diff --git a/drivers/net/ethernet/mellanox/mlx5/core/pagealloc.c b/drivers/net/ethernet/mellanox/mlx5/core/pagealloc.c
index d894a88..972e8e9 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/pagealloc.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/pagealloc.c
@@ -608,6 +608,11 @@ enum {
 	RELEASE_ALL_PAGES_MASK = 0x4000,
 };
 
+/* This limit is based on the capability of the firmware as it cannot release
+ * more than 50000 back to the host in one go.
+ */
+#define MAX_RECLAIM_NPAGES (-50000)
+
 static int req_pages_handler(struct notifier_block *nb,
 			     unsigned long type, void *data)
 {
@@ -639,7 +644,16 @@ static int req_pages_handler(struct notifier_block *nb,
 
 	req->dev = dev;
 	req->func_id = func_id;
-	req->npages = npages;
+
+	/* npages > 0 means HCA asking host to allocate/give pages,
+	 * npages < 0 means HCA asking host to reclaim back the pages allocated.
+	 * Here we are restricting the maximum number of pages that can be
+	 * reclaimed to be MAX_RECLAIM_NPAGES. Note that MAX_RECLAIM_NPAGES is
+	 * a negative value.
+	 * Since MAX_RECLAIM is negative, we are using max() to restrict
+	 * req->npages (and not min ()).
+	 */
+	req->npages = max_t(s32, npages, MAX_RECLAIM_NPAGES);
 	req->ec_function = ec_function;
 	req->release_all = release_all;
 	INIT_WORK(&req->work, pages_work_handler);
-- 
1.8.3.1

.

Content-Type: multipart/mixed; boundary="------------nvS90J5jVx9A2eOKCM10GLvN"
Message-ID: <f2d1425e-dc7d-444f-ba8d-4aac0c8fc882@gmail.com>
Date: Thu, 27 Jun 2024 20:25:01 +0200
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Content-Language: en-US
To: Linux Kernel Mailing List <linux-kernel@vger.kernel.org>
Cc: Linux Kernel Build System <linux-kbuild@vger.kernel.org>,
 Andrew Morton <akpm@linux-foundation.org>,
 Peter Zijlstra <peterz@infradead.org>, Ingo Molnar <mingo@redhat.com>,
 Will Deacon <will@kernel.org>, Waiman Long <longman@redhat.com>,
 Boqun Feng <boqun.feng@gmail.com>, Thomas Gleixner <tglx@linutronix.de>,
 Borislav Petkov <bp@alien8.de>, Dave Hansen <dave.hansen@linux.intel.com>,
 x86@kernel.org, "H. Peter Anvin" <hpa@zytor.com>, Kees Cook
 <kees@kernel.org>, Andy Shevchenko <andy@kernel.org>,
 Yonghong Song <yonghong.song@linux.dev>, Song Liu <song@kernel.org>,
 Nick Desaulniers <ndesaulniers@google.com>,
 Zhen Lei <thunder.leizhen@huawei.com>, Ard Biesheuvel <ardb@kernel.org>,
 Xin Li <xin3.li@intel.com>, Michael Roth <michael.roth@amd.com>,
 linux-mm@kvack.org, linux-hardening@vger.kernel.org
From: Mirsad Todorovac <mtodorovac69@gmail.com>
Subject: =?UTF-8?Q?=5BPROBLEM=5D_randconfig=3A_=2E/include/linux/fortify-str?=
 =?UTF-8?B?aW5nLmg6MTIyOjMzOiBlcnJvcjog4oCYX19idWlsdGluX3N0cmNweeKAmSBzb3Vy?=
 =?UTF-8?Q?ce_argument_is_the_same_as_destination_=5B-Werror=3Drestrict=5D?=
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1261304 org.kvack.linux-mm:201671
Newsgroups: org.kernel.vger.linux-kernel,org.kernel.vger.linux-hardening,org.kernel.vger.linux-kbuild,org.kvack.linux-mm
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

This is a multi-part message in MIME format.
--------------nvS90J5jVx9A2eOKCM10GLvN
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Hi all,

I hope it will catch your attention, for I couldn't sort out what is wrong with this:

KCONFIG_SEED=0xD859674

on vanilla torvalds tree, commit v6.10-rc4-366-gafcd48134c58

_______________________________________________________________
$ time nice make -j 36 bindeb-pkg |& tee ../err-6.10-rc5-08.log; date
  GEN     debian
dpkg-buildpackage --build=binary --no-pre-clean --unsigned-changes -R'make -f debian/rules' -j1 -a$(cat debian/arch)
dpkg-buildpackage: info: source package linux-upstream
dpkg-buildpackage: info: source version 6.10.0-rc5-gafcd48134c58-34
dpkg-buildpackage: info: source distribution jammy
dpkg-buildpackage: info: source changed by marvin <marvin@defiant>
dpkg-architecture: warning: specified GNU system type i686-linux-gnu does not match CC system type x86_64-linux-gnu, try setting a correct CC environment variable
 dpkg-source --before-build .
dpkg-buildpackage: info: host architecture i386
 make -f debian/rules binary
#
# No change to .config
#
  CALL    scripts/checksyscalls.sh
  UPD     init/utsversion-tmp.h
  CC      init/version.o
  AR      init/built-in.a
  CC      kernel/kallsyms.o
In file included from ./include/linux/string.h:374,
                 from ./arch/x86/include/asm/page_32.h:18,
                 from ./arch/x86/include/asm/page.h:14,
                 from ./arch/x86/include/asm/thread_info.h:12,
                 from ./include/linux/thread_info.h:60,
                 from ./include/linux/spinlock.h:60,
                 from ./include/linux/mmzone.h:8,
                 from ./include/linux/gfp.h:7,
                 from ./include/linux/mm.h:7,
                 from ./include/linux/kallsyms.h:13,
                 from kernel/kallsyms.c:15:
kernel/kallsyms.c: In function ‘__sprint_symbol’:
./include/linux/fortify-string.h:122:33: error: ‘__builtin_strcpy’ source argument is the same as destination [-Werror=restrict]
  122 | #define __underlying_strcpy     __builtin_strcpy
      |                                 ^
./include/linux/fortify-string.h:787:24: note: in expansion of macro ‘__underlying_strcpy’
  787 |                 return __underlying_strcpy(p, q);
      |                        ^~~~~~~~~~~~~~~~~~~
cc1: all warnings being treated as errors
make[6]: *** [scripts/Makefile.build:244: kernel/kallsyms.o] Error 1
make[5]: *** [scripts/Makefile.build:485: kernel] Error 2
make[4]: *** [Makefile:1934: .] Error 2
make[3]: *** [debian/rules:74: build-arch] Error 2
dpkg-buildpackage: error: make -f debian/rules binary subprocess returned exit status 2
make[2]: *** [scripts/Makefile.package:121: bindeb-pkg] Error 2
make[1]: *** [/home/marvin/linux/kernel/linux_torvalds/Makefile:1555: bindeb-pkg] Error 2
make: *** [Makefile:240: __sub-make] Error 2

real	0m2.414s
user	0m11.158s
sys	0m6.280s
Thu Jun 27 20:05:23 CEST 2024
$ 

Hope this helps.

Best regards,
Mirsad Todorovac
--------------nvS90J5jVx9A2eOKCM10GLvN
Content-Type: text/plain; charset=UTF-8; name=".config"
Content-Disposition: attachment; filename=".config"
Content-Transfer-Encoding: base64

IwojIEF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIGZpbGU7IERPIE5PVCBFRElULgojIExpbnV4
L3g4NiA2LjEwLjAtcmM1IEtlcm5lbCBDb25maWd1cmF0aW9uCiMKQ09ORklHX0NDX1ZFUlNJ
T05fVEVYVD0iZ2NjIChVYnVudHUgMTEuNC4wLTF1YnVudHUxfjIyLjA0KSAxMS40LjAiCkNP
TkZJR19DQ19JU19HQ0M9eQpDT05GSUdfR0NDX1ZFUlNJT049MTEwNDAwCkNPTkZJR19DTEFO
R19WRVJTSU9OPTAKQ09ORklHX0FTX0lTX0dOVT15CkNPTkZJR19BU19WRVJTSU9OPTIzODAw
CkNPTkZJR19MRF9JU19CRkQ9eQpDT05GSUdfTERfVkVSU0lPTj0yMzgwMApDT05GSUdfTExE
X1ZFUlNJT049MApDT05GSUdfQ0NfQ0FOX0xJTks9eQpDT05GSUdfQ0NfQ0FOX0xJTktfU1RB
VElDPXkKQ09ORklHX0NDX0hBU19BU01fR09UT19PVVRQVVQ9eQpDT05GSUdfQ0NfSEFTX0FT
TV9HT1RPX1RJRURfT1VUUFVUPXkKQ09ORklHX0dDQ19BU01fR09UT19PVVRQVVRfV09SS0FS
T1VORD15CkNPTkZJR19UT09MU19TVVBQT1JUX1JFTFI9eQpDT05GSUdfQ0NfSEFTX0FTTV9J
TkxJTkU9eQpDT05GSUdfQ0NfSEFTX05PX1BST0ZJTEVfRk5fQVRUUj15CkNPTkZJR19QQUhP
TEVfVkVSU0lPTj0xMjUKQ09ORklHX0lSUV9XT1JLPXkKQ09ORklHX0JVSUxEVElNRV9UQUJM
RV9TT1JUPXkKQ09ORklHX1RIUkVBRF9JTkZPX0lOX1RBU0s9eQoKIwojIEdlbmVyYWwgc2V0
dXAKIwpDT05GSUdfQlJPS0VOX09OX1NNUD15CkNPTkZJR19JTklUX0VOVl9BUkdfTElNSVQ9
MzIKIyBDT05GSUdfQ09NUElMRV9URVNUIGlzIG5vdCBzZXQKQ09ORklHX1dFUlJPUj15CiMg
Q09ORklHX1VBUElfSEVBREVSX1RFU1QgaXMgbm90IHNldApDT05GSUdfTE9DQUxWRVJTSU9O
PSIiCiMgQ09ORklHX0xPQ0FMVkVSU0lPTl9BVVRPIGlzIG5vdCBzZXQKQ09ORklHX0JVSUxE
X1NBTFQ9IiIKQ09ORklHX0hBVkVfS0VSTkVMX0daSVA9eQpDT05GSUdfSEFWRV9LRVJORUxf
QlpJUDI9eQpDT05GSUdfSEFWRV9LRVJORUxfTFpNQT15CkNPTkZJR19IQVZFX0tFUk5FTF9Y
Wj15CkNPTkZJR19IQVZFX0tFUk5FTF9MWk89eQpDT05GSUdfSEFWRV9LRVJORUxfTFo0PXkK
Q09ORklHX0hBVkVfS0VSTkVMX1pTVEQ9eQojIENPTkZJR19LRVJORUxfR1pJUCBpcyBub3Qg
c2V0CkNPTkZJR19LRVJORUxfQlpJUDI9eQojIENPTkZJR19LRVJORUxfTFpNQSBpcyBub3Qg
c2V0CiMgQ09ORklHX0tFUk5FTF9YWiBpcyBub3Qgc2V0CiMgQ09ORklHX0tFUk5FTF9MWk8g
aXMgbm90IHNldAojIENPTkZJR19LRVJORUxfTFo0IGlzIG5vdCBzZXQKIyBDT05GSUdfS0VS
TkVMX1pTVEQgaXMgbm90IHNldApDT05GSUdfREVGQVVMVF9JTklUPSIiCkNPTkZJR19ERUZB
VUxUX0hPU1ROQU1FPSIobm9uZSkiCkNPTkZJR19TWVNWSVBDPXkKQ09ORklHX1NZU1ZJUENf
U1lTQ1RMPXkKQ09ORklHX1BPU0lYX01RVUVVRT15CkNPTkZJR19QT1NJWF9NUVVFVUVfU1lT
Q1RMPXkKIyBDT05GSUdfV0FUQ0hfUVVFVUUgaXMgbm90IHNldAojIENPTkZJR19DUk9TU19N
RU1PUllfQVRUQUNIIGlzIG5vdCBzZXQKIyBDT05GSUdfVVNFTElCIGlzIG5vdCBzZXQKIyBD
T05GSUdfQVVESVQgaXMgbm90IHNldApDT05GSUdfSEFWRV9BUkNIX0FVRElUU1lTQ0FMTD15
CgojCiMgSVJRIHN1YnN5c3RlbQojCkNPTkZJR19HRU5FUklDX0lSUV9QUk9CRT15CkNPTkZJ
R19HRU5FUklDX0lSUV9TSE9XPXkKQ09ORklHX0hBUkRJUlFTX1NXX1JFU0VORD15CkNPTkZJ
R19JUlFfRE9NQUlOPXkKQ09ORklHX0lSUV9TSU09eQpDT05GSUdfSVJRX0RPTUFJTl9ISUVS
QVJDSFk9eQpDT05GSUdfSVJRX01TSV9JT01NVT15CkNPTkZJR19HRU5FUklDX0lSUV9SRVNF
UlZBVElPTl9NT0RFPXkKQ09ORklHX0lSUV9GT1JDRURfVEhSRUFESU5HPXkKQ09ORklHX1NQ
QVJTRV9JUlE9eQojIENPTkZJR19HRU5FUklDX0lSUV9ERUJVR0ZTIGlzIG5vdCBzZXQKIyBl
bmQgb2YgSVJRIHN1YnN5c3RlbQoKQ09ORklHX0NMT0NLU09VUkNFX1dBVENIRE9HPXkKQ09O
RklHX0FSQ0hfQ0xPQ0tTT1VSQ0VfSU5JVD15CkNPTkZJR19DTE9DS1NPVVJDRV9WQUxJREFU
RV9MQVNUX0NZQ0xFPXkKQ09ORklHX0dFTkVSSUNfVElNRV9WU1lTQ0FMTD15CkNPTkZJR19H
RU5FUklDX0NMT0NLRVZFTlRTPXkKQ09ORklHX0dFTkVSSUNfQ0xPQ0tFVkVOVFNfTUlOX0FE
SlVTVD15CkNPTkZJR19HRU5FUklDX0NNT1NfVVBEQVRFPXkKQ09ORklHX0hBVkVfUE9TSVhf
Q1BVX1RJTUVSU19UQVNLX1dPUks9eQpDT05GSUdfUE9TSVhfQ1BVX1RJTUVSU19UQVNLX1dP
Uks9eQpDT05GSUdfVElNRV9LVU5JVF9URVNUPXkKQ09ORklHX0NPTlRFWFRfVFJBQ0tJTkc9
eQpDT05GSUdfQ09OVEVYVF9UUkFDS0lOR19JRExFPXkKCiMKIyBUaW1lcnMgc3Vic3lzdGVt
CiMKQ09ORklHX1RJQ0tfT05FU0hPVD15CkNPTkZJR19IWl9QRVJJT0RJQz15CiMgQ09ORklH
X05PX0haX0lETEUgaXMgbm90IHNldAojIENPTkZJR19OT19IWiBpcyBub3Qgc2V0CkNPTkZJ
R19ISUdIX1JFU19USU1FUlM9eQpDT05GSUdfQ0xPQ0tTT1VSQ0VfV0FUQ0hET0dfTUFYX1NL
RVdfVVM9MTI1CiMgZW5kIG9mIFRpbWVycyBzdWJzeXN0ZW0KCkNPTkZJR19CUEY9eQpDT05G
SUdfSEFWRV9FQlBGX0pJVD15CgojCiMgQlBGIHN1YnN5c3RlbQojCkNPTkZJR19CUEZfU1lT
Q0FMTD15CiMgQ09ORklHX0JQRl9KSVQgaXMgbm90IHNldApDT05GSUdfQlBGX1VOUFJJVl9E
RUZBVUxUX09GRj15CiMgQ09ORklHX0JQRl9QUkVMT0FEIGlzIG5vdCBzZXQKIyBlbmQgb2Yg
QlBGIHN1YnN5c3RlbQoKQ09ORklHX1BSRUVNUFRfQlVJTEQ9eQojIENPTkZJR19QUkVFTVBU
X05PTkUgaXMgbm90IHNldAojIENPTkZJR19QUkVFTVBUX1ZPTFVOVEFSWSBpcyBub3Qgc2V0
CkNPTkZJR19QUkVFTVBUPXkKQ09ORklHX1BSRUVNUFRfQ09VTlQ9eQpDT05GSUdfUFJFRU1Q
VElPTj15CiMgQ09ORklHX1BSRUVNUFRfRFlOQU1JQyBpcyBub3Qgc2V0CgojCiMgQ1BVL1Rh
c2sgdGltZSBhbmQgc3RhdHMgYWNjb3VudGluZwojCkNPTkZJR19USUNLX0NQVV9BQ0NPVU5U
SU5HPXkKQ09ORklHX0lSUV9USU1FX0FDQ09VTlRJTkc9eQpDT05GSUdfQlNEX1BST0NFU1Nf
QUNDVD15CkNPTkZJR19CU0RfUFJPQ0VTU19BQ0NUX1YzPXkKIyBDT05GSUdfVEFTS1NUQVRT
IGlzIG5vdCBzZXQKQ09ORklHX1BTST15CkNPTkZJR19QU0lfREVGQVVMVF9ESVNBQkxFRD15
CiMgZW5kIG9mIENQVS9UYXNrIHRpbWUgYW5kIHN0YXRzIGFjY291bnRpbmcKCiMKIyBSQ1Ug
U3Vic3lzdGVtCiMKQ09ORklHX1RSRUVfUkNVPXkKQ09ORklHX1BSRUVNUFRfUkNVPXkKIyBD
T05GSUdfUkNVX0VYUEVSVCBpcyBub3Qgc2V0CkNPTkZJR19UUkVFX1NSQ1U9eQpDT05GSUdf
VEFTS1NfUkNVX0dFTkVSSUM9eQpDT05GSUdfTkVFRF9UQVNLU19SQ1U9eQpDT05GSUdfVEFT
S1NfUkNVPXkKQ09ORklHX1RBU0tTX1RSQUNFX1JDVT15CkNPTkZJR19SQ1VfU1RBTExfQ09N
TU9OPXkKQ09ORklHX1JDVV9ORUVEX1NFR0NCTElTVD15CiMgZW5kIG9mIFJDVSBTdWJzeXN0
ZW0KCkNPTkZJR19JS0NPTkZJRz15CkNPTkZJR19JS0NPTkZJR19QUk9DPXkKIyBDT05GSUdf
SUtIRUFERVJTIGlzIG5vdCBzZXQKQ09ORklHX0xPR19CVUZfU0hJRlQ9MTcKIyBDT05GSUdf
UFJJTlRLX0lOREVYIGlzIG5vdCBzZXQKQ09ORklHX0hBVkVfVU5TVEFCTEVfU0NIRURfQ0xP
Q0s9eQoKIwojIFNjaGVkdWxlciBmZWF0dXJlcwojCiMgZW5kIG9mIFNjaGVkdWxlciBmZWF0
dXJlcwoKQ09ORklHX0FSQ0hfV0FOVF9CQVRDSEVEX1VOTUFQX1RMQl9GTFVTSD15CkNPTkZJ
R19DQ19JTVBMSUNJVF9GQUxMVEhST1VHSD0iLVdpbXBsaWNpdC1mYWxsdGhyb3VnaD01IgpD
T05GSUdfR0NDMTBfTk9fQVJSQVlfQk9VTkRTPXkKQ09ORklHX0NDX05PX0FSUkFZX0JPVU5E
Uz15CkNPTkZJR19HQ0NfTk9fU1RSSU5HT1BfT1ZFUkZMT1c9eQpDT05GSUdfQ0NfTk9fU1RS
SU5HT1BfT1ZFUkZMT1c9eQpDT05GSUdfU0xBQl9PQkpfRVhUPXkKIyBDT05GSUdfQ0dST1VQ
UyBpcyBub3Qgc2V0CkNPTkZJR19OQU1FU1BBQ0VTPXkKIyBDT05GSUdfVVRTX05TIGlzIG5v
dCBzZXQKQ09ORklHX1RJTUVfTlM9eQojIENPTkZJR19JUENfTlMgaXMgbm90IHNldApDT05G
SUdfVVNFUl9OUz15CiMgQ09ORklHX1BJRF9OUyBpcyBub3Qgc2V0CkNPTkZJR19ORVRfTlM9
eQpDT05GSUdfQ0hFQ0tQT0lOVF9SRVNUT1JFPXkKIyBDT05GSUdfU0NIRURfQVVUT0dST1VQ
IGlzIG5vdCBzZXQKIyBDT05GSUdfUkVMQVkgaXMgbm90IHNldApDT05GSUdfQkxLX0RFVl9J
TklUUkQ9eQpDT05GSUdfSU5JVFJBTUZTX1NPVVJDRT0iIgojIENPTkZJR19SRF9HWklQIGlz
IG5vdCBzZXQKIyBDT05GSUdfUkRfQlpJUDIgaXMgbm90IHNldApDT05GSUdfUkRfTFpNQT15
CiMgQ09ORklHX1JEX1haIGlzIG5vdCBzZXQKIyBDT05GSUdfUkRfTFpPIGlzIG5vdCBzZXQK
Q09ORklHX1JEX0xaND15CkNPTkZJR19SRF9aU1REPXkKIyBDT05GSUdfQk9PVF9DT05GSUcg
aXMgbm90IHNldApDT05GSUdfSU5JVFJBTUZTX1BSRVNFUlZFX01USU1FPXkKQ09ORklHX0ND
X09QVElNSVpFX0ZPUl9QRVJGT1JNQU5DRT15CiMgQ09ORklHX0NDX09QVElNSVpFX0ZPUl9T
SVpFIGlzIG5vdCBzZXQKQ09ORklHX0xEX09SUEhBTl9XQVJOPXkKQ09ORklHX0xEX09SUEhB
Tl9XQVJOX0xFVkVMPSJlcnJvciIKQ09ORklHX1NZU0NUTD15CkNPTkZJR19IQVZFX1VJRDE2
PXkKQ09ORklHX1NZU0NUTF9FWENFUFRJT05fVFJBQ0U9eQpDT05GSUdfSEFWRV9QQ1NQS1Jf
UExBVEZPUk09eQojIENPTkZJR19FWFBFUlQgaXMgbm90IHNldApDT05GSUdfVUlEMTY9eQpD
T05GSUdfTVVMVElVU0VSPXkKQ09ORklHX1NHRVRNQVNLX1NZU0NBTEw9eQpDT05GSUdfU1lT
RlNfU1lTQ0FMTD15CkNPTkZJR19GSEFORExFPXkKQ09ORklHX1BPU0lYX1RJTUVSUz15CkNP
TkZJR19QUklOVEs9eQpDT05GSUdfQlVHPXkKQ09ORklHX0VMRl9DT1JFPXkKQ09ORklHX1BD
U1BLUl9QTEFURk9STT15CkNPTkZJR19GVVRFWD15CkNPTkZJR19GVVRFWF9QST15CkNPTkZJ
R19FUE9MTD15CkNPTkZJR19TSUdOQUxGRD15CkNPTkZJR19USU1FUkZEPXkKQ09ORklHX0VW
RU5URkQ9eQpDT05GSUdfU0hNRU09eQpDT05GSUdfQUlPPXkKQ09ORklHX0lPX1VSSU5HPXkK
Q09ORklHX0FEVklTRV9TWVNDQUxMUz15CkNPTkZJR19NRU1CQVJSSUVSPXkKQ09ORklHX0tD
TVA9eQpDT05GSUdfUlNFUT15CkNPTkZJR19DQUNIRVNUQVRfU1lTQ0FMTD15CkNPTkZJR19L
QUxMU1lNUz15CiMgQ09ORklHX0tBTExTWU1TX1NFTEZURVNUIGlzIG5vdCBzZXQKQ09ORklH
X0tBTExTWU1TX0JBU0VfUkVMQVRJVkU9eQpDT05GSUdfQVJDSF9IQVNfTUVNQkFSUklFUl9T
WU5DX0NPUkU9eQpDT05GSUdfSEFWRV9QRVJGX0VWRU5UUz15CgojCiMgS2VybmVsIFBlcmZv
cm1hbmNlIEV2ZW50cyBBbmQgQ291bnRlcnMKIwpDT05GSUdfUEVSRl9FVkVOVFM9eQojIGVu
ZCBvZiBLZXJuZWwgUGVyZm9ybWFuY2UgRXZlbnRzIEFuZCBDb3VudGVycwoKQ09ORklHX1NZ
U1RFTV9EQVRBX1ZFUklGSUNBVElPTj15CiMgQ09ORklHX1BST0ZJTElORyBpcyBub3Qgc2V0
CgojCiMgS2V4ZWMgYW5kIGNyYXNoIGZlYXR1cmVzCiMKQ09ORklHX0NSQVNIX1JFU0VSVkU9
eQpDT05GSUdfVk1DT1JFX0lORk89eQpDT05GSUdfS0VYRUNfQ09SRT15CkNPTkZJR19LRVhF
Qz15CkNPTkZJR19DUkFTSF9EVU1QPXkKIyBlbmQgb2YgS2V4ZWMgYW5kIGNyYXNoIGZlYXR1
cmVzCiMgZW5kIG9mIEdlbmVyYWwgc2V0dXAKCiMgQ09ORklHXzY0QklUIGlzIG5vdCBzZXQK
Q09ORklHX1g4Nl8zMj15CkNPTkZJR19YODY9eQpDT05GSUdfSU5TVFJVQ1RJT05fREVDT0RF
Uj15CkNPTkZJR19PVVRQVVRfRk9STUFUPSJlbGYzMi1pMzg2IgpDT05GSUdfTE9DS0RFUF9T
VVBQT1JUPXkKQ09ORklHX1NUQUNLVFJBQ0VfU1VQUE9SVD15CkNPTkZJR19NTVU9eQpDT05G
SUdfQVJDSF9NTUFQX1JORF9CSVRTX01JTj04CkNPTkZJR19BUkNIX01NQVBfUk5EX0JJVFNf
TUFYPTE2CkNPTkZJR19BUkNIX01NQVBfUk5EX0NPTVBBVF9CSVRTX01JTj04CkNPTkZJR19B
UkNIX01NQVBfUk5EX0NPTVBBVF9CSVRTX01BWD0xNgpDT05GSUdfR0VORVJJQ19JU0FfRE1B
PXkKQ09ORklHX0dFTkVSSUNfQlVHPXkKQ09ORklHX0FSQ0hfTUFZX0hBVkVfUENfRkRDPXkK
Q09ORklHX0dFTkVSSUNfQ0FMSUJSQVRFX0RFTEFZPXkKQ09ORklHX0FSQ0hfSEFTX0NQVV9S
RUxBWD15CkNPTkZJR19BUkNIX0hJQkVSTkFUSU9OX1BPU1NJQkxFPXkKQ09ORklHX0FSQ0hf
U1VTUEVORF9QT1NTSUJMRT15CkNPTkZJR19BUkNIX1NVUFBPUlRTX1VQUk9CRVM9eQpDT05G
SUdfRklYX0VBUkxZQ09OX01FTT15CkNPTkZJR19QR1RBQkxFX0xFVkVMUz0yCkNPTkZJR19D
Q19IQVNfU0FORV9TVEFDS1BST1RFQ1RPUj15CgojCiMgUHJvY2Vzc29yIHR5cGUgYW5kIGZl
YXR1cmVzCiMKIyBDT05GSUdfU01QIGlzIG5vdCBzZXQKIyBDT05GSUdfWDg2X0NQVV9SRVND
VFJMIGlzIG5vdCBzZXQKIyBDT05GSUdfWDg2X0VYVEVOREVEX1BMQVRGT1JNIGlzIG5vdCBz
ZXQKQ09ORklHX1g4Nl8zMl9JUklTPXkKQ09ORklHX1NDSEVEX09NSVRfRlJBTUVfUE9JTlRF
Uj15CiMgQ09ORklHX0hZUEVSVklTT1JfR1VFU1QgaXMgbm90IHNldAojIENPTkZJR19NNDg2
U1ggaXMgbm90IHNldAojIENPTkZJR19NNDg2IGlzIG5vdCBzZXQKIyBDT05GSUdfTTU4NiBp
cyBub3Qgc2V0CiMgQ09ORklHX001ODZUU0MgaXMgbm90IHNldAojIENPTkZJR19NNTg2TU1Y
IGlzIG5vdCBzZXQKIyBDT05GSUdfTTY4NiBpcyBub3Qgc2V0CiMgQ09ORklHX01QRU5USVVN
SUkgaXMgbm90IHNldAojIENPTkZJR19NUEVOVElVTUlJSSBpcyBub3Qgc2V0CiMgQ09ORklH
X01QRU5USVVNTSBpcyBub3Qgc2V0CiMgQ09ORklHX01QRU5USVVNNCBpcyBub3Qgc2V0CiMg
Q09ORklHX01LNiBpcyBub3Qgc2V0CiMgQ09ORklHX01LNyBpcyBub3Qgc2V0CiMgQ09ORklH
X01LOCBpcyBub3Qgc2V0CiMgQ09ORklHX01DUlVTT0UgaXMgbm90IHNldAojIENPTkZJR19N
RUZGSUNFT04gaXMgbm90IHNldAojIENPTkZJR19NV0lOQ0hJUEM2IGlzIG5vdCBzZXQKIyBD
T05GSUdfTVdJTkNISVAzRCBpcyBub3Qgc2V0CiMgQ09ORklHX01FTEFOIGlzIG5vdCBzZXQK
IyBDT05GSUdfTUdFT0RFR1gxIGlzIG5vdCBzZXQKIyBDT05GSUdfTUdFT0RFX0xYIGlzIG5v
dCBzZXQKIyBDT05GSUdfTUNZUklYSUlJIGlzIG5vdCBzZXQKQ09ORklHX01WSUFDM18yPXkK
IyBDT05GSUdfTVZJQUM3IGlzIG5vdCBzZXQKIyBDT05GSUdfTUNPUkUyIGlzIG5vdCBzZXQK
IyBDT05GSUdfTUFUT00gaXMgbm90IHNldApDT05GSUdfWDg2X0dFTkVSSUM9eQpDT05GSUdf
WDg2X0lOVEVSTk9ERV9DQUNIRV9TSElGVD02CkNPTkZJR19YODZfTDFfQ0FDSEVfU0hJRlQ9
NgpDT05GSUdfWDg2X0FMSUdOTUVOVF8xNj15CkNPTkZJR19YODZfSU5URUxfVVNFUkNPUFk9
eQpDT05GSUdfWDg2X1VTRV9QUFJPX0NIRUNLU1VNPXkKQ09ORklHX1g4Nl9UU0M9eQpDT05G
SUdfWDg2X0NNT1Y9eQpDT05GSUdfWDg2X01JTklNVU1fQ1BVX0ZBTUlMWT02CkNPTkZJR19Y
ODZfREVCVUdDVExNU1I9eQpDT05GSUdfSUEzMl9GRUFUX0NUTD15CkNPTkZJR19YODZfVk1Y
X0ZFQVRVUkVfTkFNRVM9eQpDT05GSUdfQ1BVX1NVUF9JTlRFTD15CkNPTkZJR19DUFVfU1VQ
X0FNRD15CkNPTkZJR19DUFVfU1VQX0hZR09OPXkKQ09ORklHX0NQVV9TVVBfQ0VOVEFVUj15
CkNPTkZJR19DUFVfU1VQX1RSQU5TTUVUQV8zMj15CkNPTkZJR19DUFVfU1VQX1pIQU9YSU49
eQpDT05GSUdfQ1BVX1NVUF9WT1JURVhfMzI9eQpDT05GSUdfSFBFVF9USU1FUj15CkNPTkZJ
R19ETUk9eQpDT05GSUdfQk9PVF9WRVNBX1NVUFBPUlQ9eQpDT05GSUdfTlJfQ1BVU19SQU5H
RV9CRUdJTj0xCkNPTkZJR19OUl9DUFVTX1JBTkdFX0VORD0xCkNPTkZJR19OUl9DUFVTX0RF
RkFVTFQ9MQpDT05GSUdfTlJfQ1BVUz0xCiMgQ09ORklHX1g4Nl9VUF9BUElDIGlzIG5vdCBz
ZXQKIyBDT05GSUdfWDg2X01DRSBpcyBub3Qgc2V0CgojCiMgUGVyZm9ybWFuY2UgbW9uaXRv
cmluZwojCiMgQ09ORklHX1BFUkZfRVZFTlRTX0FNRF9QT1dFUiBpcyBub3Qgc2V0CkNPTkZJ
R19QRVJGX0VWRU5UU19BTURfVU5DT1JFPXkKIyBDT05GSUdfUEVSRl9FVkVOVFNfQU1EX0JS
UyBpcyBub3Qgc2V0CiMgZW5kIG9mIFBlcmZvcm1hbmNlIG1vbml0b3JpbmcKCkNPTkZJR19Y
ODZfTEVHQUNZX1ZNODY9eQpDT05GSUdfVk04Nj15CkNPTkZJR19YODZfMTZCSVQ9eQpDT05G
SUdfWDg2X0VTUEZJWDMyPXkKIyBDT05GSUdfWDg2X0lPUExfSU9QRVJNIGlzIG5vdCBzZXQK
Q09ORklHX1RPU0hJQkE9eQpDT05GSUdfWDg2X1JFQk9PVEZJWFVQUz15CkNPTkZJR19NSUNS
T0NPREU9eQpDT05GSUdfTUlDUk9DT0RFX0lOSVRSRDMyPXkKIyBDT05GSUdfWDg2X01TUiBp
cyBub3Qgc2V0CiMgQ09ORklHX1g4Nl9DUFVJRCBpcyBub3Qgc2V0CiMgQ09ORklHX05PSElH
SE1FTSBpcyBub3Qgc2V0CkNPTkZJR19ISUdITUVNNEc9eQpDT05GSUdfUEFHRV9PRkZTRVQ9
MHhDMDAwMDAwMApDT05GSUdfSElHSE1FTT15CiMgQ09ORklHX1g4Nl9DUEFfU1RBVElTVElD
UyBpcyBub3Qgc2V0CkNPTkZJR19BUkNIX0ZMQVRNRU1fRU5BQkxFPXkKQ09ORklHX0FSQ0hf
U1BBUlNFTUVNX0VOQUJMRT15CkNPTkZJR19BUkNIX1NFTEVDVF9NRU1PUllfTU9ERUw9eQpD
T05GSUdfSUxMRUdBTF9QT0lOVEVSX1ZBTFVFPTAKIyBDT05GSUdfSElHSFBURSBpcyBub3Qg
c2V0CiMgQ09ORklHX1g4Nl9DSEVDS19CSU9TX0NPUlJVUFRJT04gaXMgbm90IHNldApDT05G
SUdfTVRSUj15CkNPTkZJR19NVFJSX1NBTklUSVpFUj15CkNPTkZJR19NVFJSX1NBTklUSVpF
Ul9FTkFCTEVfREVGQVVMVD0wCkNPTkZJR19NVFJSX1NBTklUSVpFUl9TUEFSRV9SRUdfTlJf
REVGQVVMVD0xCkNPTkZJR19YODZfUEFUPXkKQ09ORklHX0FSQ0hfVVNFU19QR19VTkNBQ0hF
RD15CkNPTkZJR19YODZfVU1JUD15CkNPTkZJR19DQ19IQVNfSUJUPXkKQ09ORklHX1g4Nl9J
TlRFTF9UU1hfTU9ERV9PRkY9eQojIENPTkZJR19YODZfSU5URUxfVFNYX01PREVfT04gaXMg
bm90IHNldAojIENPTkZJR19YODZfSU5URUxfVFNYX01PREVfQVVUTyBpcyBub3Qgc2V0CkNP
TkZJR19IWl8xMDA9eQojIENPTkZJR19IWl8yNTAgaXMgbm90IHNldAojIENPTkZJR19IWl8z
MDAgaXMgbm90IHNldAojIENPTkZJR19IWl8xMDAwIGlzIG5vdCBzZXQKQ09ORklHX0haPTEw
MApDT05GSUdfU0NIRURfSFJUSUNLPXkKQ09ORklHX0FSQ0hfU1VQUE9SVFNfS0VYRUM9eQpD
T05GSUdfQVJDSF9TVVBQT1JUU19LRVhFQ19QVVJHQVRPUlk9eQpDT05GSUdfQVJDSF9TVVBQ
T1JUU19LRVhFQ19TSUc9eQpDT05GSUdfQVJDSF9TVVBQT1JUU19LRVhFQ19TSUdfRk9SQ0U9
eQpDT05GSUdfQVJDSF9TVVBQT1JUU19LRVhFQ19CWklNQUdFX1ZFUklGWV9TSUc9eQpDT05G
SUdfQVJDSF9TVVBQT1JUU19LRVhFQ19KVU1QPXkKQ09ORklHX0FSQ0hfU1VQUE9SVFNfQ1JB
U0hfRFVNUD15CkNPTkZJR19BUkNIX1NVUFBPUlRTX0NSQVNIX0hPVFBMVUc9eQpDT05GSUdf
QVJDSF9IQVNfR0VORVJJQ19DUkFTSEtFUk5FTF9SRVNFUlZBVElPTj15CkNPTkZJR19QSFlT
SUNBTF9TVEFSVD0weDEwMDAwMDAKQ09ORklHX1JFTE9DQVRBQkxFPXkKQ09ORklHX1JBTkRP
TUlaRV9CQVNFPXkKQ09ORklHX1g4Nl9ORUVEX1JFTE9DUz15CkNPTkZJR19QSFlTSUNBTF9B
TElHTj0weDIwMDAwMApDT05GSUdfQ09NUEFUX1ZEU089eQojIENPTkZJR19DTURMSU5FX0JP
T0wgaXMgbm90IHNldApDT05GSUdfTU9ESUZZX0xEVF9TWVNDQUxMPXkKQ09ORklHX1NUUklD
VF9TSUdBTFRTVEFDS19TSVpFPXkKIyBlbmQgb2YgUHJvY2Vzc29yIHR5cGUgYW5kIGZlYXR1
cmVzCgpDT05GSUdfQ0NfSEFTX05BTUVEX0FTPXkKQ09ORklHX1VTRV9YODZfU0VHX1NVUFBP
UlQ9eQpDT05GSUdfQ0NfSEFTX1NMUz15CkNPTkZJR19DQ19IQVNfUkVUVVJOX1RIVU5LPXkK
Q09ORklHX0NDX0hBU19FTlRSWV9QQURESU5HPXkKQ09ORklHX0ZVTkNUSU9OX1BBRERJTkdf
Q0ZJPTExCkNPTkZJR19GVU5DVElPTl9QQURESU5HX0JZVEVTPTE2CkNPTkZJR19DUFVfTUlU
SUdBVElPTlM9eQojIENPTkZJR19NSVRJR0FUSU9OX1JFVFBPTElORSBpcyBub3Qgc2V0CkNP
TkZJR19NSVRJR0FUSU9OX0dEU19GT1JDRT15CiMgQ09ORklHX01JVElHQVRJT05fUkZEUyBp
cyBub3Qgc2V0CiMgQ09ORklHX01JVElHQVRJT05fU1BFQ1RSRV9CSEkgaXMgbm90IHNldAoK
IwojIFBvd2VyIG1hbmFnZW1lbnQgYW5kIEFDUEkgb3B0aW9ucwojCkNPTkZJR19TVVNQRU5E
PXkKQ09ORklHX1NVU1BFTkRfRlJFRVpFUj15CiMgQ09ORklHX0hJQkVSTkFUSU9OIGlzIG5v
dCBzZXQKQ09ORklHX1BNX1NMRUVQPXkKIyBDT05GSUdfUE1fQVVUT1NMRUVQIGlzIG5vdCBz
ZXQKQ09ORklHX1BNX1VTRVJTUEFDRV9BVVRPU0xFRVA9eQojIENPTkZJR19QTV9XQUtFTE9D
S1MgaXMgbm90IHNldApDT05GSUdfUE09eQojIENPTkZJR19QTV9ERUJVRyBpcyBub3Qgc2V0
CkNPTkZJR19QTV9DTEs9eQpDT05GSUdfV1FfUE9XRVJfRUZGSUNJRU5UX0RFRkFVTFQ9eQpD
T05GSUdfQVJDSF9TVVBQT1JUU19BQ1BJPXkKIyBDT05GSUdfQUNQSSBpcyBub3Qgc2V0CkNP
TkZJR19YODZfQVBNX0JPT1Q9eQpDT05GSUdfQVBNPXkKIyBDT05GSUdfQVBNX0lHTk9SRV9V
U0VSX1NVU1BFTkQgaXMgbm90IHNldAojIENPTkZJR19BUE1fRE9fRU5BQkxFIGlzIG5vdCBz
ZXQKQ09ORklHX0FQTV9ESVNQTEFZX0JMQU5LPXkKIyBDT05GSUdfQVBNX0FMTE9XX0lOVFMg
aXMgbm90IHNldAoKIwojIENQVSBGcmVxdWVuY3kgc2NhbGluZwojCiMgQ09ORklHX0NQVV9G
UkVRIGlzIG5vdCBzZXQKIyBlbmQgb2YgQ1BVIEZyZXF1ZW5jeSBzY2FsaW5nCgojCiMgQ1BV
IElkbGUKIwojIENPTkZJR19DUFVfSURMRSBpcyBub3Qgc2V0CiMgZW5kIG9mIENQVSBJZGxl
CiMgZW5kIG9mIFBvd2VyIG1hbmFnZW1lbnQgYW5kIEFDUEkgb3B0aW9ucwoKIwojIEJ1cyBv
cHRpb25zIChQQ0kgZXRjLikKIwpDT05GSUdfSVNBX0RNQV9BUEk9eQojIENPTkZJR19JU0Eg
aXMgbm90IHNldApDT05GSUdfU0N4MjAwPXkKQ09ORklHX1NDeDIwMEhSX1RJTUVSPXkKQ09O
RklHX09MUEM9eQpDT05GSUdfQUxJWD15CiMgQ09ORklHX05FVDU1MDEgaXMgbm90IHNldApD
T05GSUdfR0VPUz15CiMgZW5kIG9mIEJ1cyBvcHRpb25zIChQQ0kgZXRjLikKCiMKIyBCaW5h
cnkgRW11bGF0aW9ucwojCkNPTkZJR19DT01QQVRfMzI9eQojIGVuZCBvZiBCaW5hcnkgRW11
bGF0aW9ucwoKQ09ORklHX0hBVkVfQVRPTUlDX0lPTUFQPXkKQ09ORklHX1ZJUlRVQUxJWkFU
SU9OPXkKQ09ORklHX0FTX0FWWDUxMj15CkNPTkZJR19BU19TSEExX05JPXkKQ09ORklHX0FT
X1NIQTI1Nl9OST15CkNPTkZJR19BU19UUEFVU0U9eQpDT05GSUdfQVNfR0ZOST15CkNPTkZJ
R19BU19WQUVTPXkKQ09ORklHX0FTX1ZQQ0xNVUxRRFE9eQpDT05GSUdfQVNfV1JVU1M9eQpD
T05GSUdfQVJDSF9DT05GSUdVUkVTX0NQVV9NSVRJR0FUSU9OUz15CgojCiMgR2VuZXJhbCBh
cmNoaXRlY3R1cmUtZGVwZW5kZW50IG9wdGlvbnMKIwpDT05GSUdfR0VORVJJQ19FTlRSWT15
CkNPTkZJR19LUFJPQkVTPXkKQ09ORklHX0pVTVBfTEFCRUw9eQpDT05GSUdfU1RBVElDX0tF
WVNfU0VMRlRFU1Q9eQpDT05GSUdfU1RBVElDX0NBTExfU0VMRlRFU1Q9eQpDT05GSUdfT1BU
UFJPQkVTPXkKQ09ORklHX0hBVkVfRUZGSUNJRU5UX1VOQUxJR05FRF9BQ0NFU1M9eQpDT05G
SUdfQVJDSF9VU0VfQlVJTFRJTl9CU1dBUD15CkNPTkZJR19LUkVUUFJPQkVTPXkKQ09ORklH
X0tSRVRQUk9CRV9PTl9SRVRIT09LPXkKQ09ORklHX0hBVkVfSU9SRU1BUF9QUk9UPXkKQ09O
RklHX0hBVkVfS1BST0JFUz15CkNPTkZJR19IQVZFX0tSRVRQUk9CRVM9eQpDT05GSUdfSEFW
RV9PUFRQUk9CRVM9eQpDT05GSUdfSEFWRV9LUFJPQkVTX09OX0ZUUkFDRT15CkNPTkZJR19B
UkNIX0NPUlJFQ1RfU1RBQ0tUUkFDRV9PTl9LUkVUUFJPQkU9eQpDT05GSUdfSEFWRV9GVU5D
VElPTl9FUlJPUl9JTkpFQ1RJT049eQpDT05GSUdfSEFWRV9OTUk9eQpDT05GSUdfVFJBQ0Vf
SVJRRkxBR1NfU1VQUE9SVD15CkNPTkZJR19UUkFDRV9JUlFGTEFHU19OTUlfU1VQUE9SVD15
CkNPTkZJR19IQVZFX0FSQ0hfVFJBQ0VIT09LPXkKQ09ORklHX0hBVkVfRE1BX0NPTlRJR1VP
VVM9eQpDT05GSUdfR0VORVJJQ19TTVBfSURMRV9USFJFQUQ9eQpDT05GSUdfQVJDSF9IQVNf
Rk9SVElGWV9TT1VSQ0U9eQpDT05GSUdfQVJDSF9IQVNfU0VUX01FTU9SWT15CkNPTkZJR19B
UkNIX0hBU19TRVRfRElSRUNUX01BUD15CkNPTkZJR19BUkNIX0hBU19DUFVfRklOQUxJWkVf
SU5JVD15CkNPTkZJR19IQVZFX0FSQ0hfVEhSRUFEX1NUUlVDVF9XSElURUxJU1Q9eQpDT05G
SUdfQVJDSF9XQU5UU19EWU5BTUlDX1RBU0tfU1RSVUNUPXkKQ09ORklHX0FSQ0hfV0FOVFNf
Tk9fSU5TVFI9eQpDT05GSUdfQVJDSF8zMkJJVF9PRkZfVD15CkNPTkZJR19IQVZFX0FTTV9N
T0RWRVJTSU9OUz15CkNPTkZJR19IQVZFX1JFR1NfQU5EX1NUQUNLX0FDQ0VTU19BUEk9eQpD
T05GSUdfSEFWRV9SU0VRPXkKQ09ORklHX0hBVkVfRlVOQ1RJT05fQVJHX0FDQ0VTU19BUEk9
eQpDT05GSUdfSEFWRV9IV19CUkVBS1BPSU5UPXkKQ09ORklHX0hBVkVfTUlYRURfQlJFQUtQ
T0lOVFNfUkVHUz15CkNPTkZJR19IQVZFX1VTRVJfUkVUVVJOX05PVElGSUVSPXkKQ09ORklH
X0hBVkVfUEVSRl9FVkVOVFNfTk1JPXkKQ09ORklHX0hBVkVfSEFSRExPQ0tVUF9ERVRFQ1RP
Ul9QRVJGPXkKQ09ORklHX0hBVkVfUEVSRl9SRUdTPXkKQ09ORklHX0hBVkVfUEVSRl9VU0VS
X1NUQUNLX0RVTVA9eQpDT05GSUdfSEFWRV9BUkNIX0pVTVBfTEFCRUw9eQpDT05GSUdfSEFW
RV9BUkNIX0pVTVBfTEFCRUxfUkVMQVRJVkU9eQpDT05GSUdfTU1VX0dBVEhFUl9NRVJHRV9W
TUFTPXkKQ09ORklHX01NVV9MQVpZX1RMQl9SRUZDT1VOVD15CkNPTkZJR19BUkNIX0hBVkVf
Tk1JX1NBRkVfQ01QWENIRz15CkNPTkZJR19BUkNIX0hBU19OTUlfU0FGRV9USElTX0NQVV9P
UFM9eQpDT05GSUdfSEFWRV9BTElHTkVEX1NUUlVDVF9QQUdFPXkKQ09ORklHX0hBVkVfQ01Q
WENIR19MT0NBTD15CkNPTkZJR19IQVZFX0NNUFhDSEdfRE9VQkxFPXkKQ09ORklHX0FSQ0hf
V0FOVF9JUENfUEFSU0VfVkVSU0lPTj15CkNPTkZJR19IQVZFX0FSQ0hfU0VDQ09NUD15CkNP
TkZJR19IQVZFX0FSQ0hfU0VDQ09NUF9GSUxURVI9eQpDT05GSUdfU0VDQ09NUD15CkNPTkZJ
R19TRUNDT01QX0ZJTFRFUj15CiMgQ09ORklHX1NFQ0NPTVBfQ0FDSEVfREVCVUcgaXMgbm90
IHNldApDT05GSUdfSEFWRV9BUkNIX1NUQUNLTEVBSz15CkNPTkZJR19IQVZFX1NUQUNLUFJP
VEVDVE9SPXkKQ09ORklHX1NUQUNLUFJPVEVDVE9SPXkKIyBDT05GSUdfU1RBQ0tQUk9URUNU
T1JfU1RST05HIGlzIG5vdCBzZXQKQ09ORklHX0FSQ0hfU1VQUE9SVFNfTFRPX0NMQU5HPXkK
Q09ORklHX0FSQ0hfU1VQUE9SVFNfTFRPX0NMQU5HX1RISU49eQpDT05GSUdfTFRPX05PTkU9
eQpDT05GSUdfSEFWRV9BUkNIX1dJVEhJTl9TVEFDS19GUkFNRVM9eQpDT05GSUdfSEFWRV9J
UlFfVElNRV9BQ0NPVU5USU5HPXkKQ09ORklHX0hBVkVfTU9WRV9QVUQ9eQpDT05GSUdfSEFW
RV9NT1ZFX1BNRD15CkNPTkZJR19IQVZFX0FSQ0hfVFJBTlNQQVJFTlRfSFVHRVBBR0U9eQpD
T05GSUdfQVJDSF9XQU5UX0hVR0VfUE1EX1NIQVJFPXkKQ09ORklHX0hBVkVfTU9EX0FSQ0hf
U1BFQ0lGSUM9eQpDT05GSUdfTU9EVUxFU19VU0VfRUxGX1JFTD15CkNPTkZJR19IQVZFX1NP
RlRJUlFfT05fT1dOX1NUQUNLPXkKQ09ORklHX1NPRlRJUlFfT05fT1dOX1NUQUNLPXkKQ09O
RklHX0FSQ0hfSEFTX0VMRl9SQU5ET01JWkU9eQpDT05GSUdfSEFWRV9BUkNIX01NQVBfUk5E
X0JJVFM9eQpDT05GSUdfSEFWRV9FWElUX1RIUkVBRD15CkNPTkZJR19BUkNIX01NQVBfUk5E
X0JJVFM9OApDT05GSUdfSEFWRV9QQUdFX1NJWkVfNEtCPXkKQ09ORklHX1BBR0VfU0laRV80
S0I9eQpDT05GSUdfUEFHRV9TSVpFX0xFU1NfVEhBTl82NEtCPXkKQ09ORklHX1BBR0VfU0la
RV9MRVNTX1RIQU5fMjU2S0I9eQpDT05GSUdfUEFHRV9TSElGVD0xMgpDT05GSUdfSVNBX0JV
U19BUEk9eQpDT05GSUdfQ0xPTkVfQkFDS1dBUkRTPXkKQ09ORklHX09MRF9TSUdTVVNQRU5E
Mz15CkNPTkZJR19PTERfU0lHQUNUSU9OPXkKQ09ORklHX0NPTVBBVF8zMkJJVF9USU1FPXkK
Q09ORklHX0hBVkVfQVJDSF9SQU5ET01JWkVfS1NUQUNLX09GRlNFVD15CkNPTkZJR19SQU5E
T01JWkVfS1NUQUNLX09GRlNFVD15CiMgQ09ORklHX1JBTkRPTUlaRV9LU1RBQ0tfT0ZGU0VU
X0RFRkFVTFQgaXMgbm90IHNldApDT05GSUdfQVJDSF9IQVNfU1RSSUNUX0tFUk5FTF9SV1g9
eQpDT05GSUdfU1RSSUNUX0tFUk5FTF9SV1g9eQpDT05GSUdfQVJDSF9IQVNfU1RSSUNUX01P
RFVMRV9SV1g9eQpDT05GSUdfSEFWRV9BUkNIX1BSRUwzMl9SRUxPQ0FUSU9OUz15CkNPTkZJ
R19MT0NLX0VWRU5UX0NPVU5UUz15CkNPTkZJR19BUkNIX0hBU19NRU1fRU5DUllQVD15CkNP
TkZJR19IQVZFX1NUQVRJQ19DQUxMPXkKQ09ORklHX0hBVkVfUFJFRU1QVF9EWU5BTUlDPXkK
Q09ORklHX0hBVkVfUFJFRU1QVF9EWU5BTUlDX0NBTEw9eQpDT05GSUdfQVJDSF9XQU5UX0xE
X09SUEhBTl9XQVJOPXkKQ09ORklHX0FSQ0hfU1VQUE9SVFNfREVCVUdfUEFHRUFMTE9DPXkK
Q09ORklHX0FSQ0hfU1BMSVRfQVJHNjQ9eQpDT05GSUdfQVJDSF9IQVNfUEFSQU5PSURfTDFE
X0ZMVVNIPXkKQ09ORklHX0RZTkFNSUNfU0lHRlJBTUU9eQpDT05GSUdfQVJDSF9IQVNfSFdf
UFRFX1lPVU5HPXkKQ09ORklHX0FSQ0hfSEFTX0tFUk5FTF9GUFVfU1VQUE9SVD15CgojCiMg
R0NPVi1iYXNlZCBrZXJuZWwgcHJvZmlsaW5nCiMKIyBDT05GSUdfR0NPVl9LRVJORUwgaXMg
bm90IHNldApDT05GSUdfQVJDSF9IQVNfR0NPVl9QUk9GSUxFX0FMTD15CiMgZW5kIG9mIEdD
T1YtYmFzZWQga2VybmVsIHByb2ZpbGluZwoKQ09ORklHX0hBVkVfR0NDX1BMVUdJTlM9eQpD
T05GSUdfRlVOQ1RJT05fQUxJR05NRU5UXzRCPXkKQ09ORklHX0ZVTkNUSU9OX0FMSUdOTUVO
VF8xNkI9eQpDT05GSUdfRlVOQ1RJT05fQUxJR05NRU5UPTE2CiMgZW5kIG9mIEdlbmVyYWwg
YXJjaGl0ZWN0dXJlLWRlcGVuZGVudCBvcHRpb25zCgpDT05GSUdfUlRfTVVURVhFUz15CiMg
Q09ORklHX01PRFVMRVMgaXMgbm90IHNldApDT05GSUdfQkxPQ0s9eQpDT05GSUdfQkxPQ0tf
TEVHQUNZX0FVVE9MT0FEPXkKQ09ORklHX0JMS19JQ1E9eQojIENPTkZJR19CTEtfREVWX0JT
R0xJQiBpcyBub3Qgc2V0CkNPTkZJR19CTEtfREVWX0lOVEVHUklUWT15CkNPTkZJR19CTEtf
REVWX0lOVEVHUklUWV9UMTA9eQpDT05GSUdfQkxLX0RFVl9XUklURV9NT1VOVEVEPXkKIyBD
T05GSUdfQkxLX0RFVl9aT05FRCBpcyBub3Qgc2V0CiMgQ09ORklHX0JMS19XQlQgaXMgbm90
IHNldAojIENPTkZJR19CTEtfREVCVUdfRlMgaXMgbm90IHNldApDT05GSUdfQkxLX1NFRF9P
UEFMPXkKIyBDT05GSUdfQkxLX0lOTElORV9FTkNSWVBUSU9OIGlzIG5vdCBzZXQKCiMKIyBQ
YXJ0aXRpb24gVHlwZXMKIwojIENPTkZJR19QQVJUSVRJT05fQURWQU5DRUQgaXMgbm90IHNl
dApDT05GSUdfQU1JR0FfUEFSVElUSU9OPXkKQ09ORklHX01TRE9TX1BBUlRJVElPTj15CkNP
TkZJR19FRklfUEFSVElUSU9OPXkKIyBlbmQgb2YgUGFydGl0aW9uIFR5cGVzCgpDT05GSUdf
QkxLX01RX1ZJUlRJTz15CkNPTkZJR19CTEtfUE09eQpDT05GSUdfQkxPQ0tfSE9MREVSX0RF
UFJFQ0FURUQ9eQpDT05GSUdfQkxLX01RX1NUQUNLSU5HPXkKCiMKIyBJTyBTY2hlZHVsZXJz
CiMKQ09ORklHX01RX0lPU0NIRURfREVBRExJTkU9eQojIENPTkZJR19NUV9JT1NDSEVEX0tZ
QkVSIGlzIG5vdCBzZXQKQ09ORklHX0lPU0NIRURfQkZRPXkKIyBlbmQgb2YgSU8gU2NoZWR1
bGVycwoKQ09ORklHX0FTTjE9eQpDT05GSUdfVU5JTkxJTkVfU1BJTl9VTkxPQ0s9eQpDT05G
SUdfQVJDSF9TVVBQT1JUU19BVE9NSUNfUk1XPXkKQ09ORklHX0FSQ0hfVVNFX1FVRVVFRF9T
UElOTE9DS1M9eQpDT05GSUdfQVJDSF9VU0VfUVVFVUVEX1JXTE9DS1M9eQpDT05GSUdfQVJD
SF9IQVNfTk9OX09WRVJMQVBQSU5HX0FERFJFU1NfU1BBQ0U9eQpDT05GSUdfQVJDSF9IQVNf
U1lOQ19DT1JFX0JFRk9SRV9VU0VSTU9ERT15CkNPTkZJR19BUkNIX0hBU19TWVNDQUxMX1dS
QVBQRVI9eQpDT05GSUdfRlJFRVpFUj15CgojCiMgRXhlY3V0YWJsZSBmaWxlIGZvcm1hdHMK
IwpDT05GSUdfQklORk1UX0VMRj15CkNPTkZJR19CSU5GTVRfRUxGX0tVTklUX1RFU1Q9eQpD
T05GSUdfRUxGQ09SRT15CkNPTkZJR19DT1JFX0RVTVBfREVGQVVMVF9FTEZfSEVBREVSUz15
CiMgQ09ORklHX0JJTkZNVF9TQ1JJUFQgaXMgbm90IHNldApDT05GSUdfQklORk1UX01JU0M9
eQpDT05GSUdfQ09SRURVTVA9eQojIGVuZCBvZiBFeGVjdXRhYmxlIGZpbGUgZm9ybWF0cwoK
IwojIE1lbW9yeSBNYW5hZ2VtZW50IG9wdGlvbnMKIwpDT05GSUdfWlBPT0w9eQpDT05GSUdf
U1dBUD15CkNPTkZJR19aU1dBUD15CiMgQ09ORklHX1pTV0FQX0RFRkFVTFRfT04gaXMgbm90
IHNldApDT05GSUdfWlNXQVBfU0hSSU5LRVJfREVGQVVMVF9PTj15CiMgQ09ORklHX1pTV0FQ
X0NPTVBSRVNTT1JfREVGQVVMVF9ERUZMQVRFIGlzIG5vdCBzZXQKQ09ORklHX1pTV0FQX0NP
TVBSRVNTT1JfREVGQVVMVF9MWk89eQojIENPTkZJR19aU1dBUF9DT01QUkVTU09SX0RFRkFV
TFRfODQyIGlzIG5vdCBzZXQKIyBDT05GSUdfWlNXQVBfQ09NUFJFU1NPUl9ERUZBVUxUX0xa
NCBpcyBub3Qgc2V0CiMgQ09ORklHX1pTV0FQX0NPTVBSRVNTT1JfREVGQVVMVF9MWjRIQyBp
cyBub3Qgc2V0CiMgQ09ORklHX1pTV0FQX0NPTVBSRVNTT1JfREVGQVVMVF9aU1REIGlzIG5v
dCBzZXQKQ09ORklHX1pTV0FQX0NPTVBSRVNTT1JfREVGQVVMVD0ibHpvIgpDT05GSUdfWlNX
QVBfWlBPT0xfREVGQVVMVF9aQlVEPXkKIyBDT05GSUdfWlNXQVBfWlBPT0xfREVGQVVMVF9a
M0ZPTEQgaXMgbm90IHNldAojIENPTkZJR19aU1dBUF9aUE9PTF9ERUZBVUxUX1pTTUFMTE9D
IGlzIG5vdCBzZXQKQ09ORklHX1pTV0FQX1pQT09MX0RFRkFVTFQ9InpidWQiCkNPTkZJR19a
QlVEPXkKQ09ORklHX1ozRk9MRD15CkNPTkZJR19aU01BTExPQz15CiMgQ09ORklHX1pTTUFM
TE9DX1NUQVQgaXMgbm90IHNldApDT05GSUdfWlNNQUxMT0NfQ0hBSU5fU0laRT04CgojCiMg
U2xhYiBhbGxvY2F0b3Igb3B0aW9ucwojCkNPTkZJR19TTFVCPXkKQ09ORklHX1NMQUJfTUVS
R0VfREVGQVVMVD15CkNPTkZJR19TTEFCX0ZSRUVMSVNUX1JBTkRPTT15CkNPTkZJR19TTEFC
X0ZSRUVMSVNUX0hBUkRFTkVEPXkKIyBDT05GSUdfU0xVQl9TVEFUUyBpcyBub3Qgc2V0CkNP
TkZJR19SQU5ET01fS01BTExPQ19DQUNIRVM9eQojIGVuZCBvZiBTbGFiIGFsbG9jYXRvciBv
cHRpb25zCgpDT05GSUdfU0hVRkZMRV9QQUdFX0FMTE9DQVRPUj15CiMgQ09ORklHX0NPTVBB
VF9CUksgaXMgbm90IHNldApDT05GSUdfU0VMRUNUX01FTU9SWV9NT0RFTD15CiMgQ09ORklH
X0ZMQVRNRU1fTUFOVUFMIGlzIG5vdCBzZXQKQ09ORklHX1NQQVJTRU1FTV9NQU5VQUw9eQpD
T05GSUdfU1BBUlNFTUVNPXkKQ09ORklHX1NQQVJTRU1FTV9TVEFUSUM9eQpDT05GSUdfSEFW
RV9HVVBfRkFTVD15CkNPTkZJR19NRU1PUllfSVNPTEFUSU9OPXkKQ09ORklHX0FSQ0hfTUhQ
X01FTU1BUF9PTl9NRU1PUllfRU5BQkxFPXkKQ09ORklHX1NQTElUX1BUTE9DS19DUFVTPTQK
Q09ORklHX01FTU9SWV9CQUxMT09OPXkKIyBDT05GSUdfQ09NUEFDVElPTiBpcyBub3Qgc2V0
CkNPTkZJR19QQUdFX1JFUE9SVElORz15CkNPTkZJR19NSUdSQVRJT049eQpDT05GSUdfQ09O
VElHX0FMTE9DPXkKQ09ORklHX1BDUF9CQVRDSF9TQ0FMRV9NQVg9NQpDT05GSUdfQk9VTkNF
PXkKQ09ORklHX0tTTT15CkNPTkZJR19ERUZBVUxUX01NQVBfTUlOX0FERFI9NDA5NgpDT05G
SUdfQVJDSF9XQU5UX0dFTkVSQUxfSFVHRVRMQj15CiMgQ09ORklHX1RSQU5TUEFSRU5UX0hV
R0VQQUdFIGlzIG5vdCBzZXQKQ09ORklHX1BHVEFCTEVfSEFTX0hVR0VfTEVBVkVTPXkKQ09O
RklHX05FRURfUEVSX0NQVV9LTT15CkNPTkZJR19ORUVEX1BFUl9DUFVfRU1CRURfRklSU1Rf
Q0hVTks9eQpDT05GSUdfTkVFRF9QRVJfQ1BVX1BBR0VfRklSU1RfQ0hVTks9eQpDT05GSUdf
SEFWRV9TRVRVUF9QRVJfQ1BVX0FSRUE9eQpDT05GSUdfQ01BPXkKIyBDT05GSUdfQ01BX0RF
QlVHRlMgaXMgbm90IHNldApDT05GSUdfQ01BX1NZU0ZTPXkKQ09ORklHX0NNQV9BUkVBUz04
CkNPTkZJR19HRU5FUklDX0VBUkxZX0lPUkVNQVA9eQojIENPTkZJR19JRExFX1BBR0VfVFJB
Q0tJTkcgaXMgbm90IHNldApDT05GSUdfQVJDSF9IQVNfQ0FDSEVfTElORV9TSVpFPXkKQ09O
RklHX0FSQ0hfSEFTX0NVUlJFTlRfU1RBQ0tfUE9JTlRFUj15CkNPTkZJR19aT05FX0RNQT15
CkNPTkZJR19WTV9FVkVOVF9DT1VOVEVSUz15CkNPTkZJR19QRVJDUFVfU1RBVFM9eQpDT05G
SUdfR1VQX1RFU1Q9eQpDT05GSUdfRE1BUE9PTF9URVNUPXkKQ09ORklHX0FSQ0hfSEFTX1BU
RV9TUEVDSUFMPXkKQ09ORklHX0tNQVBfTE9DQUw9eQpDT05GSUdfTUVNRkRfQ1JFQVRFPXkK
Q09ORklHX1NFQ1JFVE1FTT15CkNPTkZJR19BTk9OX1ZNQV9OQU1FPXkKIyBDT05GSUdfVVNF
UkZBVUxURkQgaXMgbm90IHNldApDT05GSUdfTE9DS19NTV9BTkRfRklORF9WTUE9eQpDT05G
SUdfRVhFQ01FTT15CgojCiMgRGF0YSBBY2Nlc3MgTW9uaXRvcmluZwojCiMgQ09ORklHX0RB
TU9OIGlzIG5vdCBzZXQKIyBlbmQgb2YgRGF0YSBBY2Nlc3MgTW9uaXRvcmluZwojIGVuZCBv
ZiBNZW1vcnkgTWFuYWdlbWVudCBvcHRpb25zCgpDT05GSUdfTkVUPXkKQ09ORklHX05FVF9J
TkdSRVNTPXkKQ09ORklHX05FVF9FR1JFU1M9eQpDT05GSUdfTkVUX1hHUkVTUz15CkNPTkZJ
R19TS0JfRVhURU5TSU9OUz15CgojCiMgTmV0d29ya2luZyBvcHRpb25zCiMKIyBDT05GSUdf
UEFDS0VUIGlzIG5vdCBzZXQKIyBDT05GSUdfVU5JWCBpcyBub3Qgc2V0CiMgQ09ORklHX1hE
UF9TT0NLRVRTIGlzIG5vdCBzZXQKQ09ORklHX05FVF9IQU5EU0hBS0VfS1VOSVRfVEVTVD15
CiMgQ09ORklHX0lORVQgaXMgbm90IHNldApDT05GSUdfTkVUV09SS19TRUNNQVJLPXkKQ09O
RklHX05FVF9QVFBfQ0xBU1NJRlk9eQpDT05GSUdfTkVUV09SS19QSFlfVElNRVNUQU1QSU5H
PXkKIyBDT05GSUdfTkVURklMVEVSIGlzIG5vdCBzZXQKQ09ORklHX0FUTT15CkNPTkZJR19B
VE1fTEFORT15CkNPTkZJR19TVFA9eQpDT05GSUdfR0FSUD15CiMgQ09ORklHX0JSSURHRSBp
cyBub3Qgc2V0CkNPTkZJR19WTEFOXzgwMjFRPXkKQ09ORklHX1ZMQU5fODAyMVFfR1ZSUD15
CiMgQ09ORklHX1ZMQU5fODAyMVFfTVZSUCBpcyBub3Qgc2V0CkNPTkZJR19MTEM9eQpDT05G
SUdfTExDMj15CkNPTkZJR19BVEFMSz15CkNPTkZJR19YMjU9eQpDT05GSUdfTEFQQj15CiMg
Q09ORklHX1BIT05FVCBpcyBub3Qgc2V0CkNPTkZJR19JRUVFODAyMTU0PXkKQ09ORklHX0lF
RUU4MDIxNTRfTkw4MDIxNTRfRVhQRVJJTUVOVEFMPXkKQ09ORklHX0lFRUU4MDIxNTRfU09D
S0VUPXkKIyBDT05GSUdfTUFDODAyMTU0IGlzIG5vdCBzZXQKIyBDT05GSUdfTkVUX1NDSEVE
IGlzIG5vdCBzZXQKIyBDT05GSUdfRENCIGlzIG5vdCBzZXQKIyBDT05GSUdfRE5TX1JFU09M
VkVSIGlzIG5vdCBzZXQKQ09ORklHX0JBVE1BTl9BRFY9eQpDT05GSUdfQkFUTUFOX0FEVl9C
QVRNQU5fVj15CkNPTkZJR19CQVRNQU5fQURWX05DPXkKQ09ORklHX0JBVE1BTl9BRFZfREVC
VUc9eQpDT05GSUdfVlNPQ0tFVFM9eQpDT05GSUdfVlNPQ0tFVFNfRElBRz15CiMgQ09ORklH
X1ZTT0NLRVRTX0xPT1BCQUNLIGlzIG5vdCBzZXQKQ09ORklHX1ZJUlRJT19WU09DS0VUUz15
CkNPTkZJR19WSVJUSU9fVlNPQ0tFVFNfQ09NTU9OPXkKQ09ORklHX05FVExJTktfRElBRz15
CiMgQ09ORklHX01QTFMgaXMgbm90IHNldAojIENPTkZJR19ORVRfTlNIIGlzIG5vdCBzZXQK
IyBDT05GSUdfSFNSIGlzIG5vdCBzZXQKQ09ORklHX1FSVFI9eQpDT05GSUdfUVJUUl9TTUQ9
eQpDT05GSUdfUVJUUl9UVU49eQpDT05GSUdfTUFYX1NLQl9GUkFHUz0xNwpDT05GSUdfTkVU
X1JYX0JVU1lfUE9MTD15CkNPTkZJR19CUUw9eQoKIwojIE5ldHdvcmsgdGVzdGluZwojCiMg
ZW5kIG9mIE5ldHdvcmsgdGVzdGluZwojIGVuZCBvZiBOZXR3b3JraW5nIG9wdGlvbnMKCkNP
TkZJR19IQU1SQURJTz15CgojCiMgUGFja2V0IFJhZGlvIHByb3RvY29scwojCkNPTkZJR19B
WDI1PXkKIyBDT05GSUdfQVgyNV9EQU1BX1NMQVZFIGlzIG5vdCBzZXQKIyBDT05GSUdfTkVU
Uk9NIGlzIG5vdCBzZXQKQ09ORklHX1JPU0U9eQoKIwojIEFYLjI1IG5ldHdvcmsgZGV2aWNl
IGRyaXZlcnMKIwpDT05GSUdfTUtJU1M9eQpDT05GSUdfNlBBQ0s9eQpDT05GSUdfQlBRRVRI
RVI9eQpDT05GSUdfQkFZQ09NX1NFUl9GRFg9eQpDT05GSUdfQkFZQ09NX1NFUl9IRFg9eQoj
IENPTkZJR19CQVlDT01fUEFSIGlzIG5vdCBzZXQKQ09ORklHX0JBWUNPTV9FUFA9eQpDT05G
SUdfWUFNPXkKIyBlbmQgb2YgQVguMjUgbmV0d29yayBkZXZpY2UgZHJpdmVycwoKQ09ORklH
X0NBTj15CkNPTkZJR19DQU5fUkFXPXkKQ09ORklHX0NBTl9CQ009eQpDT05GSUdfQ0FOX0dX
PXkKQ09ORklHX0NBTl9KMTkzOT15CiMgQ09ORklHX0NBTl9JU09UUCBpcyBub3Qgc2V0CiMg
Q09ORklHX0JUIGlzIG5vdCBzZXQKQ09ORklHX01DVFA9eQpDT05GSUdfTUNUUF9URVNUPXkK
Q09ORklHX01DVFBfRkxPV1M9eQpDT05GSUdfV0lSRUxFU1M9eQpDT05GSUdfV0VYVF9DT1JF
PXkKQ09ORklHX1dFWFRfUFJPQz15CkNPTkZJR19DRkc4MDIxMT15CkNPTkZJR19OTDgwMjEx
X1RFU1RNT0RFPXkKQ09ORklHX0NGRzgwMjExX0RFVkVMT1BFUl9XQVJOSU5HUz15CkNPTkZJ
R19DRkc4MDIxMV9SRVFVSVJFX1NJR05FRF9SRUdEQj15CkNPTkZJR19DRkc4MDIxMV9VU0Vf
S0VSTkVMX1JFR0RCX0tFWVM9eQojIENPTkZJR19DRkc4MDIxMV9ERUZBVUxUX1BTIGlzIG5v
dCBzZXQKQ09ORklHX0NGRzgwMjExX0RFQlVHRlM9eQpDT05GSUdfQ0ZHODAyMTFfQ1JEQV9T
VVBQT1JUPXkKQ09ORklHX0NGRzgwMjExX1dFWFQ9eQpDT05GSUdfQ0ZHODAyMTFfS1VOSVRf
VEVTVD15CkNPTkZJR19NQUM4MDIxMT15CkNPTkZJR19NQUM4MDIxMV9IQVNfUkM9eQpDT05G
SUdfTUFDODAyMTFfUkNfTUlOU1RSRUw9eQpDT05GSUdfTUFDODAyMTFfUkNfREVGQVVMVF9N
SU5TVFJFTD15CkNPTkZJR19NQUM4MDIxMV9SQ19ERUZBVUxUPSJtaW5zdHJlbF9odCIKQ09O
RklHX01BQzgwMjExX0tVTklUX1RFU1Q9eQojIENPTkZJR19NQUM4MDIxMV9NRVNIIGlzIG5v
dCBzZXQKQ09ORklHX01BQzgwMjExX0xFRFM9eQpDT05GSUdfTUFDODAyMTFfREVCVUdGUz15
CkNPTkZJR19NQUM4MDIxMV9NRVNTQUdFX1RSQUNJTkc9eQojIENPTkZJR19NQUM4MDIxMV9E
RUJVR19NRU5VIGlzIG5vdCBzZXQKQ09ORklHX01BQzgwMjExX1NUQV9IQVNIX01BWF9TSVpF
PTAKQ09ORklHX1JGS0lMTD15CkNPTkZJR19SRktJTExfTEVEUz15CkNPTkZJR19SRktJTExf
SU5QVVQ9eQpDT05GSUdfUkZLSUxMX0dQSU89eQojIENPTkZJR19ORVRfOVAgaXMgbm90IHNl
dApDT05GSUdfQ0FJRj15CkNPTkZJR19DQUlGX0RFQlVHPXkKQ09ORklHX0NBSUZfTkVUREVW
PXkKQ09ORklHX0NBSUZfVVNCPXkKQ09ORklHX05GQz15CkNPTkZJR19ORkNfRElHSVRBTD15
CiMgQ09ORklHX05GQ19OQ0kgaXMgbm90IHNldAojIENPTkZJR19ORkNfSENJIGlzIG5vdCBz
ZXQKCiMKIyBOZWFyIEZpZWxkIENvbW11bmljYXRpb24gKE5GQykgZGV2aWNlcwojCiMgQ09O
RklHX05GQ19UUkY3OTcwQSBpcyBub3Qgc2V0CkNPTkZJR19ORkNfU0lNPXkKQ09ORklHX05G
Q19QT1JUMTAwPXkKQ09ORklHX05GQ19QTjUzMz15CkNPTkZJR19ORkNfUE41MzNfVVNCPXkK
Q09ORklHX05GQ19QTjUzM19JMkM9eQpDT05GSUdfTkZDX1NUOTVIRj15CiMgZW5kIG9mIE5l
YXIgRmllbGQgQ29tbXVuaWNhdGlvbiAoTkZDKSBkZXZpY2VzCgpDT05GSUdfUFNBTVBMRT15
CkNPTkZJR19ORVRfSUZFPXkKQ09ORklHX0xXVFVOTkVMPXkKQ09ORklHX0dST19DRUxMUz15
CiMgQ09ORklHX05FVF9TRUxGVEVTVFMgaXMgbm90IHNldApDT05GSUdfTkVUX1NPQ0tfTVNH
PXkKQ09ORklHX1BBR0VfUE9PTD15CkNPTkZJR19QQUdFX1BPT0xfU1RBVFM9eQpDT05GSUdf
RkFJTE9WRVI9eQojIENPTkZJR19FVEhUT09MX05FVExJTksgaXMgbm90IHNldAojIENPTkZJ
R19ORVRERVZfQUREUl9MSVNUX1RFU1QgaXMgbm90IHNldApDT05GSUdfTkVUX1RFU1Q9eQoK
IwojIERldmljZSBEcml2ZXJzCiMKQ09ORklHX0hBVkVfRUlTQT15CkNPTkZJR19FSVNBPXkK
Q09ORklHX0VJU0FfVkxCX1BSSU1JTkc9eQpDT05GSUdfRUlTQV9WSVJUVUFMX1JPT1Q9eQpD
T05GSUdfRUlTQV9OQU1FUz15CkNPTkZJR19IQVZFX1BDST15CkNPTkZJR19HRU5FUklDX1BD
SV9JT01BUD15CiMgQ09ORklHX1BDSSBpcyBub3Qgc2V0CkNPTkZJR19QQ0NBUkQ9eQpDT05G
SUdfUENNQ0lBPXkKQ09ORklHX1BDTUNJQV9MT0FEX0NJUz15CgojCiMgUEMtY2FyZCBicmlk
Z2VzCiMKCiMKIyBHZW5lcmljIERyaXZlciBPcHRpb25zCiMKQ09ORklHX0FVWElMSUFSWV9C
VVM9eQojIENPTkZJR19VRVZFTlRfSEVMUEVSIGlzIG5vdCBzZXQKIyBDT05GSUdfREVWVE1Q
RlMgaXMgbm90IHNldAojIENPTkZJR19TVEFOREFMT05FIGlzIG5vdCBzZXQKQ09ORklHX1BS
RVZFTlRfRklSTVdBUkVfQlVJTEQ9eQoKIwojIEZpcm13YXJlIGxvYWRlcgojCkNPTkZJR19G
V19MT0FERVI9eQpDT05GSUdfRldfTE9BREVSX1BBR0VEX0JVRj15CkNPTkZJR19GV19MT0FE
RVJfU1lTRlM9eQpDT05GSUdfRVhUUkFfRklSTVdBUkU9IiIKQ09ORklHX0ZXX0xPQURFUl9V
U0VSX0hFTFBFUj15CkNPTkZJR19GV19MT0FERVJfVVNFUl9IRUxQRVJfRkFMTEJBQ0s9eQpD
T05GSUdfRldfTE9BREVSX0NPTVBSRVNTPXkKIyBDT05GSUdfRldfTE9BREVSX0NPTVBSRVNT
X1haIGlzIG5vdCBzZXQKQ09ORklHX0ZXX0xPQURFUl9DT01QUkVTU19aU1REPXkKIyBDT05G
SUdfRldfQ0FDSEUgaXMgbm90IHNldApDT05GSUdfRldfVVBMT0FEPXkKIyBlbmQgb2YgRmly
bXdhcmUgbG9hZGVyCgpDT05GSUdfV0FOVF9ERVZfQ09SRURVTVA9eQpDT05GSUdfQUxMT1df
REVWX0NPUkVEVU1QPXkKQ09ORklHX0RFVl9DT1JFRFVNUD15CkNPTkZJR19QTV9RT1NfS1VO
SVRfVEVTVD15CkNPTkZJR19EUklWRVJfUEVfS1VOSVRfVEVTVD15CkNPTkZJR19HRU5FUklD
X0NQVV9ERVZJQ0VTPXkKQ09ORklHX0dFTkVSSUNfQ1BVX0FVVE9QUk9CRT15CkNPTkZJR19H
RU5FUklDX0NQVV9WVUxORVJBQklMSVRJRVM9eQpDT05GSUdfU09DX0JVUz15CkNPTkZJR19S
RUdNQVA9eQojIENPTkZJR19SRUdNQVBfS1VOSVQgaXMgbm90IHNldAojIENPTkZJR19SRUdN
QVBfQlVJTEQgaXMgbm90IHNldApDT05GSUdfUkVHTUFQX0kyQz15CkNPTkZJR19SRUdNQVBf
U1BJPXkKQ09ORklHX1JFR01BUF9XMT15CkNPTkZJR19SRUdNQVBfTU1JTz15CkNPTkZJR19S
RUdNQVBfSVJRPXkKQ09ORklHX1JFR01BUF9TUElfQVZNTT15CkNPTkZJR19ETUFfU0hBUkVE
X0JVRkZFUj15CkNPTkZJR19ETUFfRkVOQ0VfVFJBQ0U9eQpDT05GSUdfRldfREVWTElOS19T
WU5DX1NUQVRFX1RJTUVPVVQ9eQojIGVuZCBvZiBHZW5lcmljIERyaXZlciBPcHRpb25zCgoj
CiMgQnVzIGRldmljZXMKIwpDT05GSUdfTU9YVEVUPXkKIyBDT05GSUdfTUhJX0JVUyBpcyBu
b3Qgc2V0CkNPTkZJR19NSElfQlVTX0VQPXkKIyBlbmQgb2YgQnVzIGRldmljZXMKCiMKIyBD
YWNoZSBEcml2ZXJzCiMKIyBlbmQgb2YgQ2FjaGUgRHJpdmVycwoKQ09ORklHX0NPTk5FQ1RP
Uj15CkNPTkZJR19QUk9DX0VWRU5UUz15CgojCiMgRmlybXdhcmUgRHJpdmVycwojCgojCiMg
QVJNIFN5c3RlbSBDb250cm9sIGFuZCBNYW5hZ2VtZW50IEludGVyZmFjZSBQcm90b2NvbAoj
CiMgZW5kIG9mIEFSTSBTeXN0ZW0gQ29udHJvbCBhbmQgTWFuYWdlbWVudCBJbnRlcmZhY2Ug
UHJvdG9jb2wKCkNPTkZJR19FREQ9eQojIENPTkZJR19FRERfT0ZGIGlzIG5vdCBzZXQKQ09O
RklHX0ZJUk1XQVJFX01FTU1BUD15CkNPTkZJR19ETUlJRD15CiMgQ09ORklHX0RNSV9TWVNG
UyBpcyBub3Qgc2V0CkNPTkZJR19ETUlfU0NBTl9NQUNISU5FX05PTl9FRklfRkFMTEJBQ0s9
eQpDT05GSUdfRldfQ0ZHX1NZU0ZTPXkKQ09ORklHX0ZXX0NGR19TWVNGU19DTURMSU5FPXkK
Q09ORklHX1NZU0ZCPXkKIyBDT05GSUdfU1lTRkJfU0lNUExFRkIgaXMgbm90IHNldAojIENP
TkZJR19HT09HTEVfRklSTVdBUkUgaXMgbm90IHNldAoKIwojIFF1YWxjb21tIGZpcm13YXJl
IGRyaXZlcnMKIwojIGVuZCBvZiBRdWFsY29tbSBmaXJtd2FyZSBkcml2ZXJzCgojCiMgVGVn
cmEgZmlybXdhcmUgZHJpdmVyCiMKIyBlbmQgb2YgVGVncmEgZmlybXdhcmUgZHJpdmVyCiMg
ZW5kIG9mIEZpcm13YXJlIERyaXZlcnMKCkNPTkZJR19HTlNTPXkKQ09ORklHX0dOU1NfVVNC
PXkKQ09ORklHX01URD15CgojCiMgUGFydGl0aW9uIHBhcnNlcnMKIwpDT05GSUdfTVREX0NN
RExJTkVfUEFSVFM9eQpDT05GSUdfTVREX09GX1BBUlRTPXkKIyBDT05GSUdfTVREX1JFREJP
T1RfUEFSVFMgaXMgbm90IHNldAojIGVuZCBvZiBQYXJ0aXRpb24gcGFyc2VycwoKIwojIFVz
ZXIgTW9kdWxlcyBBbmQgVHJhbnNsYXRpb24gTGF5ZXJzCiMKQ09ORklHX01URF9CTEtERVZT
PXkKQ09ORklHX01URF9CTE9DSz15CgojCiMgTm90ZSB0aGF0IGluIHNvbWUgY2FzZXMgVUJJ
IGJsb2NrIGlzIHByZWZlcnJlZC4gU2VlIE1URF9VQklfQkxPQ0suCiMKQ09ORklHX0ZUTD15
CkNPTkZJR19ORlRMPXkKIyBDT05GSUdfTkZUTF9SVyBpcyBub3Qgc2V0CiMgQ09ORklHX0lO
RlRMIGlzIG5vdCBzZXQKQ09ORklHX1JGRF9GVEw9eQpDT05GSUdfU1NGREM9eQpDT05GSUdf
U01fRlRMPXkKIyBDT05GSUdfTVREX09PUFMgaXMgbm90IHNldAojIENPTkZJR19NVERfUFNU
T1JFIGlzIG5vdCBzZXQKIyBDT05GSUdfTVREX1NXQVAgaXMgbm90IHNldApDT05GSUdfTVRE
X1BBUlRJVElPTkVEX01BU1RFUj15CgojCiMgUkFNL1JPTS9GbGFzaCBjaGlwIGRyaXZlcnMK
IwpDT05GSUdfTVREX0NGST15CkNPTkZJR19NVERfSkVERUNQUk9CRT15CkNPTkZJR19NVERf
R0VOX1BST0JFPXkKQ09ORklHX01URF9DRklfQURWX09QVElPTlM9eQojIENPTkZJR19NVERf
Q0ZJX05PU1dBUCBpcyBub3Qgc2V0CkNPTkZJR19NVERfQ0ZJX0JFX0JZVEVfU1dBUD15CiMg
Q09ORklHX01URF9DRklfTEVfQllURV9TV0FQIGlzIG5vdCBzZXQKIyBDT05GSUdfTVREX0NG
SV9HRU9NRVRSWSBpcyBub3Qgc2V0CkNPTkZJR19NVERfTUFQX0JBTktfV0lEVEhfMT15CkNP
TkZJR19NVERfTUFQX0JBTktfV0lEVEhfMj15CkNPTkZJR19NVERfTUFQX0JBTktfV0lEVEhf
ND15CkNPTkZJR19NVERfQ0ZJX0kxPXkKQ09ORklHX01URF9DRklfSTI9eQojIENPTkZJR19N
VERfT1RQIGlzIG5vdCBzZXQKIyBDT05GSUdfTVREX0NGSV9JTlRFTEVYVCBpcyBub3Qgc2V0
CkNPTkZJR19NVERfQ0ZJX0FNRFNURD15CiMgQ09ORklHX01URF9DRklfU1RBQSBpcyBub3Qg
c2V0CkNPTkZJR19NVERfQ0ZJX1VUSUw9eQpDT05GSUdfTVREX1JBTT15CkNPTkZJR19NVERf
Uk9NPXkKQ09ORklHX01URF9BQlNFTlQ9eQojIGVuZCBvZiBSQU0vUk9NL0ZsYXNoIGNoaXAg
ZHJpdmVycwoKIwojIE1hcHBpbmcgZHJpdmVycyBmb3IgY2hpcCBhY2Nlc3MKIwpDT05GSUdf
TVREX0NPTVBMRVhfTUFQUElOR1M9eQpDT05GSUdfTVREX1BIWVNNQVA9eQojIENPTkZJR19N
VERfUEhZU01BUF9DT01QQVQgaXMgbm90IHNldAojIENPTkZJR19NVERfUEhZU01BUF9PRiBp
cyBub3Qgc2V0CkNPTkZJR19NVERfUEhZU01BUF9HUElPX0FERFI9eQpDT05GSUdfTVREX1ND
eDIwMF9ET0NGTEFTSD15CkNPTkZJR19NVERfQU1ENzZYUk9NPXkKQ09ORklHX01URF9JQ0hY
Uk9NPXkKQ09ORklHX01URF9ORVR0ZWw9eQojIENPTkZJR19NVERfTDQ0MEdYIGlzIG5vdCBz
ZXQKIyBDT05GSUdfTVREX1BDTUNJQSBpcyBub3Qgc2V0CkNPTkZJR19NVERfUExBVFJBTT15
CiMgZW5kIG9mIE1hcHBpbmcgZHJpdmVycyBmb3IgY2hpcCBhY2Nlc3MKCiMKIyBTZWxmLWNv
bnRhaW5lZCBNVEQgZGV2aWNlIGRyaXZlcnMKIwpDT05GSUdfTVREX0RBVEFGTEFTSD15CkNP
TkZJR19NVERfREFUQUZMQVNIX1dSSVRFX1ZFUklGWT15CkNPTkZJR19NVERfREFUQUZMQVNI
X09UUD15CkNPTkZJR19NVERfTUNIUDIzSzI1Nj15CiMgQ09ORklHX01URF9NQ0hQNDhMNjQw
IGlzIG5vdCBzZXQKIyBDT05GSUdfTVREX1NTVDI1TCBpcyBub3Qgc2V0CkNPTkZJR19NVERf
U0xSQU09eQpDT05GSUdfTVREX1BIUkFNPXkKIyBDT05GSUdfTVREX01URFJBTSBpcyBub3Qg
c2V0CiMgQ09ORklHX01URF9CTE9DSzJNVEQgaXMgbm90IHNldAoKIwojIERpc2stT24tQ2hp
cCBEZXZpY2UgRHJpdmVycwojCkNPTkZJR19NVERfRE9DRzM9eQpDT05GSUdfQkNIX0NPTlNU
X009MTQKQ09ORklHX0JDSF9DT05TVF9UPTQKIyBlbmQgb2YgU2VsZi1jb250YWluZWQgTVRE
IGRldmljZSBkcml2ZXJzCgojCiMgTkFORAojCkNPTkZJR19NVERfTkFORF9DT1JFPXkKQ09O
RklHX01URF9PTkVOQU5EPXkKQ09ORklHX01URF9PTkVOQU5EX1ZFUklGWV9XUklURT15CkNP
TkZJR19NVERfT05FTkFORF9HRU5FUklDPXkKIyBDT05GSUdfTVREX09ORU5BTkRfT1RQIGlz
IG5vdCBzZXQKIyBDT05GSUdfTVREX09ORU5BTkRfMlhfUFJPR1JBTSBpcyBub3Qgc2V0CiMg
Q09ORklHX01URF9SQVdfTkFORCBpcyBub3Qgc2V0CkNPTkZJR19NVERfU1BJX05BTkQ9eQoK
IwojIEVDQyBlbmdpbmUgc3VwcG9ydAojCkNPTkZJR19NVERfTkFORF9FQ0M9eQpDT05GSUdf
TVREX05BTkRfRUNDX1NXX0hBTU1JTkc9eQojIENPTkZJR19NVERfTkFORF9FQ0NfU1dfSEFN
TUlOR19TTUMgaXMgbm90IHNldAojIENPTkZJR19NVERfTkFORF9FQ0NfU1dfQkNIIGlzIG5v
dCBzZXQKQ09ORklHX01URF9OQU5EX0VDQ19NWElDPXkKIyBlbmQgb2YgRUNDIGVuZ2luZSBz
dXBwb3J0CiMgZW5kIG9mIE5BTkQKCiMKIyBMUEREUiAmIExQRERSMiBQQ00gbWVtb3J5IGRy
aXZlcnMKIwpDT05GSUdfTVREX0xQRERSPXkKQ09ORklHX01URF9RSU5GT19QUk9CRT15CiMg
ZW5kIG9mIExQRERSICYgTFBERFIyIFBDTSBtZW1vcnkgZHJpdmVycwoKQ09ORklHX01URF9T
UElfTk9SPXkKQ09ORklHX01URF9TUElfTk9SX1VTRV80S19TRUNUT1JTPXkKIyBDT05GSUdf
TVREX1NQSV9OT1JfU1dQX0RJU0FCTEUgaXMgbm90IHNldAojIENPTkZJR19NVERfU1BJX05P
Ul9TV1BfRElTQUJMRV9PTl9WT0xBVElMRSBpcyBub3Qgc2V0CkNPTkZJR19NVERfU1BJX05P
Ul9TV1BfS0VFUD15CkNPTkZJR19NVERfVUJJPXkKQ09ORklHX01URF9VQklfV0xfVEhSRVNI
T0xEPTQwOTYKQ09ORklHX01URF9VQklfQkVCX0xJTUlUPTIwCkNPTkZJR19NVERfVUJJX0ZB
U1RNQVA9eQpDT05GSUdfTVREX1VCSV9HTFVFQkk9eQpDT05GSUdfTVREX1VCSV9CTE9DSz15
CkNPTkZJR19NVERfVUJJX05WTUVNPXkKQ09ORklHX01URF9IWVBFUkJVUz15CkNPTkZJR19E
VEM9eQpDT05GSUdfT0Y9eQpDT05GSUdfT0ZfVU5JVFRFU1Q9eQpDT05GSUdfT0ZfS1VOSVRf
VEVTVD15CkNPTkZJR19PRl9GTEFUVFJFRT15CkNPTkZJR19PRl9FQVJMWV9GTEFUVFJFRT15
CkNPTkZJR19PRl9QUk9NVFJFRT15CkNPTkZJR19PRl9LT0JKPXkKQ09ORklHX09GX0RZTkFN
SUM9eQpDT05GSUdfT0ZfQUREUkVTUz15CkNPTkZJR19PRl9JUlE9eQpDT05GSUdfT0ZfUkVT
RVJWRURfTUVNPXkKQ09ORklHX09GX1JFU09MVkU9eQpDT05GSUdfT0ZfT1ZFUkxBWT15CkNP
TkZJR19BUkNIX01JR0hUX0hBVkVfUENfUEFSUE9SVD15CkNPTkZJR19QQVJQT1JUPXkKQ09O
RklHX1BBUlBPUlRfUEM9eQpDT05GSUdfUEFSUE9SVF9QQ19GSUZPPXkKQ09ORklHX1BBUlBP
UlRfUENfU1VQRVJJTz15CiMgQ09ORklHX1BBUlBPUlRfUENfUENNQ0lBIGlzIG5vdCBzZXQK
IyBDT05GSUdfUEFSUE9SVF8xMjg0IGlzIG5vdCBzZXQKQ09ORklHX1BBUlBPUlRfTk9UX1BD
PXkKQ09ORklHX0JMS19ERVY9eQojIENPTkZJR19CTEtfREVWX05VTExfQkxLIGlzIG5vdCBz
ZXQKQ09ORklHX0JMS19ERVZfRkQ9eQpDT05GSUdfQkxLX0RFVl9GRF9SQVdDTUQ9eQojIENP
TkZJR19aUkFNIGlzIG5vdCBzZXQKQ09ORklHX0JMS19ERVZfTE9PUD15CkNPTkZJR19CTEtf
REVWX0xPT1BfTUlOX0NPVU5UPTgKCiMKIyBEUkJEIGRpc2FibGVkIGJlY2F1c2UgUFJPQ19G
UyBvciBJTkVUIG5vdCBzZWxlY3RlZAojCkNPTkZJR19CTEtfREVWX05CRD15CkNPTkZJR19C
TEtfREVWX1JBTT15CkNPTkZJR19CTEtfREVWX1JBTV9DT1VOVD0xNgpDT05GSUdfQkxLX0RF
Vl9SQU1fU0laRT00MDk2CkNPTkZJR19BVEFfT1ZFUl9FVEg9eQpDT05GSUdfVklSVElPX0JM
Sz15CkNPTkZJR19CTEtfREVWX1VCTEs9eQojIENPTkZJR19CTEtERVZfVUJMS19MRUdBQ1lf
T1BDT0RFUyBpcyBub3Qgc2V0CgojCiMgTlZNRSBTdXBwb3J0CiMKQ09ORklHX05WTUVfQVVU
SD15CkNPTkZJR19OVk1FX0NPUkU9eQojIENPTkZJR19OVk1FX01VTFRJUEFUSCBpcyBub3Qg
c2V0CkNPTkZJR19OVk1FX1ZFUkJPU0VfRVJST1JTPXkKQ09ORklHX05WTUVfSFdNT049eQpD
T05GSUdfTlZNRV9GQUJSSUNTPXkKIyBDT05GSUdfTlZNRV9GQyBpcyBub3Qgc2V0CkNPTkZJ
R19OVk1FX0hPU1RfQVVUSD15CkNPTkZJR19OVk1FX1RBUkdFVD15CkNPTkZJR19OVk1FX1RB
UkdFVF9QQVNTVEhSVT15CkNPTkZJR19OVk1FX1RBUkdFVF9MT09QPXkKQ09ORklHX05WTUVf
VEFSR0VUX0ZDPXkKQ09ORklHX05WTUVfVEFSR0VUX0FVVEg9eQojIGVuZCBvZiBOVk1FIFN1
cHBvcnQKCiMKIyBNaXNjIGRldmljZXMKIwpDT05GSUdfU0VOU09SU19MSVMzTFYwMkQ9eQpD
T05GSUdfQUQ1MjVYX0RQT1Q9eQojIENPTkZJR19BRDUyNVhfRFBPVF9JMkMgaXMgbm90IHNl
dAojIENPTkZJR19BRDUyNVhfRFBPVF9TUEkgaXMgbm90IHNldApDT05GSUdfRFVNTVlfSVJR
PXkKIyBDT05GSUdfSUNTOTMyUzQwMSBpcyBub3Qgc2V0CiMgQ09ORklHX0VOQ0xPU1VSRV9T
RVJWSUNFUyBpcyBub3Qgc2V0CkNPTkZJR19BUERTOTgwMkFMUz15CkNPTkZJR19JU0wyOTAw
Mz15CkNPTkZJR19JU0wyOTAyMD15CkNPTkZJR19TRU5TT1JTX1RTTDI1NTA9eQpDT05GSUdf
U0VOU09SU19CSDE3NzA9eQojIENPTkZJR19TRU5TT1JTX0FQRFM5OTBYIGlzIG5vdCBzZXQK
IyBDT05GSUdfSE1DNjM1MiBpcyBub3Qgc2V0CkNPTkZJR19EUzE2ODI9eQpDT05GSUdfTEFU
VElDRV9FQ1AzX0NPTkZJRz15CkNPTkZJR19TUkFNPXkKQ09ORklHX1hJTElOWF9TREZFQz15
CkNPTkZJR19NSVNDX1JUU1g9eQojIENPTkZJR19ISVNJX0hJS0VZX1VTQiBpcyBub3Qgc2V0
CkNPTkZJR19PUEVOX0RJQ0U9eQojIENPTkZJR19WQ1BVX1NUQUxMX0RFVEVDVE9SIGlzIG5v
dCBzZXQKQ09ORklHX1RQUzY1OTRfRVNNPXkKQ09ORklHX1RQUzY1OTRfUEZTTT15CiMgQ09O
RklHX05TTSBpcyBub3Qgc2V0CkNPTkZJR19DMlBPUlQ9eQpDT05GSUdfQzJQT1JUX0RVUkFN
QVJfMjE1MD15CgojCiMgRUVQUk9NIHN1cHBvcnQKIwpDT05GSUdfRUVQUk9NX0FUMjQ9eQpD
T05GSUdfRUVQUk9NX0FUMjU9eQpDT05GSUdfRUVQUk9NX01BWDY4NzU9eQpDT05GSUdfRUVQ
Uk9NXzkzQ1g2PXkKQ09ORklHX0VFUFJPTV85M1hYNDY9eQojIENPTkZJR19FRVBST01fSURU
Xzg5SFBFU1ggaXMgbm90IHNldAojIENPTkZJR19FRVBST01fRUUxMDA0IGlzIG5vdCBzZXQK
IyBlbmQgb2YgRUVQUk9NIHN1cHBvcnQKCiMKIyBUZXhhcyBJbnN0cnVtZW50cyBzaGFyZWQg
dHJhbnNwb3J0IGxpbmUgZGlzY2lwbGluZQojCkNPTkZJR19USV9TVD15CiMgZW5kIG9mIFRl
eGFzIEluc3RydW1lbnRzIHNoYXJlZCB0cmFuc3BvcnQgbGluZSBkaXNjaXBsaW5lCgpDT05G
SUdfU0VOU09SU19MSVMzX1NQST15CkNPTkZJR19TRU5TT1JTX0xJUzNfSTJDPXkKQ09ORklH
X0FMVEVSQV9TVEFQTD15CkNPTkZJR19FQ0hPPXkKQ09ORklHX01JU0NfUlRTWF9VU0I9eQpD
T05GSUdfVUFDQ0U9eQojIENPTkZJR19QVlBBTklDIGlzIG5vdCBzZXQKIyBlbmQgb2YgTWlz
YyBkZXZpY2VzCgojCiMgU0NTSSBkZXZpY2Ugc3VwcG9ydAojCkNPTkZJR19TQ1NJX01PRD15
CkNPTkZJR19SQUlEX0FUVFJTPXkKQ09ORklHX1NDU0lfQ09NTU9OPXkKIyBDT05GSUdfU0NT
SSBpcyBub3Qgc2V0CkNPTkZJR19TQ1NJX0xJQl9LVU5JVF9URVNUPXkKIyBlbmQgb2YgU0NT
SSBkZXZpY2Ugc3VwcG9ydAoKIyBDT05GSUdfQVRBIGlzIG5vdCBzZXQKQ09ORklHX01EPXkK
Q09ORklHX0JMS19ERVZfTUQ9eQojIENPTkZJR19NRF9BVVRPREVURUNUIGlzIG5vdCBzZXQK
Q09ORklHX01EX0JJVE1BUF9GSUxFPXkKQ09ORklHX01EX1JBSUQwPXkKQ09ORklHX01EX1JB
SUQxPXkKQ09ORklHX01EX1JBSUQxMD15CkNPTkZJR19NRF9SQUlENDU2PXkKIyBDT05GSUdf
QkNBQ0hFIGlzIG5vdCBzZXQKQ09ORklHX0JMS19ERVZfRE1fQlVJTFRJTj15CkNPTkZJR19C
TEtfREVWX0RNPXkKIyBDT05GSUdfRE1fREVCVUcgaXMgbm90IHNldApDT05GSUdfRE1fQlVG
SU89eQpDT05GSUdfRE1fREVCVUdfQkxPQ0tfTUFOQUdFUl9MT0NLSU5HPXkKQ09ORklHX0RN
X0RFQlVHX0JMT0NLX1NUQUNLX1RSQUNJTkc9eQpDT05GSUdfRE1fQklPX1BSSVNPTj15CkNP
TkZJR19ETV9QRVJTSVNURU5UX0RBVEE9eQpDT05GSUdfRE1fVU5TVFJJUEVEPXkKIyBDT05G
SUdfRE1fQ1JZUFQgaXMgbm90IHNldApDT05GSUdfRE1fU05BUFNIT1Q9eQpDT05GSUdfRE1f
VEhJTl9QUk9WSVNJT05JTkc9eQpDT05GSUdfRE1fQ0FDSEU9eQojIENPTkZJR19ETV9DQUNI
RV9TTVEgaXMgbm90IHNldAojIENPTkZJR19ETV9XUklURUNBQ0hFIGlzIG5vdCBzZXQKIyBD
T05GSUdfRE1fRVJBIGlzIG5vdCBzZXQKQ09ORklHX0RNX0NMT05FPXkKQ09ORklHX0RNX01J
UlJPUj15CkNPTkZJR19ETV9MT0dfVVNFUlNQQUNFPXkKQ09ORklHX0RNX1JBSUQ9eQojIENP
TkZJR19ETV9aRVJPIGlzIG5vdCBzZXQKQ09ORklHX0RNX01VTFRJUEFUSD15CiMgQ09ORklH
X0RNX01VTFRJUEFUSF9RTCBpcyBub3Qgc2V0CkNPTkZJR19ETV9NVUxUSVBBVEhfU1Q9eQoj
IENPTkZJR19ETV9NVUxUSVBBVEhfSFNUIGlzIG5vdCBzZXQKQ09ORklHX0RNX01VTFRJUEFU
SF9JT0E9eQpDT05GSUdfRE1fREVMQVk9eQpDT05GSUdfRE1fRFVTVD15CiMgQ09ORklHX0RN
X0lOSVQgaXMgbm90IHNldAojIENPTkZJR19ETV9VRVZFTlQgaXMgbm90IHNldApDT05GSUdf
RE1fRkxBS0VZPXkKQ09ORklHX0RNX1ZFUklUWT15CiMgQ09ORklHX0RNX1ZFUklUWV9WRVJJ
RllfUk9PVEhBU0hfU0lHIGlzIG5vdCBzZXQKIyBDT05GSUdfRE1fVkVSSVRZX0ZFQyBpcyBu
b3Qgc2V0CiMgQ09ORklHX0RNX1NXSVRDSCBpcyBub3Qgc2V0CkNPTkZJR19ETV9MT0dfV1JJ
VEVTPXkKIyBDT05GSUdfRE1fSU5URUdSSVRZIGlzIG5vdCBzZXQKQ09ORklHX1RBUkdFVF9D
T1JFPXkKQ09ORklHX1RDTV9JQkxPQ0s9eQpDT05GSUdfVENNX0ZJTEVJTz15CkNPTkZJR19U
Q01fVVNFUjI9eQojIENPTkZJR19NQUNJTlRPU0hfRFJJVkVSUyBpcyBub3Qgc2V0CkNPTkZJ
R19ORVRERVZJQ0VTPXkKQ09ORklHX01JST15CkNPTkZJR19ORVRfQ09SRT15CiMgQ09ORklH
X0RVTU1ZIGlzIG5vdCBzZXQKIyBDT05GSUdfRVFVQUxJWkVSIGlzIG5vdCBzZXQKQ09ORklH
X05FVF9URUFNPXkKIyBDT05GSUdfTkVUX1RFQU1fTU9ERV9CUk9BRENBU1QgaXMgbm90IHNl
dApDT05GSUdfTkVUX1RFQU1fTU9ERV9ST1VORFJPQklOPXkKQ09ORklHX05FVF9URUFNX01P
REVfUkFORE9NPXkKQ09ORklHX05FVF9URUFNX01PREVfQUNUSVZFQkFDS1VQPXkKQ09ORklH
X05FVF9URUFNX01PREVfTE9BREJBTEFOQ0U9eQojIENPTkZJR19NQUNWTEFOIGlzIG5vdCBz
ZXQKQ09ORklHX01BQ1NFQz15CiMgQ09ORklHX05FVENPTlNPTEUgaXMgbm90IHNldAojIENP
TkZJR19UVU5fVk5FVF9DUk9TU19MRSBpcyBub3Qgc2V0CkNPTkZJR19WRVRIPXkKQ09ORklH
X1ZJUlRJT19ORVQ9eQpDT05GSUdfTkxNT049eQojIENPTkZJR19ORVRLSVQgaXMgbm90IHNl
dAojIENPTkZJR19BUkNORVQgaXMgbm90IHNldApDT05GSUdfQVRNX0RSSVZFUlM9eQpDT05G
SUdfQVRNX0RVTU1ZPXkKQ09ORklHX0NBSUZfRFJJVkVSUz15CiMgQ09ORklHX0NBSUZfVFRZ
IGlzIG5vdCBzZXQKQ09ORklHX0NBSUZfVklSVElPPXkKQ09ORklHX0VUSEVSTkVUPXkKQ09O
RklHX01ESU89eQpDT05GSUdfTkVUX1ZFTkRPUl8zQ09NPXkKQ09ORklHX0VMMz15CkNPTkZJ
R19QQ01DSUFfM0M1NzQ9eQpDT05GSUdfUENNQ0lBXzNDNTg5PXkKQ09ORklHX1ZPUlRFWD15
CkNPTkZJR19ORVRfVkVORE9SX0FMQUNSSVRFQ0g9eQpDT05GSUdfQUxURVJBX1RTRT15CkNP
TkZJR19ORVRfVkVORE9SX0FNQVpPTj15CkNPTkZJR19ORVRfVkVORE9SX0FNRD15CkNPTkZJ
R19QQ01DSUFfTk1DTEFOPXkKQ09ORklHX0FNRF9YR0JFPXkKQ09ORklHX0FNRF9YR0JFX0hB
VkVfRUNDPXkKIyBDT05GSUdfTkVUX1ZFTkRPUl9BUVVBTlRJQSBpcyBub3Qgc2V0CkNPTkZJ
R19ORVRfVkVORE9SX0FSQz15CiMgQ09ORklHX05FVF9WRU5ET1JfQVNJWCBpcyBub3Qgc2V0
CkNPTkZJR19ORVRfVkVORE9SX0JST0FEQ09NPXkKQ09ORklHX0I0ND15CiMgQ09ORklHX0JD
TUdFTkVUIGlzIG5vdCBzZXQKQ09ORklHX1NZU1RFTVBPUlQ9eQpDT05GSUdfTkVUX1ZFTkRP
Ul9DQURFTkNFPXkKQ09ORklHX01BQ0I9eQpDT05GSUdfTkVUX1ZFTkRPUl9DQVZJVU09eQoj
IENPTkZJR19ORVRfVkVORE9SX0NJUlJVUyBpcyBub3Qgc2V0CiMgQ09ORklHX05FVF9WRU5E
T1JfQ09SVElOQSBpcyBub3Qgc2V0CkNPTkZJR19ORVRfVkVORE9SX0RBVklDT009eQpDT05G
SUdfRE05MDUxPXkKQ09ORklHX0RORVQ9eQpDT05GSUdfTkVUX1ZFTkRPUl9ERUM9eQojIENP
TkZJR19ORVRfVFVMSVAgaXMgbm90IHNldApDT05GSUdfTkVUX1ZFTkRPUl9FTkdMRURFUj15
CiMgQ09ORklHX1RTTkVQIGlzIG5vdCBzZXQKIyBDT05GSUdfTkVUX1ZFTkRPUl9FWkNISVAg
aXMgbm90IHNldApDT05GSUdfTkVUX1ZFTkRPUl9GVUpJVFNVPXkKQ09ORklHX1BDTUNJQV9G
TVZKMThYPXkKIyBDT05GSUdfTkVUX1ZFTkRPUl9GVU5HSUJMRSBpcyBub3Qgc2V0CkNPTkZJ
R19ORVRfVkVORE9SX0dPT0dMRT15CkNPTkZJR19ORVRfVkVORE9SX0hVQVdFST15CiMgQ09O
RklHX05FVF9WRU5ET1JfSU5URUwgaXMgbm90IHNldAojIENPTkZJR19ORVRfVkVORE9SX0FE
SSBpcyBub3Qgc2V0CkNPTkZJR19ORVRfVkVORE9SX0xJVEVYPXkKQ09ORklHX0xJVEVYX0xJ
VEVFVEg9eQpDT05GSUdfTkVUX1ZFTkRPUl9NRUxMQU5PWD15CiMgQ09ORklHX01MWFNXX0NP
UkUgaXMgbm90IHNldAojIENPTkZJR19NTFhGVyBpcyBub3Qgc2V0CkNPTkZJR19ORVRfVkVO
RE9SX01JQ1JFTD15CiMgQ09ORklHX0tTODg0MiBpcyBub3Qgc2V0CkNPTkZJR19LUzg4NTE9
eQojIENPTkZJR19LUzg4NTFfTUxMIGlzIG5vdCBzZXQKQ09ORklHX05FVF9WRU5ET1JfTUlD
Uk9DSElQPXkKQ09ORklHX0VOQzI4SjYwPXkKQ09ORklHX0VOQzI4SjYwX1dSSVRFVkVSSUZZ
PXkKQ09ORklHX0VOQ1gyNEo2MDA9eQpDT05GSUdfVkNBUD15CkNPTkZJR19WQ0FQX0tVTklU
X1RFU1Q9eQojIENPTkZJR19ORVRfVkVORE9SX01JQ1JPU0VNSSBpcyBub3Qgc2V0CiMgQ09O
RklHX05FVF9WRU5ET1JfTUlDUk9TT0ZUIGlzIG5vdCBzZXQKQ09ORklHX05FVF9WRU5ET1Jf
Tkk9eQojIENPTkZJR19OSV9YR0VfTUFOQUdFTUVOVF9FTkVUIGlzIG5vdCBzZXQKIyBDT05G
SUdfTkVUX1ZFTkRPUl9OQVRTRU1JIGlzIG5vdCBzZXQKQ09ORklHX05FVF9WRU5ET1JfTkVU
Uk9OT01FPXkKQ09ORklHX0VUSE9DPXkKIyBDT05GSUdfTkVUX1ZFTkRPUl9QRU5TQU5ETyBp
cyBub3Qgc2V0CkNPTkZJR19ORVRfVkVORE9SX1FVQUxDT01NPXkKQ09ORklHX1FDQTcwMDA9
eQpDT05GSUdfUUNBNzAwMF9TUEk9eQpDT05GSUdfUUNPTV9FTUFDPXkKQ09ORklHX1JNTkVU
PXkKQ09ORklHX05FVF9WRU5ET1JfUkVBTFRFSz15CiMgQ09ORklHX0FUUCBpcyBub3Qgc2V0
CkNPTkZJR19ORVRfVkVORE9SX1JFTkVTQVM9eQpDT05GSUdfTkVUX1ZFTkRPUl9ST0NLRVI9
eQpDT05GSUdfTkVUX1ZFTkRPUl9TQU1TVU5HPXkKIyBDT05GSUdfU1hHQkVfRVRIIGlzIG5v
dCBzZXQKIyBDT05GSUdfTkVUX1ZFTkRPUl9TRUVRIGlzIG5vdCBzZXQKQ09ORklHX05FVF9W
RU5ET1JfU09MQVJGTEFSRT15CiMgQ09ORklHX05FVF9WRU5ET1JfU01TQyBpcyBub3Qgc2V0
CiMgQ09ORklHX05FVF9WRU5ET1JfU09DSU9ORVhUIGlzIG5vdCBzZXQKIyBDT05GSUdfTkVU
X1ZFTkRPUl9TVE1JQ1JPIGlzIG5vdCBzZXQKQ09ORklHX05FVF9WRU5ET1JfU1lOT1BTWVM9
eQojIENPTkZJR19EV0NfWExHTUFDIGlzIG5vdCBzZXQKIyBDT05GSUdfTkVUX1ZFTkRPUl9U
SSBpcyBub3Qgc2V0CiMgQ09ORklHX05FVF9WRU5ET1JfVkVSVEVYQ09NIGlzIG5vdCBzZXQK
Q09ORklHX05FVF9WRU5ET1JfVklBPXkKQ09ORklHX1ZJQV9WRUxPQ0lUWT15CiMgQ09ORklH
X05FVF9WRU5ET1JfV0FOR1hVTiBpcyBub3Qgc2V0CkNPTkZJR19ORVRfVkVORE9SX1dJWk5F
VD15CkNPTkZJR19XSVpORVRfVzUxMDA9eQojIENPTkZJR19XSVpORVRfVzUzMDAgaXMgbm90
IHNldAojIENPTkZJR19XSVpORVRfQlVTX0RJUkVDVCBpcyBub3Qgc2V0CkNPTkZJR19XSVpO
RVRfQlVTX0lORElSRUNUPXkKIyBDT05GSUdfV0laTkVUX0JVU19BTlkgaXMgbm90IHNldAoj
IENPTkZJR19ORVRfVkVORE9SX1hJTElOWCBpcyBub3Qgc2V0CiMgQ09ORklHX05FVF9WRU5E
T1JfWElSQ09NIGlzIG5vdCBzZXQKQ09ORklHX0ZEREk9eQojIENPTkZJR19ERUZYWCBpcyBu
b3Qgc2V0CkNPTkZJR19QSFlMSU5LPXkKQ09ORklHX1BIWUxJQj15CkNPTkZJR19TV1BIWT15
CkNPTkZJR19MRURfVFJJR0dFUl9QSFk9eQpDT05GSUdfUEhZTElCX0xFRFM9eQpDT05GSUdf
RklYRURfUEhZPXkKIyBDT05GSUdfU0ZQIGlzIG5vdCBzZXQKCiMKIyBNSUkgUEhZIGRldmlj
ZSBkcml2ZXJzCiMKIyBDT05GSUdfQUlSX0VOODgxMUhfUEhZIGlzIG5vdCBzZXQKQ09ORklH
X0FNRF9QSFk9eQpDT05GSUdfQURJTl9QSFk9eQpDT05GSUdfQURJTjExMDBfUEhZPXkKIyBD
T05GSUdfQVFVQU5USUFfUEhZIGlzIG5vdCBzZXQKQ09ORklHX0FYODg3OTZCX1BIWT15CkNP
TkZJR19CUk9BRENPTV9QSFk9eQpDT05GSUdfQkNNNTQxNDBfUEhZPXkKIyBDT05GSUdfQkNN
N1hYWF9QSFkgaXMgbm90IHNldApDT05GSUdfQkNNODQ4ODFfUEhZPXkKQ09ORklHX0JDTTg3
WFhfUEhZPXkKQ09ORklHX0JDTV9ORVRfUEhZTElCPXkKQ09ORklHX0JDTV9ORVRfUEhZUFRQ
PXkKIyBDT05GSUdfQ0lDQURBX1BIWSBpcyBub3Qgc2V0CkNPTkZJR19DT1JUSU5BX1BIWT15
CiMgQ09ORklHX0RBVklDT01fUEhZIGlzIG5vdCBzZXQKQ09ORklHX0lDUExVU19QSFk9eQoj
IENPTkZJR19MWFRfUEhZIGlzIG5vdCBzZXQKIyBDT05GSUdfSU5URUxfWFdBWV9QSFkgaXMg
bm90IHNldAojIENPTkZJR19MU0lfRVQxMDExQ19QSFkgaXMgbm90IHNldApDT05GSUdfTUFS
VkVMTF9QSFk9eQpDT05GSUdfTUFSVkVMTF8xMEdfUEhZPXkKQ09ORklHX01BUlZFTExfODhR
MlhYWF9QSFk9eQojIENPTkZJR19NQVJWRUxMXzg4WDIyMjJfUEhZIGlzIG5vdCBzZXQKQ09O
RklHX01BWExJTkVBUl9HUEhZPXkKIyBDT05GSUdfTUVESUFURUtfR0VfUEhZIGlzIG5vdCBz
ZXQKQ09ORklHX01JQ1JFTF9QSFk9eQojIENPTkZJR19NSUNST0NISVBfVDFTX1BIWSBpcyBu
b3Qgc2V0CkNPTkZJR19NSUNST0NISVBfUEhZPXkKQ09ORklHX01JQ1JPQ0hJUF9UMV9QSFk9
eQpDT05GSUdfTUlDUk9TRU1JX1BIWT15CkNPTkZJR19NT1RPUkNPTU1fUEhZPXkKQ09ORklH
X05BVElPTkFMX1BIWT15CkNPTkZJR19OWFBfQ0JUWF9QSFk9eQpDT05GSUdfTlhQX0M0NV9U
SkExMVhYX1BIWT15CkNPTkZJR19OWFBfVEpBMTFYWF9QSFk9eQojIENPTkZJR19OQ04yNjAw
MF9QSFkgaXMgbm90IHNldApDT05GSUdfUUNPTV9ORVRfUEhZTElCPXkKIyBDT05GSUdfQVQ4
MDNYX1BIWSBpcyBub3Qgc2V0CiMgQ09ORklHX1FDQTgzWFhfUEhZIGlzIG5vdCBzZXQKQ09O
RklHX1FDQTgwOFhfUEhZPXkKQ09ORklHX1FDQTgwN1hfUEhZPXkKQ09ORklHX1FTRU1JX1BI
WT15CkNPTkZJR19SRUFMVEVLX1BIWT15CkNPTkZJR19SRU5FU0FTX1BIWT15CiMgQ09ORklH
X1JPQ0tDSElQX1BIWSBpcyBub3Qgc2V0CkNPTkZJR19TTVNDX1BIWT15CiMgQ09ORklHX1NU
RTEwWFAgaXMgbm90IHNldAojIENPTkZJR19URVJBTkVUSUNTX1BIWSBpcyBub3Qgc2V0CkNP
TkZJR19EUDgzODIyX1BIWT15CiMgQ09ORklHX0RQODNUQzgxMV9QSFkgaXMgbm90IHNldAoj
IENPTkZJR19EUDgzODQ4X1BIWSBpcyBub3Qgc2V0CkNPTkZJR19EUDgzODY3X1BIWT15CiMg
Q09ORklHX0RQODM4NjlfUEhZIGlzIG5vdCBzZXQKQ09ORklHX0RQODNURDUxMF9QSFk9eQpD
T05GSUdfRFA4M1RHNzIwX1BIWT15CkNPTkZJR19WSVRFU1NFX1BIWT15CiMgQ09ORklHX1hJ
TElOWF9HTUlJMlJHTUlJIGlzIG5vdCBzZXQKIyBDT05GSUdfTUlDUkVMX0tTODk5NU1BIGlz
IG5vdCBzZXQKQ09ORklHX1BTRV9DT05UUk9MTEVSPXkKIyBDT05GSUdfUFNFX1JFR1VMQVRP
UiBpcyBub3Qgc2V0CiMgQ09ORklHX1BTRV9QRDY5MlgwIGlzIG5vdCBzZXQKQ09ORklHX1BT
RV9UUFMyMzg4MT15CkNPTkZJR19DQU5fREVWPXkKQ09ORklHX0NBTl9WQ0FOPXkKQ09ORklH
X0NBTl9WWENBTj15CiMgQ09ORklHX0NBTl9ORVRMSU5LIGlzIG5vdCBzZXQKIyBDT05GSUdf
Q0FOX0RFQlVHX0RFVklDRVMgaXMgbm90IHNldAoKIwojIE1DVFAgRGV2aWNlIERyaXZlcnMK
IwpDT05GSUdfTUNUUF9TRVJJQUw9eQpDT05GSUdfTUNUUF9UUkFOU1BPUlRfSTJDPXkKIyBl
bmQgb2YgTUNUUCBEZXZpY2UgRHJpdmVycwoKQ09ORklHX01ESU9fREVWSUNFPXkKQ09ORklH
X01ESU9fQlVTPXkKQ09ORklHX0ZXTk9ERV9NRElPPXkKQ09ORklHX09GX01ESU89eQpDT05G
SUdfTURJT19ERVZSRVM9eQpDT05GSUdfTURJT19CSVRCQU5HPXkKQ09ORklHX01ESU9fQkNN
X1VOSU1BQz15CkNPTkZJR19NRElPX0dQSU89eQpDT05GSUdfTURJT19ISVNJX0ZFTUFDPXkK
IyBDT05GSUdfTURJT19NVlVTQiBpcyBub3Qgc2V0CkNPTkZJR19NRElPX01TQ0NfTUlJTT15
CiMgQ09ORklHX01ESU9fSVBRNDAxOSBpcyBub3Qgc2V0CkNPTkZJR19NRElPX0lQUTgwNjQ9
eQpDT05GSUdfTURJT19SRUdNQVA9eQoKIwojIE1ESU8gTXVsdGlwbGV4ZXJzCiMKQ09ORklH
X01ESU9fQlVTX01VWD15CkNPTkZJR19NRElPX0JVU19NVVhfR1BJTz15CkNPTkZJR19NRElP
X0JVU19NVVhfTVVMVElQTEVYRVI9eQojIENPTkZJR19NRElPX0JVU19NVVhfTU1JT1JFRyBp
cyBub3Qgc2V0CgojCiMgUENTIGRldmljZSBkcml2ZXJzCiMKQ09ORklHX1BDU19MWU5YPXkK
IyBlbmQgb2YgUENTIGRldmljZSBkcml2ZXJzCgojIENPTkZJR19QTElQIGlzIG5vdCBzZXQK
Q09ORklHX1BQUD15CkNPTkZJR19QUFBfQlNEQ09NUD15CkNPTkZJR19QUFBfREVGTEFURT15
CkNPTkZJR19QUFBfRklMVEVSPXkKQ09ORklHX1BQUF9NUFBFPXkKIyBDT05GSUdfUFBQX01V
TFRJTElOSyBpcyBub3Qgc2V0CiMgQ09ORklHX1BQUE9BVE0gaXMgbm90IHNldApDT05GSUdf
UFBQT0U9eQojIENPTkZJR19QUFBPRV9IQVNIX0JJVFNfMSBpcyBub3Qgc2V0CiMgQ09ORklH
X1BQUE9FX0hBU0hfQklUU18yIGlzIG5vdCBzZXQKQ09ORklHX1BQUE9FX0hBU0hfQklUU180
PXkKIyBDT05GSUdfUFBQT0VfSEFTSF9CSVRTXzggaXMgbm90IHNldApDT05GSUdfUFBQT0Vf
SEFTSF9CSVRTPTQKIyBDT05GSUdfUFBQX0FTWU5DIGlzIG5vdCBzZXQKQ09ORklHX1BQUF9T
WU5DX1RUWT15CkNPTkZJR19TTElQPXkKQ09ORklHX1NMSEM9eQojIENPTkZJR19TTElQX0NP
TVBSRVNTRUQgaXMgbm90IHNldAojIENPTkZJR19TTElQX1NNQVJUIGlzIG5vdCBzZXQKIyBD
T05GSUdfU0xJUF9NT0RFX1NMSVA2IGlzIG5vdCBzZXQKQ09ORklHX1VTQl9ORVRfRFJJVkVS
Uz15CkNPTkZJR19VU0JfQ0FUQz15CkNPTkZJR19VU0JfS0FXRVRIPXkKQ09ORklHX1VTQl9Q
RUdBU1VTPXkKIyBDT05GSUdfVVNCX1JUTDgxNTAgaXMgbm90IHNldApDT05GSUdfVVNCX1JU
TDgxNTI9eQpDT05GSUdfVVNCX0xBTjc4WFg9eQpDT05GSUdfVVNCX1VTQk5FVD15CiMgQ09O
RklHX1VTQl9ORVRfQVg4ODE3WCBpcyBub3Qgc2V0CkNPTkZJR19VU0JfTkVUX0FYODgxNzlf
MTc4QT15CkNPTkZJR19VU0JfTkVUX0NEQ0VUSEVSPXkKIyBDT05GSUdfVVNCX05FVF9DRENf
RUVNIGlzIG5vdCBzZXQKQ09ORklHX1VTQl9ORVRfQ0RDX05DTT15CiMgQ09ORklHX1VTQl9O
RVRfSFVBV0VJX0NEQ19OQ00gaXMgbm90IHNldApDT05GSUdfVVNCX05FVF9DRENfTUJJTT15
CkNPTkZJR19VU0JfTkVUX0RNOTYwMT15CkNPTkZJR19VU0JfTkVUX1NSOTcwMD15CkNPTkZJ
R19VU0JfTkVUX1NSOTgwMD15CiMgQ09ORklHX1VTQl9ORVRfU01TQzc1WFggaXMgbm90IHNl
dApDT05GSUdfVVNCX05FVF9TTVNDOTVYWD15CkNPTkZJR19VU0JfTkVUX0dMNjIwQT15CiMg
Q09ORklHX1VTQl9ORVRfTkVUMTA4MCBpcyBub3Qgc2V0CkNPTkZJR19VU0JfTkVUX1BMVVNC
PXkKIyBDT05GSUdfVVNCX05FVF9NQ1M3ODMwIGlzIG5vdCBzZXQKIyBDT05GSUdfVVNCX05F
VF9STkRJU19IT1NUIGlzIG5vdCBzZXQKQ09ORklHX1VTQl9ORVRfQ0RDX1NVQlNFVF9FTkFC
TEU9eQpDT05GSUdfVVNCX05FVF9DRENfU1VCU0VUPXkKQ09ORklHX1VTQl9BTElfTTU2MzI9
eQpDT05GSUdfVVNCX0FOMjcyMD15CkNPTkZJR19VU0JfQkVMS0lOPXkKQ09ORklHX1VTQl9B
Uk1MSU5VWD15CiMgQ09ORklHX1VTQl9FUFNPTjI4ODggaXMgbm90IHNldAojIENPTkZJR19V
U0JfS0MyMTkwIGlzIG5vdCBzZXQKQ09ORklHX1VTQl9ORVRfWkFVUlVTPXkKQ09ORklHX1VT
Ql9ORVRfQ1g4MjMxMF9FVEg9eQojIENPTkZJR19VU0JfTkVUX0tBTE1JQSBpcyBub3Qgc2V0
CkNPTkZJR19VU0JfTkVUX1FNSV9XV0FOPXkKQ09ORklHX1VTQl9IU089eQojIENPTkZJR19V
U0JfTkVUX0lOVDUxWDEgaXMgbm90IHNldApDT05GSUdfVVNCX0lQSEVUSD15CkNPTkZJR19V
U0JfU0lFUlJBX05FVD15CiMgQ09ORklHX1VTQl9WTDYwMCBpcyBub3Qgc2V0CkNPTkZJR19V
U0JfTkVUX0NIOTIwMD15CkNPTkZJR19VU0JfTkVUX0FRQzExMT15CkNPTkZJR19VU0JfUlRM
ODE1M19FQ009eQpDT05GSUdfV0xBTj15CiMgQ09ORklHX1dMQU5fVkVORE9SX0FETVRFSyBp
cyBub3Qgc2V0CkNPTkZJR19BVEhfQ09NTU9OPXkKQ09ORklHX1dMQU5fVkVORE9SX0FUSD15
CiMgQ09ORklHX0FUSF9ERUJVRyBpcyBub3Qgc2V0CkNPTkZJR19BVEg5S19IVz15CkNPTkZJ
R19BVEg5S19DT01NT049eQpDT05GSUdfQVRIOUtfQ09NTU9OX0RFQlVHPXkKQ09ORklHX0FU
SDlLX0JUQ09FWF9TVVBQT1JUPXkKQ09ORklHX0FUSDlLPXkKIyBDT05GSUdfQVRIOUtfQUhC
IGlzIG5vdCBzZXQKQ09ORklHX0FUSDlLX0RFQlVHRlM9eQpDT05GSUdfQVRIOUtfU1RBVElP
Tl9TVEFUSVNUSUNTPXkKQ09ORklHX0FUSDlLX0RZTkFDSz15CiMgQ09ORklHX0FUSDlLX1dP
VyBpcyBub3Qgc2V0CkNPTkZJR19BVEg5S19SRktJTEw9eQpDT05GSUdfQVRIOUtfQ0hBTk5F
TF9DT05URVhUPXkKQ09ORklHX0FUSDlLX1BDT0VNPXkKIyBDT05GSUdfQVRIOUtfSFRDIGlz
IG5vdCBzZXQKIyBDT05GSUdfQVRIOUtfQ09NTU9OX1NQRUNUUkFMIGlzIG5vdCBzZXQKQ09O
RklHX0NBUkw5MTcwPXkKQ09ORklHX0NBUkw5MTcwX0xFRFM9eQojIENPTkZJR19DQVJMOTE3
MF9ERUJVR0ZTIGlzIG5vdCBzZXQKQ09ORklHX0NBUkw5MTcwX1dQQz15CkNPTkZJR19BVEg2
S0w9eQpDT05GSUdfQVRINktMX1NESU89eQojIENPTkZJR19BVEg2S0xfVVNCIGlzIG5vdCBz
ZXQKIyBDT05GSUdfQVRINktMX0RFQlVHIGlzIG5vdCBzZXQKQ09ORklHX0FSNTUyMz15CiMg
Q09ORklHX0FUSDEwSyBpcyBub3Qgc2V0CkNPTkZJR19XQ04zNlhYPXkKIyBDT05GSUdfV0NO
MzZYWF9ERUJVR0ZTIGlzIG5vdCBzZXQKQ09ORklHX0FUSDExSz15CiMgQ09ORklHX0FUSDEx
S19BSEIgaXMgbm90IHNldApDT05GSUdfQVRIMTFLX0RFQlVHPXkKQ09ORklHX0FUSDExS19E
RUJVR0ZTPXkKIyBDT05GSUdfV0xBTl9WRU5ET1JfQVRNRUwgaXMgbm90IHNldAojIENPTkZJ
R19XTEFOX1ZFTkRPUl9CUk9BRENPTSBpcyBub3Qgc2V0CiMgQ09ORklHX1dMQU5fVkVORE9S
X0lOVEVMIGlzIG5vdCBzZXQKIyBDT05GSUdfV0xBTl9WRU5ET1JfSU5URVJTSUwgaXMgbm90
IHNldAojIENPTkZJR19XTEFOX1ZFTkRPUl9NQVJWRUxMIGlzIG5vdCBzZXQKQ09ORklHX1dM
QU5fVkVORE9SX01FRElBVEVLPXkKQ09ORklHX01UNzYwMVU9eQpDT05GSUdfTVQ3Nl9DT1JF
PXkKQ09ORklHX01UNzZfTEVEUz15CkNPTkZJR19NVDc2X1VTQj15CkNPTkZJR19NVDc2X1NE
SU89eQpDT05GSUdfTVQ3NngwMl9MSUI9eQpDT05GSUdfTVQ3NngwMl9VU0I9eQpDT05GSUdf
TVQ3Nl9DT05OQUNfTElCPXkKQ09ORklHX01UNzkyeF9MSUI9eQpDT05GSUdfTVQ3OTJ4X1VT
Qj15CkNPTkZJR19NVDc2eDBfQ09NTU9OPXkKQ09ORklHX01UNzZ4MFU9eQpDT05GSUdfTVQ3
NngyX0NPTU1PTj15CkNPTkZJR19NVDc2eDJVPXkKQ09ORklHX01UNzYxNV9DT01NT049eQpD
T05GSUdfTVQ3NjYzX1VTQl9TRElPX0NPTU1PTj15CkNPTkZJR19NVDc2NjNVPXkKIyBDT05G
SUdfTVQ3NjYzUyBpcyBub3Qgc2V0CkNPTkZJR19NVDc5MjFfQ09NTU9OPXkKQ09ORklHX01U
NzkyMVM9eQpDT05GSUdfTVQ3OTIxVT15CiMgQ09ORklHX01UNzkyNVUgaXMgbm90IHNldApD
T05GSUdfV0xBTl9WRU5ET1JfTUlDUk9DSElQPXkKIyBDT05GSUdfV0xBTl9WRU5ET1JfUFVS
RUxJRkkgaXMgbm90IHNldApDT05GSUdfV0xBTl9WRU5ET1JfUkFMSU5LPXkKIyBDT05GSUdf
UlQyWDAwIGlzIG5vdCBzZXQKIyBDT05GSUdfV0xBTl9WRU5ET1JfUkVBTFRFSyBpcyBub3Qg
c2V0CkNPTkZJR19XTEFOX1ZFTkRPUl9SU0k9eQpDT05GSUdfUlNJXzkxWD15CiMgQ09ORklH
X1JTSV9ERUJVR0ZTIGlzIG5vdCBzZXQKIyBDT05GSUdfUlNJX1NESU8gaXMgbm90IHNldAoj
IENPTkZJR19SU0lfVVNCIGlzIG5vdCBzZXQKIyBDT05GSUdfV0xBTl9WRU5ET1JfU0lMQUJT
IGlzIG5vdCBzZXQKIyBDT05GSUdfV0xBTl9WRU5ET1JfU1QgaXMgbm90IHNldAojIENPTkZJ
R19XTEFOX1ZFTkRPUl9USSBpcyBub3Qgc2V0CkNPTkZJR19XTEFOX1ZFTkRPUl9aWURBUz15
CkNPTkZJR19aRDEyMTFSVz15CiMgQ09ORklHX1pEMTIxMVJXX0RFQlVHIGlzIG5vdCBzZXQK
Q09ORklHX1dMQU5fVkVORE9SX1FVQU5URU5OQT15CiMgQ09ORklHX01BQzgwMjExX0hXU0lN
IGlzIG5vdCBzZXQKIyBDT05GSUdfVklSVF9XSUZJIGlzIG5vdCBzZXQKIyBDT05GSUdfV0FO
IGlzIG5vdCBzZXQKIyBDT05GSUdfSUVFRTgwMjE1NF9EUklWRVJTIGlzIG5vdCBzZXQKCiMK
IyBXaXJlbGVzcyBXQU4KIwpDT05GSUdfV1dBTj15CkNPTkZJR19XV0FOX0RFQlVHRlM9eQpD
T05GSUdfV1dBTl9IV1NJTT15CiMgQ09ORklHX1JQTVNHX1dXQU5fQ1RSTCBpcyBub3Qgc2V0
CiMgZW5kIG9mIFdpcmVsZXNzIFdBTgoKQ09ORklHX05FVF9GQUlMT1ZFUj15CkNPTkZJR19J
U0ROPXkKQ09ORklHX01JU0ROPXkKIyBDT05GSUdfTUlTRE5fRFNQIGlzIG5vdCBzZXQKQ09O
RklHX01JU0ROX0wxT0lQPXkKCiMKIyBtSVNETiBoYXJkd2FyZSBkcml2ZXJzCiMKQ09ORklH
X01JU0ROX0hGQ1VTQj15CgojCiMgSW5wdXQgZGV2aWNlIHN1cHBvcnQKIwpDT05GSUdfSU5Q
VVQ9eQojIENPTkZJR19JTlBVVF9MRURTIGlzIG5vdCBzZXQKQ09ORklHX0lOUFVUX0ZGX01F
TUxFU1M9eQpDT05GSUdfSU5QVVRfU1BBUlNFS01BUD15CkNPTkZJR19JTlBVVF9NQVRSSVhL
TUFQPXkKQ09ORklHX0lOUFVUX1ZJVkFMRElGTUFQPXkKCiMKIyBVc2VybGFuZCBpbnRlcmZh
Y2VzCiMKQ09ORklHX0lOUFVUX01PVVNFREVWPXkKIyBDT05GSUdfSU5QVVRfTU9VU0VERVZf
UFNBVVggaXMgbm90IHNldApDT05GSUdfSU5QVVRfTU9VU0VERVZfU0NSRUVOX1g9MTAyNApD
T05GSUdfSU5QVVRfTU9VU0VERVZfU0NSRUVOX1k9NzY4CiMgQ09ORklHX0lOUFVUX0pPWURF
ViBpcyBub3Qgc2V0CkNPTkZJR19JTlBVVF9FVkRFVj15CkNPTkZJR19JTlBVVF9FVkJVRz15
CkNPTkZJR19JTlBVVF9LVU5JVF9URVNUPXkKCiMKIyBJbnB1dCBEZXZpY2UgRHJpdmVycwoj
CkNPTkZJR19JTlBVVF9LRVlCT0FSRD15CkNPTkZJR19LRVlCT0FSRF9BRFA1NTg4PXkKQ09O
RklHX0tFWUJPQVJEX0FEUDU1ODk9eQpDT05GSUdfS0VZQk9BUkRfQVRLQkQ9eQpDT05GSUdf
S0VZQk9BUkRfUVQxMDUwPXkKQ09ORklHX0tFWUJPQVJEX1FUMTA3MD15CkNPTkZJR19LRVlC
T0FSRF9RVDIxNjA9eQpDT05GSUdfS0VZQk9BUkRfRExJTktfRElSNjg1PXkKIyBDT05GSUdf
S0VZQk9BUkRfTEtLQkQgaXMgbm90IHNldAojIENPTkZJR19LRVlCT0FSRF9HUElPIGlzIG5v
dCBzZXQKQ09ORklHX0tFWUJPQVJEX0dQSU9fUE9MTEVEPXkKQ09ORklHX0tFWUJPQVJEX1RD
QTY0MTY9eQpDT05GSUdfS0VZQk9BUkRfVENBODQxOD15CkNPTkZJR19LRVlCT0FSRF9NQVRS
SVg9eQpDT05GSUdfS0VZQk9BUkRfTE04MzIzPXkKIyBDT05GSUdfS0VZQk9BUkRfTE04MzMz
IGlzIG5vdCBzZXQKQ09ORklHX0tFWUJPQVJEX01BWDczNTk9eQojIENPTkZJR19LRVlCT0FS
RF9NQ1MgaXMgbm90IHNldApDT05GSUdfS0VZQk9BUkRfTVBSMTIxPXkKIyBDT05GSUdfS0VZ
Qk9BUkRfTkVXVE9OIGlzIG5vdCBzZXQKQ09ORklHX0tFWUJPQVJEX09QRU5DT1JFUz15CiMg
Q09ORklHX0tFWUJPQVJEX1BJTkVQSE9ORSBpcyBub3Qgc2V0CiMgQ09ORklHX0tFWUJPQVJE
X1NBTVNVTkcgaXMgbm90IHNldApDT05GSUdfS0VZQk9BUkRfU1RPV0FXQVk9eQpDT05GSUdf
S0VZQk9BUkRfU1VOS0JEPXkKQ09ORklHX0tFWUJPQVJEX1NUTVBFPXkKQ09ORklHX0tFWUJP
QVJEX0lRUzYyWD15CiMgQ09ORklHX0tFWUJPQVJEX09NQVA0IGlzIG5vdCBzZXQKQ09ORklH
X0tFWUJPQVJEX1RNMl9UT1VDSEtFWT15CkNPTkZJR19LRVlCT0FSRF9YVEtCRD15CkNPTkZJ
R19LRVlCT0FSRF9DUk9TX0VDPXkKQ09ORklHX0tFWUJPQVJEX0NBUDExWFg9eQpDT05GSUdf
S0VZQk9BUkRfQkNNPXkKQ09ORklHX0tFWUJPQVJEX0NZUFJFU1NfU0Y9eQojIENPTkZJR19J
TlBVVF9NT1VTRSBpcyBub3Qgc2V0CkNPTkZJR19JTlBVVF9KT1lTVElDSz15CkNPTkZJR19K
T1lTVElDS19BTkFMT0c9eQpDT05GSUdfSk9ZU1RJQ0tfQTNEPXkKIyBDT05GSUdfSk9ZU1RJ
Q0tfQURJIGlzIG5vdCBzZXQKQ09ORklHX0pPWVNUSUNLX0NPQlJBPXkKQ09ORklHX0pPWVNU
SUNLX0dGMks9eQojIENPTkZJR19KT1lTVElDS19HUklQIGlzIG5vdCBzZXQKIyBDT05GSUdf
Sk9ZU1RJQ0tfR1JJUF9NUCBpcyBub3Qgc2V0CkNPTkZJR19KT1lTVElDS19HVUlMTEVNT1Q9
eQpDT05GSUdfSk9ZU1RJQ0tfSU5URVJBQ1Q9eQpDT05GSUdfSk9ZU1RJQ0tfU0lERVdJTkRF
Uj15CkNPTkZJR19KT1lTVElDS19UTURDPXkKIyBDT05GSUdfSk9ZU1RJQ0tfSUZPUkNFIGlz
IG5vdCBzZXQKQ09ORklHX0pPWVNUSUNLX1dBUlJJT1I9eQpDT05GSUdfSk9ZU1RJQ0tfTUFH
RUxMQU49eQpDT05GSUdfSk9ZU1RJQ0tfU1BBQ0VPUkI9eQpDT05GSUdfSk9ZU1RJQ0tfU1BB
Q0VCQUxMPXkKQ09ORklHX0pPWVNUSUNLX1NUSU5HRVI9eQpDT05GSUdfSk9ZU1RJQ0tfVFdJ
REpPWT15CkNPTkZJR19KT1lTVElDS19aSEVOSFVBPXkKQ09ORklHX0pPWVNUSUNLX0RCOT15
CkNPTkZJR19KT1lTVElDS19HQU1FQ09OPXkKIyBDT05GSUdfSk9ZU1RJQ0tfVFVSQk9HUkFG
WCBpcyBub3Qgc2V0CkNPTkZJR19KT1lTVElDS19BUzUwMTE9eQpDT05GSUdfSk9ZU1RJQ0tf
Sk9ZRFVNUD15CkNPTkZJR19KT1lTVElDS19YUEFEPXkKIyBDT05GSUdfSk9ZU1RJQ0tfWFBB
RF9GRiBpcyBub3Qgc2V0CiMgQ09ORklHX0pPWVNUSUNLX1hQQURfTEVEUyBpcyBub3Qgc2V0
CkNPTkZJR19KT1lTVElDS19XQUxLRVJBMDcwMT15CiMgQ09ORklHX0pPWVNUSUNLX1BTWFBB
RF9TUEkgaXMgbm90IHNldApDT05GSUdfSk9ZU1RJQ0tfUFhSQz15CkNPTkZJR19KT1lTVElD
S19RV0lJQz15CiMgQ09ORklHX0pPWVNUSUNLX0ZTSUE2QiBpcyBub3Qgc2V0CkNPTkZJR19K
T1lTVElDS19TRU5TRUhBVD15CkNPTkZJR19KT1lTVElDS19TRUVTQVc9eQpDT05GSUdfSU5Q
VVRfVEFCTEVUPXkKQ09ORklHX1RBQkxFVF9VU0JfQUNFQ0FEPXkKQ09ORklHX1RBQkxFVF9V
U0JfQUlQVEVLPXkKQ09ORklHX1RBQkxFVF9VU0JfSEFOV0FORz15CkNPTkZJR19UQUJMRVRf
VVNCX0tCVEFCPXkKQ09ORklHX1RBQkxFVF9VU0JfUEVHQVNVUz15CiMgQ09ORklHX1RBQkxF
VF9TRVJJQUxfV0FDT000IGlzIG5vdCBzZXQKIyBDT05GSUdfSU5QVVRfVE9VQ0hTQ1JFRU4g
aXMgbm90IHNldAojIENPTkZJR19JTlBVVF9NSVNDIGlzIG5vdCBzZXQKQ09ORklHX1JNSTRf
Q09SRT15CiMgQ09ORklHX1JNSTRfSTJDIGlzIG5vdCBzZXQKIyBDT05GSUdfUk1JNF9TUEkg
aXMgbm90IHNldApDT05GSUdfUk1JNF9TTUI9eQpDT05GSUdfUk1JNF9GMDM9eQpDT05GSUdf
Uk1JNF9GMDNfU0VSSU89eQpDT05GSUdfUk1JNF8yRF9TRU5TT1I9eQpDT05GSUdfUk1JNF9G
MTE9eQpDT05GSUdfUk1JNF9GMTI9eQpDT05GSUdfUk1JNF9GMzA9eQojIENPTkZJR19STUk0
X0YzNCBpcyBub3Qgc2V0CkNPTkZJR19STUk0X0YzQT15CiMgQ09ORklHX1JNSTRfRjU0IGlz
IG5vdCBzZXQKQ09ORklHX1JNSTRfRjU1PXkKCiMKIyBIYXJkd2FyZSBJL08gcG9ydHMKIwpD
T05GSUdfU0VSSU89eQpDT05GSUdfQVJDSF9NSUdIVF9IQVZFX1BDX1NFUklPPXkKQ09ORklH
X1NFUklPX0k4MDQyPXkKQ09ORklHX1NFUklPX1NFUlBPUlQ9eQpDT05GSUdfU0VSSU9fQ1Q4
MkM3MTA9eQpDT05GSUdfU0VSSU9fUEFSS0JEPXkKQ09ORklHX1NFUklPX0xJQlBTMj15CkNP
TkZJR19TRVJJT19SQVc9eQojIENPTkZJR19TRVJJT19BTFRFUkFfUFMyIGlzIG5vdCBzZXQK
Q09ORklHX1NFUklPX1BTMk1VTFQ9eQojIENPTkZJR19TRVJJT19BUkNfUFMyIGlzIG5vdCBz
ZXQKIyBDT05GSUdfU0VSSU9fQVBCUFMyIGlzIG5vdCBzZXQKQ09ORklHX1NFUklPX0dQSU9f
UFMyPXkKQ09ORklHX1VTRVJJTz15CkNPTkZJR19HQU1FUE9SVD15CiMgZW5kIG9mIEhhcmR3
YXJlIEkvTyBwb3J0cwojIGVuZCBvZiBJbnB1dCBkZXZpY2Ugc3VwcG9ydAoKIwojIENoYXJh
Y3RlciBkZXZpY2VzCiMKQ09ORklHX1RUWT15CkNPTkZJR19WVD15CkNPTkZJR19DT05TT0xF
X1RSQU5TTEFUSU9OUz15CkNPTkZJR19WVF9DT05TT0xFPXkKQ09ORklHX1ZUX0NPTlNPTEVf
U0xFRVA9eQpDT05GSUdfVlRfSFdfQ09OU09MRV9CSU5ESU5HPXkKQ09ORklHX1VOSVg5OF9Q
VFlTPXkKIyBDT05GSUdfTEVHQUNZX1BUWVMgaXMgbm90IHNldAojIENPTkZJR19MRUdBQ1lf
VElPQ1NUSSBpcyBub3Qgc2V0CiMgQ09ORklHX0xESVNDX0FVVE9MT0FEIGlzIG5vdCBzZXQK
CiMKIyBTZXJpYWwgZHJpdmVycwojCkNPTkZJR19TRVJJQUxfRUFSTFlDT049eQojIENPTkZJ
R19TRVJJQUxfODI1MCBpcyBub3Qgc2V0CgojCiMgTm9uLTgyNTAgc2VyaWFsIHBvcnQgc3Vw
cG9ydAojCkNPTkZJR19TRVJJQUxfTUFYMzEwMD15CkNPTkZJR19TRVJJQUxfTUFYMzEwWD15
CkNPTkZJR19TRVJJQUxfVUFSVExJVEU9eQojIENPTkZJR19TRVJJQUxfVUFSVExJVEVfQ09O
U09MRSBpcyBub3Qgc2V0CkNPTkZJR19TRVJJQUxfVUFSVExJVEVfTlJfVUFSVFM9MQpDT05G
SUdfU0VSSUFMX0NPUkU9eQpDT05GSUdfU0VSSUFMX0NPUkVfQ09OU09MRT15CiMgQ09ORklH
X1NFUklBTF9TSUZJVkUgaXMgbm90IHNldApDT05GSUdfU0VSSUFMX0xBTlRJUT15CkNPTkZJ
R19TRVJJQUxfTEFOVElRX0NPTlNPTEU9eQpDT05GSUdfU0VSSUFMX1NDQ05YUD15CiMgQ09O
RklHX1NFUklBTF9TQ0NOWFBfQ09OU09MRSBpcyBub3Qgc2V0CkNPTkZJR19TRVJJQUxfU0Mx
NklTN1hYPXkKQ09ORklHX1NFUklBTF9TQzE2SVM3WFhfSTJDPXkKQ09ORklHX1NFUklBTF9T
QzE2SVM3WFhfU1BJPXkKQ09ORklHX1NFUklBTF9USU1CRVJEQUxFPXkKQ09ORklHX1NFUklB
TF9BTFRFUkFfSlRBR1VBUlQ9eQojIENPTkZJR19TRVJJQUxfQUxURVJBX0pUQUdVQVJUX0NP
TlNPTEUgaXMgbm90IHNldAojIENPTkZJR19TRVJJQUxfQUxURVJBX1VBUlQgaXMgbm90IHNl
dAojIENPTkZJR19TRVJJQUxfWElMSU5YX1BTX1VBUlQgaXMgbm90IHNldAojIENPTkZJR19T
RVJJQUxfQVJDIGlzIG5vdCBzZXQKIyBDT05GSUdfU0VSSUFMX0ZTTF9MUFVBUlQgaXMgbm90
IHNldAojIENPTkZJR19TRVJJQUxfRlNMX0xJTkZMRVhVQVJUIGlzIG5vdCBzZXQKIyBDT05G
SUdfU0VSSUFMX0NPTkVYQU5UX0RJR0lDT0xPUiBpcyBub3Qgc2V0CiMgQ09ORklHX1NFUklB
TF9NRU5fWjEzNSBpcyBub3Qgc2V0CkNPTkZJR19TRVJJQUxfU1BSRD15CiMgQ09ORklHX1NF
UklBTF9TUFJEX0NPTlNPTEUgaXMgbm90IHNldAojIGVuZCBvZiBTZXJpYWwgZHJpdmVycwoK
IyBDT05GSUdfU0VSSUFMX05PTlNUQU5EQVJEIGlzIG5vdCBzZXQKIyBDT05GSUdfSVBXSVJF
TEVTUyBpcyBub3Qgc2V0CiMgQ09ORklHX05fR1NNIGlzIG5vdCBzZXQKQ09ORklHX05VTExf
VFRZPXkKQ09ORklHX0hWQ19EUklWRVI9eQojIENPTkZJR19SUE1TR19UVFkgaXMgbm90IHNl
dAojIENPTkZJR19TRVJJQUxfREVWX0JVUyBpcyBub3Qgc2V0CiMgQ09ORklHX1BSSU5URVIg
aXMgbm90IHNldApDT05GSUdfUFBERVY9eQpDT05GSUdfVklSVElPX0NPTlNPTEU9eQpDT05G
SUdfSVBNSV9IQU5ETEVSPXkKQ09ORklHX0lQTUlfRE1JX0RFQ09ERT15CkNPTkZJR19JUE1J
X1BMQVRfREFUQT15CkNPTkZJR19JUE1JX1BBTklDX0VWRU5UPXkKQ09ORklHX0lQTUlfUEFO
SUNfU1RSSU5HPXkKQ09ORklHX0lQTUlfREVWSUNFX0lOVEVSRkFDRT15CkNPTkZJR19JUE1J
X1NJPXkKQ09ORklHX0lQTUlfU1NJRj15CkNPTkZJR19JUE1JX0lQTUI9eQpDT05GSUdfSVBN
SV9XQVRDSERPRz15CiMgQ09ORklHX0lQTUlfUE9XRVJPRkYgaXMgbm90IHNldAojIENPTkZJ
R19TU0lGX0lQTUlfQk1DIGlzIG5vdCBzZXQKQ09ORklHX0lQTUJfREVWSUNFX0lOVEVSRkFD
RT15CiMgQ09ORklHX0hXX1JBTkRPTSBpcyBub3Qgc2V0CiMgQ09ORklHX01XQVZFIGlzIG5v
dCBzZXQKQ09ORklHX1NDeDIwMF9HUElPPXkKQ09ORklHX1BDODczNnhfR1BJTz15CkNPTkZJ
R19OU0NfR1BJTz15CkNPTkZJR19ERVZNRU09eQojIENPTkZJR19OVlJBTSBpcyBub3Qgc2V0
CiMgQ09ORklHX0RFVlBPUlQgaXMgbm90IHNldApDT05GSUdfSEFOR0NIRUNLX1RJTUVSPXkK
Q09ORklHX1RDR19UUE09eQojIENPTkZJR19UQ0dfVFBNMl9ITUFDIGlzIG5vdCBzZXQKQ09O
RklHX1RDR19USVNfQ09SRT15CiMgQ09ORklHX1RDR19USVMgaXMgbm90IHNldAojIENPTkZJ
R19UQ0dfVElTX1NQSSBpcyBub3Qgc2V0CkNPTkZJR19UQ0dfVElTX0kyQz15CkNPTkZJR19U
Q0dfVElTX0kyQ19DUjUwPXkKIyBDT05GSUdfVENHX1RJU19JMkNfQVRNRUwgaXMgbm90IHNl
dApDT05GSUdfVENHX1RJU19JMkNfSU5GSU5FT049eQojIENPTkZJR19UQ0dfVElTX0kyQ19O
VVZPVE9OIGlzIG5vdCBzZXQKQ09ORklHX1RDR19OU0M9eQpDT05GSUdfVENHX0FUTUVMPXkK
Q09ORklHX1RDR19WVFBNX1BST1hZPXkKQ09ORklHX1RDR19USVNfU1QzM1pQMjQ9eQpDT05G
SUdfVENHX1RJU19TVDMzWlAyNF9JMkM9eQojIENPTkZJR19UQ0dfVElTX1NUMzNaUDI0X1NQ
SSBpcyBub3Qgc2V0CkNPTkZJR19URUxDTE9DSz15CkNPTkZJR19YSUxMWUJVU19DTEFTUz15
CkNPTkZJR19YSUxMWUJVUz15CkNPTkZJR19YSUxMWUJVU19PRj15CkNPTkZJR19YSUxMWVVT
Qj15CiMgZW5kIG9mIENoYXJhY3RlciBkZXZpY2VzCgojCiMgSTJDIHN1cHBvcnQKIwpDT05G
SUdfSTJDPXkKQ09ORklHX0kyQ19CT0FSRElORk89eQpDT05GSUdfSTJDX0NPTVBBVD15CiMg
Q09ORklHX0kyQ19DSEFSREVWIGlzIG5vdCBzZXQKQ09ORklHX0kyQ19NVVg9eQoKIwojIE11
bHRpcGxleGVyIEkyQyBDaGlwIHN1cHBvcnQKIwpDT05GSUdfSTJDX0FSQl9HUElPX0NIQUxM
RU5HRT15CkNPTkZJR19JMkNfTVVYX0dQSU89eQpDT05GSUdfSTJDX01VWF9HUE1VWD15CkNP
TkZJR19JMkNfTVVYX0xUQzQzMDY9eQojIENPTkZJR19JMkNfTVVYX1BDQTk1NDEgaXMgbm90
IHNldApDT05GSUdfSTJDX01VWF9QQ0E5NTR4PXkKIyBDT05GSUdfSTJDX01VWF9QSU5DVFJM
IGlzIG5vdCBzZXQKIyBDT05GSUdfSTJDX01VWF9SRUcgaXMgbm90IHNldApDT05GSUdfSTJD
X0RFTVVYX1BJTkNUUkw9eQojIENPTkZJR19JMkNfTVVYX01MWENQTEQgaXMgbm90IHNldAoj
IGVuZCBvZiBNdWx0aXBsZXhlciBJMkMgQ2hpcCBzdXBwb3J0CgpDT05GSUdfSTJDX0FUUj15
CiMgQ09ORklHX0kyQ19IRUxQRVJfQVVUTyBpcyBub3Qgc2V0CkNPTkZJR19JMkNfU01CVVM9
eQoKIwojIEkyQyBBbGdvcml0aG1zCiMKQ09ORklHX0kyQ19BTEdPQklUPXkKQ09ORklHX0ky
Q19BTEdPUENGPXkKQ09ORklHX0kyQ19BTEdPUENBPXkKIyBlbmQgb2YgSTJDIEFsZ29yaXRo
bXMKCiMKIyBJMkMgSGFyZHdhcmUgQnVzIHN1cHBvcnQKIwoKIwojIEkyQyBzeXN0ZW0gYnVz
IGRyaXZlcnMgKG1vc3RseSBlbWJlZGRlZCAvIHN5c3RlbS1vbi1jaGlwKQojCkNPTkZJR19J
MkNfQ0JVU19HUElPPXkKQ09ORklHX0kyQ19ERVNJR05XQVJFX0NPUkU9eQojIENPTkZJR19J
MkNfREVTSUdOV0FSRV9TTEFWRSBpcyBub3Qgc2V0CkNPTkZJR19JMkNfREVTSUdOV0FSRV9Q
TEFURk9STT15CiMgQ09ORklHX0kyQ19FTUVWMiBpcyBub3Qgc2V0CkNPTkZJR19JMkNfR1BJ
Tz15CiMgQ09ORklHX0kyQ19HUElPX0ZBVUxUX0lOSkVDVE9SIGlzIG5vdCBzZXQKIyBDT05G
SUdfSTJDX09DT1JFUyBpcyBub3Qgc2V0CkNPTkZJR19JMkNfUENBX1BMQVRGT1JNPXkKQ09O
RklHX0kyQ19SSzNYPXkKIyBDT05GSUdfSTJDX1NJTVRFQyBpcyBub3Qgc2V0CkNPTkZJR19J
MkNfWElMSU5YPXkKCiMKIyBFeHRlcm5hbCBJMkMvU01CdXMgYWRhcHRlciBkcml2ZXJzCiMK
Q09ORklHX0kyQ19ESU9MQU5fVTJDPXkKQ09ORklHX0kyQ19ETE4yPXkKQ09ORklHX0kyQ19D
UDI2MTU9eQojIENPTkZJR19JMkNfUEFSUE9SVCBpcyBub3Qgc2V0CiMgQ09ORklHX0kyQ19S
T0JPVEZVWlpfT1NJRiBpcyBub3Qgc2V0CiMgQ09ORklHX0kyQ19UQU9TX0VWTSBpcyBub3Qg
c2V0CiMgQ09ORklHX0kyQ19USU5ZX1VTQiBpcyBub3Qgc2V0CkNPTkZJR19JMkNfVklQRVJC
T0FSRD15CgojCiMgT3RoZXIgSTJDL1NNQnVzIGJ1cyBkcml2ZXJzCiMKIyBDT05GSUdfSTJD
X0NST1NfRUNfVFVOTkVMIGlzIG5vdCBzZXQKQ09ORklHX0kyQ19GU0k9eQpDT05GSUdfSTJD
X1ZJUlRJTz15CiMgZW5kIG9mIEkyQyBIYXJkd2FyZSBCdXMgc3VwcG9ydAoKQ09ORklHX0ky
Q19TTEFWRT15CkNPTkZJR19JMkNfU0xBVkVfRUVQUk9NPXkKQ09ORklHX0kyQ19TTEFWRV9U
RVNUVU5JVD15CiMgQ09ORklHX0kyQ19ERUJVR19DT1JFIGlzIG5vdCBzZXQKIyBDT05GSUdf
STJDX0RFQlVHX0FMR08gaXMgbm90IHNldAojIENPTkZJR19JMkNfREVCVUdfQlVTIGlzIG5v
dCBzZXQKIyBlbmQgb2YgSTJDIHN1cHBvcnQKCiMgQ09ORklHX0kzQyBpcyBub3Qgc2V0CkNP
TkZJR19TUEk9eQpDT05GSUdfU1BJX01BU1RFUj15CkNPTkZJR19TUElfTUVNPXkKCiMKIyBT
UEkgTWFzdGVyIENvbnRyb2xsZXIgRHJpdmVycwojCkNPTkZJR19TUElfQUxURVJBPXkKQ09O
RklHX1NQSV9BTFRFUkFfQ09SRT15CkNPTkZJR19TUElfQVhJX1NQSV9FTkdJTkU9eQpDT05G
SUdfU1BJX0JJVEJBTkc9eQpDT05GSUdfU1BJX0JVVFRFUkZMWT15CiMgQ09ORklHX1NQSV9D
QURFTkNFIGlzIG5vdCBzZXQKQ09ORklHX1NQSV9DQURFTkNFX1FVQURTUEk9eQpDT05GSUdf
U1BJX0NBREVOQ0VfWFNQST15CkNPTkZJR19TUElfREVTSUdOV0FSRT15CiMgQ09ORklHX1NQ
SV9EV19ETUEgaXMgbm90IHNldApDT05GSUdfU1BJX0RXX01NSU89eQojIENPTkZJR19TUElf
RExOMiBpcyBub3Qgc2V0CkNPTkZJR19TUElfRlNJPXkKQ09ORklHX1NQSV9HUElPPXkKQ09O
RklHX1NQSV9JTlRFTD15CkNPTkZJR19TUElfSU5URUxfUExBVEZPUk09eQpDT05GSUdfU1BJ
X0xNNzBfTExQPXkKQ09ORklHX1NQSV9GU0xfTElCPXkKQ09ORklHX1NQSV9GU0xfU1BJPXkK
Q09ORklHX1NQSV9NSUNST0NISVBfQ09SRT15CiMgQ09ORklHX1NQSV9NSUNST0NISVBfQ09S
RV9RU1BJIGlzIG5vdCBzZXQKIyBDT05GSUdfU1BJX0xBTlRJUV9TU0MgaXMgbm90IHNldApD
T05GSUdfU1BJX09DX1RJTlk9eQojIENPTkZJR19TUElfU0MxOElTNjAyIGlzIG5vdCBzZXQK
Q09ORklHX1NQSV9TSUZJVkU9eQpDT05GSUdfU1BJX1NOX0ZfT1NQST15CkNPTkZJR19TUElf
TVhJQz15CkNPTkZJR19TUElfWENPTU09eQojIENPTkZJR19TUElfWElMSU5YIGlzIG5vdCBz
ZXQKQ09ORklHX1NQSV9aWU5RTVBfR1FTUEk9eQpDT05GSUdfU1BJX0FNRD15CgojCiMgU1BJ
IE11bHRpcGxleGVyIHN1cHBvcnQKIwojIENPTkZJR19TUElfTVVYIGlzIG5vdCBzZXQKCiMK
IyBTUEkgUHJvdG9jb2wgTWFzdGVycwojCkNPTkZJR19TUElfU1BJREVWPXkKQ09ORklHX1NQ
SV9UTEU2MlgwPXkKQ09ORklHX1NQSV9TTEFWRT15CiMgQ09ORklHX1NQSV9TTEFWRV9USU1F
IGlzIG5vdCBzZXQKQ09ORklHX1NQSV9TTEFWRV9TWVNURU1fQ09OVFJPTD15CkNPTkZJR19T
UElfRFlOQU1JQz15CiMgQ09ORklHX1NQTUkgaXMgbm90IHNldAojIENPTkZJR19IU0kgaXMg
bm90IHNldApDT05GSUdfUFBTPXkKIyBDT05GSUdfUFBTX0RFQlVHIGlzIG5vdCBzZXQKIyBD
T05GSUdfTlRQX1BQUyBpcyBub3Qgc2V0CgojCiMgUFBTIGNsaWVudHMgc3VwcG9ydAojCkNP
TkZJR19QUFNfQ0xJRU5UX0tUSU1FUj15CkNPTkZJR19QUFNfQ0xJRU5UX0xESVNDPXkKIyBD
T05GSUdfUFBTX0NMSUVOVF9QQVJQT1JUIGlzIG5vdCBzZXQKIyBDT05GSUdfUFBTX0NMSUVO
VF9HUElPIGlzIG5vdCBzZXQKCiMKIyBQUFMgZ2VuZXJhdG9ycyBzdXBwb3J0CiMKCiMKIyBQ
VFAgY2xvY2sgc3VwcG9ydAojCiMgQ09ORklHX1BUUF8xNTg4X0NMT0NLIGlzIG5vdCBzZXQK
Q09ORklHX1BUUF8xNTg4X0NMT0NLX09QVElPTkFMPXkKIyBlbmQgb2YgUFRQIGNsb2NrIHN1
cHBvcnQKCkNPTkZJR19QSU5DVFJMPXkKQ09ORklHX0dFTkVSSUNfUElOQ1RSTF9HUk9VUFM9
eQpDT05GSUdfUElOTVVYPXkKQ09ORklHX0dFTkVSSUNfUElOTVVYX0ZVTkNUSU9OUz15CkNP
TkZJR19QSU5DT05GPXkKQ09ORklHX0dFTkVSSUNfUElOQ09ORj15CiMgQ09ORklHX1BJTkNU
UkxfQVMzNzIyIGlzIG5vdCBzZXQKQ09ORklHX1BJTkNUUkxfQVc5NTIzPXkKQ09ORklHX1BJ
TkNUUkxfQ1k4Qzk1WDA9eQpDT05GSUdfUElOQ1RSTF9EQTkwNjI9eQojIENPTkZJR19QSU5D
VFJMX0VRVUlMSUJSSVVNIGlzIG5vdCBzZXQKQ09ORklHX1BJTkNUUkxfTUNQMjNTMDhfSTJD
PXkKQ09ORklHX1BJTkNUUkxfTUNQMjNTMDhfU1BJPXkKQ09ORklHX1BJTkNUUkxfTUNQMjNT
MDg9eQpDT05GSUdfUElOQ1RSTF9NSUNST0NISVBfU0dQSU89eQpDT05GSUdfUElOQ1RSTF9P
Q0VMT1Q9eQpDT05GSUdfUElOQ1RSTF9QQUxNQVM9eQojIENPTkZJR19QSU5DVFJMX1JLODA1
IGlzIG5vdCBzZXQKIyBDT05GSUdfUElOQ1RSTF9TSU5HTEUgaXMgbm90IHNldAojIENPTkZJ
R19QSU5DVFJMX1NUTUZYIGlzIG5vdCBzZXQKQ09ORklHX1BJTkNUUkxfU1gxNTBYPXkKIyBD
T05GSUdfUElOQ1RSTF9UUFM2NTk0IGlzIG5vdCBzZXQKQ09ORklHX1BJTkNUUkxfTE9DSE5B
R0FSPXkKQ09ORklHX1BJTkNUUkxfTUFERVJBPXkKQ09ORklHX1BJTkNUUkxfQ1M0N0wxNT15
CkNPTkZJR19QSU5DVFJMX0NTNDdMMzU9eQpDT05GSUdfUElOQ1RSTF9DUzQ3TDg1PXkKQ09O
RklHX1BJTkNUUkxfQ1M0N0w5Mj15CgojCiMgUmVuZXNhcyBwaW5jdHJsIGRyaXZlcnMKIwoj
IGVuZCBvZiBSZW5lc2FzIHBpbmN0cmwgZHJpdmVycwoKQ09ORklHX0dQSU9MSUI9eQpDT05G
SUdfR1BJT0xJQl9GQVNUUEFUSF9MSU1JVD01MTIKQ09ORklHX09GX0dQSU89eQpDT05GSUdf
R1BJT0xJQl9JUlFDSElQPXkKQ09ORklHX09GX0dQSU9fTU1fR1BJT0NISVA9eQpDT05GSUdf
R1BJT19DREVWPXkKIyBDT05GSUdfR1BJT19DREVWX1YxIGlzIG5vdCBzZXQKQ09ORklHX0dQ
SU9fR0VORVJJQz15CkNPTkZJR19HUElPX1JFR01BUD15CkNPTkZJR19HUElPX01BWDczMFg9
eQoKIwojIE1lbW9yeSBtYXBwZWQgR1BJTyBkcml2ZXJzCiMKIyBDT05GSUdfR1BJT183NFhY
X01NSU8gaXMgbm90IHNldApDT05GSUdfR1BJT19BTFRFUkE9eQpDT05GSUdfR1BJT19DQURF
TkNFPXkKQ09ORklHX0dQSU9fRFdBUEI9eQojIENPTkZJR19HUElPX0ZUR1BJTzAxMCBpcyBu
b3Qgc2V0CkNPTkZJR19HUElPX0dFTkVSSUNfUExBVEZPUk09eQpDT05GSUdfR1BJT19HUkFO
SVRFUkFQSURTPXkKIyBDT05GSUdfR1BJT19HUkdQSU8gaXMgbm90IHNldApDT05GSUdfR1BJ
T19ITFdEPXkKIyBDT05GSUdfR1BJT19MT0dJQ1ZDIGlzIG5vdCBzZXQKIyBDT05GSUdfR1BJ
T19NQjg2UzdYIGlzIG5vdCBzZXQKQ09ORklHX0dQSU9fTUVOWjEyNz15CkNPTkZJR19HUElP
X1NJRklWRT15CkNPTkZJR19HUElPX1NZU0NPTj15CkNPTkZJR19HUElPX1hJTElOWD15CiMg
Q09ORklHX0dQSU9fQU1EX0ZDSCBpcyBub3Qgc2V0CiMgZW5kIG9mIE1lbW9yeSBtYXBwZWQg
R1BJTyBkcml2ZXJzCgojCiMgUG9ydC1tYXBwZWQgSS9PIEdQSU8gZHJpdmVycwojCiMgQ09O
RklHX0dQSU9fRjcxODhYIGlzIG5vdCBzZXQKIyBDT05GSUdfR1BJT19JVDg3IGlzIG5vdCBz
ZXQKIyBDT05GSUdfR1BJT19TQ0gzMTFYIGlzIG5vdCBzZXQKQ09ORklHX0dQSU9fV0lOQk9O
RD15CkNPTkZJR19HUElPX1dTMTZDNDg9eQojIGVuZCBvZiBQb3J0LW1hcHBlZCBJL08gR1BJ
TyBkcml2ZXJzCgojCiMgSTJDIEdQSU8gZXhwYW5kZXJzCiMKQ09ORklHX0dQSU9fQUROUD15
CkNPTkZJR19HUElPX0ZYTDY0MDg9eQojIENPTkZJR19HUElPX0RTNDUyMCBpcyBub3Qgc2V0
CiMgQ09ORklHX0dQSU9fR1dfUExEIGlzIG5vdCBzZXQKIyBDT05GSUdfR1BJT19NQVg3MzAw
IGlzIG5vdCBzZXQKQ09ORklHX0dQSU9fTUFYNzMyWD15CkNPTkZJR19HUElPX01BWDczMlhf
SVJRPXkKIyBDT05GSUdfR1BJT19QQ0E5NTNYIGlzIG5vdCBzZXQKIyBDT05GSUdfR1BJT19Q
Q0E5NTcwIGlzIG5vdCBzZXQKQ09ORklHX0dQSU9fUENGODU3WD15CiMgQ09ORklHX0dQSU9f
VFBJQzI4MTAgaXMgbm90IHNldAojIGVuZCBvZiBJMkMgR1BJTyBleHBhbmRlcnMKCiMKIyBN
RkQgR1BJTyBleHBhbmRlcnMKIwpDT05GSUdfR1BJT19BUklaT05BPXkKIyBDT05GSUdfR1BJ
T19CRDcxODE1IGlzIG5vdCBzZXQKQ09ORklHX0dQSU9fQkQ3MTgyOD15CkNPTkZJR19HUElP
X0NST1NfRUM9eQojIENPTkZJR19HUElPX0RBOTA1MiBpcyBub3Qgc2V0CkNPTkZJR19HUElP
X0RMTjI9eQojIENPTkZJR19HUElPX0VMS0hBUlRMQUtFIGlzIG5vdCBzZXQKQ09ORklHX0dQ
SU9fTFA4NzU2NT15CkNPTkZJR19HUElPX01BREVSQT15CkNPTkZJR19HUElPX01BWDc3NjUw
PXkKQ09ORklHX0dQSU9fUEFMTUFTPXkKIyBDT05GSUdfR1BJT19SQzVUNTgzIGlzIG5vdCBz
ZXQKIyBDT05GSUdfR1BJT19TVE1QRSBpcyBub3Qgc2V0CkNPTkZJR19HUElPX1RQUzY1MDg2
PXkKQ09ORklHX0dQSU9fVFBTNjUyMTg9eQojIENPTkZJR19HUElPX1RQUzY1MjE5IGlzIG5v
dCBzZXQKQ09ORklHX0dQSU9fVFFNWDg2PXkKQ09ORklHX0dQSU9fV004MzFYPXkKIyBDT05G
SUdfR1BJT19XTTg5OTQgaXMgbm90IHNldAojIGVuZCBvZiBNRkQgR1BJTyBleHBhbmRlcnMK
CiMKIyBTUEkgR1BJTyBleHBhbmRlcnMKIwpDT05GSUdfR1BJT183NFgxNjQ9eQojIENPTkZJ
R19HUElPX01BWDMxOTFYIGlzIG5vdCBzZXQKQ09ORklHX0dQSU9fTUFYNzMwMT15CkNPTkZJ
R19HUElPX01DMzM4ODA9eQpDT05GSUdfR1BJT19QSVNPU1I9eQojIENPTkZJR19HUElPX1hS
QTE0MDMgaXMgbm90IHNldAojIENPTkZJR19HUElPX01PWFRFVCBpcyBub3Qgc2V0CiMgZW5k
IG9mIFNQSSBHUElPIGV4cGFuZGVycwoKIwojIFVTQiBHUElPIGV4cGFuZGVycwojCiMgQ09O
RklHX0dQSU9fVklQRVJCT0FSRCBpcyBub3Qgc2V0CiMgZW5kIG9mIFVTQiBHUElPIGV4cGFu
ZGVycwoKIwojIFZpcnR1YWwgR1BJTyBkcml2ZXJzCiMKQ09ORklHX0dQSU9fQUdHUkVHQVRP
Uj15CkNPTkZJR19HUElPX0xBVENIPXkKIyBDT05GSUdfR1BJT19NT0NLVVAgaXMgbm90IHNl
dApDT05GSUdfR1BJT19WSVJUSU89eQpDT05GSUdfR1BJT19TSU09eQojIGVuZCBvZiBWaXJ0
dWFsIEdQSU8gZHJpdmVycwoKQ09ORklHX1cxPXkKQ09ORklHX1cxX0NPTj15CgojCiMgMS13
aXJlIEJ1cyBNYXN0ZXJzCiMKIyBDT05GSUdfVzFfTUFTVEVSX0FNRF9BWEkgaXMgbm90IHNl
dApDT05GSUdfVzFfTUFTVEVSX0RTMjQ5MD15CiMgQ09ORklHX1cxX01BU1RFUl9EUzI0ODIg
aXMgbm90IHNldApDT05GSUdfVzFfTUFTVEVSX0dQSU89eQpDT05GSUdfVzFfTUFTVEVSX1NH
ST15CiMgZW5kIG9mIDEtd2lyZSBCdXMgTWFzdGVycwoKIwojIDEtd2lyZSBTbGF2ZXMKIwpD
T05GSUdfVzFfU0xBVkVfVEhFUk09eQpDT05GSUdfVzFfU0xBVkVfU01FTT15CkNPTkZJR19X
MV9TTEFWRV9EUzI0MDU9eQpDT05GSUdfVzFfU0xBVkVfRFMyNDA4PXkKQ09ORklHX1cxX1NM
QVZFX0RTMjQwOF9SRUFEQkFDSz15CiMgQ09ORklHX1cxX1NMQVZFX0RTMjQxMyBpcyBub3Qg
c2V0CkNPTkZJR19XMV9TTEFWRV9EUzI0MDY9eQpDT05GSUdfVzFfU0xBVkVfRFMyNDIzPXkK
Q09ORklHX1cxX1NMQVZFX0RTMjgwNT15CkNPTkZJR19XMV9TTEFWRV9EUzI0MzA9eQpDT05G
SUdfVzFfU0xBVkVfRFMyNDMxPXkKIyBDT05GSUdfVzFfU0xBVkVfRFMyNDMzIGlzIG5vdCBz
ZXQKQ09ORklHX1cxX1NMQVZFX0RTMjQzOD15CkNPTkZJR19XMV9TTEFWRV9EUzI1MFg9eQpD
T05GSUdfVzFfU0xBVkVfRFMyNzgwPXkKQ09ORklHX1cxX1NMQVZFX0RTMjc4MT15CiMgQ09O
RklHX1cxX1NMQVZFX0RTMjhFMDQgaXMgbm90IHNldApDT05GSUdfVzFfU0xBVkVfRFMyOEUx
Nz15CiMgZW5kIG9mIDEtd2lyZSBTbGF2ZXMKCkNPTkZJR19QT1dFUl9SRVNFVD15CiMgQ09O
RklHX1BPV0VSX1JFU0VUX0FTMzcyMiBpcyBub3Qgc2V0CiMgQ09ORklHX1BPV0VSX1JFU0VU
X0dQSU8gaXMgbm90IHNldApDT05GSUdfUE9XRVJfUkVTRVRfR1BJT19SRVNUQVJUPXkKQ09O
RklHX1BPV0VSX1JFU0VUX0xUQzI5NTI9eQpDT05GSUdfUE9XRVJfUkVTRVRfUkVHVUxBVE9S
PXkKIyBDT05GSUdfUE9XRVJfUkVTRVRfUkVTVEFSVCBpcyBub3Qgc2V0CiMgQ09ORklHX1BP
V0VSX1JFU0VUX1RQUzY1MDg2IGlzIG5vdCBzZXQKIyBDT05GSUdfUE9XRVJfUkVTRVRfU1lT
Q09OIGlzIG5vdCBzZXQKQ09ORklHX1BPV0VSX1JFU0VUX1NZU0NPTl9QT1dFUk9GRj15CkNP
TkZJR19SRUJPT1RfTU9ERT15CkNPTkZJR19TWVNDT05fUkVCT09UX01PREU9eQpDT05GSUdf
TlZNRU1fUkVCT09UX01PREU9eQpDT05GSUdfUE9XRVJfU1VQUExZPXkKIyBDT05GSUdfUE9X
RVJfU1VQUExZX0RFQlVHIGlzIG5vdCBzZXQKQ09ORklHX1BPV0VSX1NVUFBMWV9IV01PTj15
CkNPTkZJR19JUDVYWFhfUE9XRVI9eQojIENPTkZJR19NQVg4OTI1X1BPV0VSIGlzIG5vdCBz
ZXQKIyBDT05GSUdfV004MzFYX0JBQ0tVUCBpcyBub3Qgc2V0CkNPTkZJR19XTTgzMVhfUE9X
RVI9eQpDT05GSUdfVEVTVF9QT1dFUj15CiMgQ09ORklHX0JBVFRFUllfODhQTTg2MFggaXMg
bm90IHNldApDT05GSUdfQ0hBUkdFUl9BRFA1MDYxPXkKIyBDT05GSUdfQkFUVEVSWV9BQ1Q4
OTQ1QSBpcyBub3Qgc2V0CkNPTkZJR19CQVRURVJZX0NXMjAxNT15CkNPTkZJR19CQVRURVJZ
X0RTMjc2MD15CkNPTkZJR19CQVRURVJZX0RTMjc4MD15CkNPTkZJR19CQVRURVJZX0RTMjc4
MT15CkNPTkZJR19CQVRURVJZX0RTMjc4Mj15CiMgQ09ORklHX0JBVFRFUllfUUNPTV9CQVRU
TUdSIGlzIG5vdCBzZXQKQ09ORklHX0JBVFRFUllfT0xQQz15CkNPTkZJR19CQVRURVJZX1NB
TVNVTkdfU0RJPXkKIyBDT05GSUdfQkFUVEVSWV9TQlMgaXMgbm90IHNldApDT05GSUdfQ0hB
UkdFUl9TQlM9eQpDT05GSUdfTUFOQUdFUl9TQlM9eQojIENPTkZJR19CQVRURVJZX0JRMjdY
WFggaXMgbm90IHNldApDT05GSUdfQkFUVEVSWV9EQTkwNTI9eQpDT05GSUdfQkFUVEVSWV9N
QVgxNzA0Mj15CkNPTkZJR19CQVRURVJZX01BWDE3MjFYPXkKIyBDT05GSUdfQ0hBUkdFUl9Q
Q0Y1MDYzMyBpcyBub3Qgc2V0CiMgQ09ORklHX0NIQVJHRVJfSVNQMTcwNCBpcyBub3Qgc2V0
CiMgQ09ORklHX0NIQVJHRVJfTUFYODkwMyBpcyBub3Qgc2V0CkNPTkZJR19DSEFSR0VSX0xQ
ODcyNz15CkNPTkZJR19DSEFSR0VSX0dQSU89eQpDT05GSUdfQ0hBUkdFUl9NQU5BR0VSPXkK
IyBDT05GSUdfQ0hBUkdFUl9MVDM2NTEgaXMgbm90IHNldAojIENPTkZJR19DSEFSR0VSX0xU
QzQxNjJMIGlzIG5vdCBzZXQKQ09ORklHX0NIQVJHRVJfTUFYMTQ1Nzc9eQpDT05GSUdfQ0hB
UkdFUl9ERVRFQ1RPUl9NQVgxNDY1Nj15CkNPTkZJR19DSEFSR0VSX01BWDc3NjUwPXkKQ09O
RklHX0NIQVJHRVJfTUFYNzc2OTM9eQpDT05GSUdfQ0hBUkdFUl9NQVg3Nzk3Nj15CkNPTkZJ
R19DSEFSR0VSX01BWDg5OTg9eQpDT05GSUdfQ0hBUkdFUl9CUTI0MTVYPXkKIyBDT05GSUdf
Q0hBUkdFUl9CUTI0MTkwIGlzIG5vdCBzZXQKIyBDT05GSUdfQ0hBUkdFUl9CUTI0MjU3IGlz
IG5vdCBzZXQKIyBDT05GSUdfQ0hBUkdFUl9CUTI0NzM1IGlzIG5vdCBzZXQKQ09ORklHX0NI
QVJHRVJfQlEyNTE1WD15CiMgQ09ORklHX0NIQVJHRVJfQlEyNTg5MCBpcyBub3Qgc2V0CkNP
TkZJR19DSEFSR0VSX0JRMjU5ODA9eQojIENPTkZJR19DSEFSR0VSX0JRMjU2WFggaXMgbm90
IHNldApDT05GSUdfQ0hBUkdFUl9SSzgxNz15CkNPTkZJR19DSEFSR0VSX1NNQjM0Nz15CkNP
TkZJR19DSEFSR0VSX1RQUzY1MjE3PXkKQ09ORklHX0JBVFRFUllfR0FVR0VfTFRDMjk0MT15
CkNPTkZJR19CQVRURVJZX0dPTERGSVNIPXkKQ09ORklHX0JBVFRFUllfUlQ1MDMzPXkKQ09O
RklHX0NIQVJHRVJfUlQ1MDMzPXkKIyBDT05GSUdfQ0hBUkdFUl9SVDk0NTUgaXMgbm90IHNl
dAojIENPTkZJR19DSEFSR0VSX1JUOTQ2NyBpcyBub3Qgc2V0CkNPTkZJR19DSEFSR0VSX1JU
OTQ3MT15CkNPTkZJR19DSEFSR0VSX0NST1NfVVNCUEQ9eQpDT05GSUdfQ0hBUkdFUl9DUk9T
X1BDSEc9eQpDT05GSUdfQ0hBUkdFUl9VQ1MxMDAyPXkKIyBDT05GSUdfQ0hBUkdFUl9CRDk5
OTU0IGlzIG5vdCBzZXQKQ09ORklHX0JBVFRFUllfVUczMTA1PXkKIyBDT05GSUdfRlVFTF9H
QVVHRV9NTTgwMTMgaXMgbm90IHNldApDT05GSUdfSFdNT049eQpDT05GSUdfSFdNT05fVklE
PXkKIyBDT05GSUdfSFdNT05fREVCVUdfQ0hJUCBpcyBub3Qgc2V0CgojCiMgTmF0aXZlIGRy
aXZlcnMKIwojIENPTkZJR19TRU5TT1JTX0FCSVRVR1VSVSBpcyBub3Qgc2V0CkNPTkZJR19T
RU5TT1JTX0FCSVRVR1VSVTM9eQojIENPTkZJR19TRU5TT1JTX0FENzMxNCBpcyBub3Qgc2V0
CkNPTkZJR19TRU5TT1JTX0FENzQxND15CkNPTkZJR19TRU5TT1JTX0FENzQxOD15CkNPTkZJ
R19TRU5TT1JTX0FETTEwMjU9eQpDT05GSUdfU0VOU09SU19BRE0xMDI2PXkKIyBDT05GSUdf
U0VOU09SU19BRE0xMDI5IGlzIG5vdCBzZXQKIyBDT05GSUdfU0VOU09SU19BRE0xMDMxIGlz
IG5vdCBzZXQKIyBDT05GSUdfU0VOU09SU19BRE0xMTc3IGlzIG5vdCBzZXQKQ09ORklHX1NF
TlNPUlNfQURNOTI0MD15CkNPTkZJR19TRU5TT1JTX0FEVDdYMTA9eQpDT05GSUdfU0VOU09S
U19BRFQ3MzEwPXkKQ09ORklHX1NFTlNPUlNfQURUNzQxMD15CkNPTkZJR19TRU5TT1JTX0FE
VDc0MTE9eQpDT05GSUdfU0VOU09SU19BRFQ3NDYyPXkKQ09ORklHX1NFTlNPUlNfQURUNzQ3
MD15CiMgQ09ORklHX1NFTlNPUlNfQURUNzQ3NSBpcyBub3Qgc2V0CkNPTkZJR19TRU5TT1JT
X0FIVDEwPXkKIyBDT05GSUdfU0VOU09SU19BUVVBQ09NUFVURVJfRDVORVhUIGlzIG5vdCBz
ZXQKQ09ORklHX1NFTlNPUlNfQVMzNzA9eQojIENPTkZJR19TRU5TT1JTX0FTQzc2MjEgaXMg
bm90IHNldAojIENPTkZJR19TRU5TT1JTX0FTVVNfUk9HX1JZVUpJTiBpcyBub3Qgc2V0CkNP
TkZJR19TRU5TT1JTX0FYSV9GQU5fQ09OVFJPTD15CkNPTkZJR19TRU5TT1JTX0FQUExFU01D
PXkKIyBDT05GSUdfU0VOU09SU19BU0IxMDAgaXMgbm90IHNldAojIENPTkZJR19TRU5TT1JT
X0FUWFAxIGlzIG5vdCBzZXQKQ09ORklHX1NFTlNPUlNfQ0hJUENBUDI9eQpDT05GSUdfU0VO
U09SU19DT1JTQUlSX0NQUk89eQpDT05GSUdfU0VOU09SU19DT1JTQUlSX1BTVT15CkNPTkZJ
R19TRU5TT1JTX0RTNjIwPXkKQ09ORklHX1NFTlNPUlNfRFMxNjIxPXkKQ09ORklHX1NFTlNP
UlNfREE5MDUyX0FEQz15CiMgQ09ORklHX1NFTlNPUlNfRjcxODA1RiBpcyBub3Qgc2V0CiMg
Q09ORklHX1NFTlNPUlNfRjcxODgyRkcgaXMgbm90IHNldApDT05GSUdfU0VOU09SU19GNzUz
NzVTPXkKQ09ORklHX1NFTlNPUlNfTUMxMzc4M19BREM9eQpDT05GSUdfU0VOU09SU19GU0NI
TUQ9eQojIENPTkZJR19TRU5TT1JTX0dJR0FCWVRFX1dBVEVSRk9SQ0UgaXMgbm90IHNldApD
T05GSUdfU0VOU09SU19HTDUxOFNNPXkKQ09ORklHX1NFTlNPUlNfR0w1MjBTTT15CkNPTkZJ
R19TRU5TT1JTX0c3NjBBPXkKIyBDT05GSUdfU0VOU09SU19HNzYyIGlzIG5vdCBzZXQKIyBD
T05GSUdfU0VOU09SU19HUElPX0ZBTiBpcyBub3Qgc2V0CkNPTkZJR19TRU5TT1JTX0hJSDYx
MzA9eQpDT05GSUdfU0VOU09SU19IUzMwMDE9eQpDT05GSUdfU0VOU09SU19JQk1BRU09eQpD
T05GSUdfU0VOU09SU19JQk1QRVg9eQojIENPTkZJR19TRU5TT1JTX0NPUkVURU1QIGlzIG5v
dCBzZXQKQ09ORklHX1NFTlNPUlNfSVQ4Nz15CkNPTkZJR19TRU5TT1JTX0pDNDI9eQpDT05G
SUdfU0VOU09SU19QT1dFUlo9eQpDT05GSUdfU0VOU09SU19QT1dSMTIyMD15CkNPTkZJR19T
RU5TT1JTX0xFTk9WT19FQz15CiMgQ09ORklHX1NFTlNPUlNfTElORUFHRSBpcyBub3Qgc2V0
CiMgQ09ORklHX1NFTlNPUlNfTE9DSE5BR0FSIGlzIG5vdCBzZXQKQ09ORklHX1NFTlNPUlNf
TFRDMjk0NT15CkNPTkZJR19TRU5TT1JTX0xUQzI5NDc9eQpDT05GSUdfU0VOU09SU19MVEMy
OTQ3X0kyQz15CkNPTkZJR19TRU5TT1JTX0xUQzI5NDdfU1BJPXkKIyBDT05GSUdfU0VOU09S
U19MVEMyOTkwIGlzIG5vdCBzZXQKQ09ORklHX1NFTlNPUlNfTFRDMjk5MT15CkNPTkZJR19T
RU5TT1JTX0xUQzI5OTI9eQojIENPTkZJR19TRU5TT1JTX0xUQzQxNTEgaXMgbm90IHNldAoj
IENPTkZJR19TRU5TT1JTX0xUQzQyMTUgaXMgbm90IHNldApDT05GSUdfU0VOU09SU19MVEM0
MjIyPXkKIyBDT05GSUdfU0VOU09SU19MVEM0MjQ1IGlzIG5vdCBzZXQKQ09ORklHX1NFTlNP
UlNfTFRDNDI2MD15CiMgQ09ORklHX1NFTlNPUlNfTFRDNDI2MSBpcyBub3Qgc2V0CkNPTkZJ
R19TRU5TT1JTX0xUQzQyODI9eQpDT05GSUdfU0VOU09SU19NQVgxMTExPXkKQ09ORklHX1NF
TlNPUlNfTUFYMTI3PXkKQ09ORklHX1NFTlNPUlNfTUFYMTYwNjU9eQojIENPTkZJR19TRU5T
T1JTX01BWDE2MTkgaXMgbm90IHNldApDT05GSUdfU0VOU09SU19NQVgxNjY4PXkKIyBDT05G
SUdfU0VOU09SU19NQVgxOTcgaXMgbm90IHNldAojIENPTkZJR19TRU5TT1JTX01BWDMxNzIy
IGlzIG5vdCBzZXQKIyBDT05GSUdfU0VOU09SU19NQVgzMTczMCBpcyBub3Qgc2V0CkNPTkZJ
R19TRU5TT1JTX01BWDMxNzYwPXkKQ09ORklHX01BWDMxODI3PXkKQ09ORklHX1NFTlNPUlNf
TUFYNjYyMD15CkNPTkZJR19TRU5TT1JTX01BWDY2MjE9eQpDT05GSUdfU0VOU09SU19NQVg2
NjM5PXkKQ09ORklHX1NFTlNPUlNfTUFYNjY1MD15CiMgQ09ORklHX1NFTlNPUlNfTUFYNjY5
NyBpcyBub3Qgc2V0CkNPTkZJR19TRU5TT1JTX01BWDMxNzkwPXkKQ09ORklHX1NFTlNPUlNf
TUMzNFZSNTAwPXkKIyBDT05GSUdfU0VOU09SU19NQ1AzMDIxIGlzIG5vdCBzZXQKQ09ORklH
X1NFTlNPUlNfVEM2NTQ9eQojIENPTkZJR19TRU5TT1JTX1RQUzIzODYxIGlzIG5vdCBzZXQK
Q09ORklHX1NFTlNPUlNfTUVORjIxQk1DX0hXTU9OPXkKQ09ORklHX1NFTlNPUlNfTVI3NTIw
Mz15CkNPTkZJR19TRU5TT1JTX0FEQ1hYPXkKIyBDT05GSUdfU0VOU09SU19MTTYzIGlzIG5v
dCBzZXQKQ09ORklHX1NFTlNPUlNfTE03MD15CkNPTkZJR19TRU5TT1JTX0xNNzM9eQojIENP
TkZJR19TRU5TT1JTX0xNNzUgaXMgbm90IHNldApDT05GSUdfU0VOU09SU19MTTc3PXkKIyBD
T05GSUdfU0VOU09SU19MTTc4IGlzIG5vdCBzZXQKQ09ORklHX1NFTlNPUlNfTE04MD15CkNP
TkZJR19TRU5TT1JTX0xNODM9eQpDT05GSUdfU0VOU09SU19MTTg1PXkKIyBDT05GSUdfU0VO
U09SU19MTTg3IGlzIG5vdCBzZXQKQ09ORklHX1NFTlNPUlNfTE05MD15CkNPTkZJR19TRU5T
T1JTX0xNOTI9eQpDT05GSUdfU0VOU09SU19MTTkzPXkKQ09ORklHX1NFTlNPUlNfTE05NTIz
ND15CiMgQ09ORklHX1NFTlNPUlNfTE05NTI0MSBpcyBub3Qgc2V0CkNPTkZJR19TRU5TT1JT
X0xNOTUyNDU9eQojIENPTkZJR19TRU5TT1JTX1BDODczNjAgaXMgbm90IHNldAojIENPTkZJ
R19TRU5TT1JTX1BDODc0MjcgaXMgbm90IHNldApDT05GSUdfU0VOU09SU19OQ1Q2NjgzPXkK
Q09ORklHX1NFTlNPUlNfTkNUNjc3NV9DT1JFPXkKQ09ORklHX1NFTlNPUlNfTkNUNjc3NT15
CiMgQ09ORklHX1NFTlNPUlNfTkNUNjc3NV9JMkMgaXMgbm90IHNldApDT05GSUdfU0VOU09S
U19OQ1Q3ODAyPXkKQ09ORklHX1NFTlNPUlNfTlBDTTdYWD15CkNPTkZJR19TRU5TT1JTX05a
WFRfS1JBS0VOMj15CkNPTkZJR19TRU5TT1JTX05aWFRfS1JBS0VOMz15CiMgQ09ORklHX1NF
TlNPUlNfTlpYVF9TTUFSVDIgaXMgbm90IHNldApDT05GSUdfU0VOU09SU19PQ0NfUDhfSTJD
PXkKQ09ORklHX1NFTlNPUlNfT0NDPXkKQ09ORklHX1NFTlNPUlNfUENGODU5MT15CiMgQ09O
RklHX1NFTlNPUlNfUEVDSV9DUFVURU1QIGlzIG5vdCBzZXQKQ09ORklHX1NFTlNPUlNfUEVD
SV9ESU1NVEVNUD15CkNPTkZJR19TRU5TT1JTX1BFQ0k9eQpDT05GSUdfUE1CVVM9eQpDT05G
SUdfU0VOU09SU19QTUJVUz15CkNPTkZJR19TRU5TT1JTX0FDQkVMX0ZTRzAzMj15CiMgQ09O
RklHX1NFTlNPUlNfQURNMTI2NiBpcyBub3Qgc2V0CkNPTkZJR19TRU5TT1JTX0FETTEyNzU9
eQpDT05GSUdfU0VOU09SU19BRFAxMDUwPXkKQ09ORklHX1NFTlNPUlNfQkVMX1BGRT15CiMg
Q09ORklHX1NFTlNPUlNfQlBBX1JTNjAwIGlzIG5vdCBzZXQKQ09ORklHX1NFTlNPUlNfREVM
VEFfQUhFNTBEQ19GQU49eQojIENPTkZJR19TRU5TT1JTX0ZTUF8zWSBpcyBub3Qgc2V0CiMg
Q09ORklHX1NFTlNPUlNfSUJNX0NGRlBTIGlzIG5vdCBzZXQKQ09ORklHX1NFTlNPUlNfRFBT
OTIwQUI9eQojIENPTkZJR19TRU5TT1JTX0lOU1BVUl9JUFNQUyBpcyBub3Qgc2V0CkNPTkZJ
R19TRU5TT1JTX0lSMzUyMjE9eQojIENPTkZJR19TRU5TT1JTX0lSMzYwMjEgaXMgbm90IHNl
dAojIENPTkZJR19TRU5TT1JTX0lSMzgwNjQgaXMgbm90IHNldApDT05GSUdfU0VOU09SU19J
UlBTNTQwMT15CkNPTkZJR19TRU5TT1JTX0lTTDY4MTM3PXkKIyBDT05GSUdfU0VOU09SU19M
TTI1MDY2IGlzIG5vdCBzZXQKQ09ORklHX1NFTlNPUlNfTFQ3MTgyUz15CkNPTkZJR19TRU5T
T1JTX0xUQzI5Nzg9eQpDT05GSUdfU0VOU09SU19MVEMyOTc4X1JFR1VMQVRPUj15CiMgQ09O
RklHX1NFTlNPUlNfTFRDMzgxNSBpcyBub3Qgc2V0CiMgQ09ORklHX1NFTlNPUlNfTFRDNDI4
NiBpcyBub3Qgc2V0CkNPTkZJR19TRU5TT1JTX01BWDE1MzAxPXkKQ09ORklHX1NFTlNPUlNf
TUFYMTYwNjQ9eQojIENPTkZJR19TRU5TT1JTX01BWDE2NjAxIGlzIG5vdCBzZXQKQ09ORklH
X1NFTlNPUlNfTUFYMjA3MzA9eQpDT05GSUdfU0VOU09SU19NQVgyMDc1MT15CkNPTkZJR19T
RU5TT1JTX01BWDMxNzg1PXkKQ09ORklHX1NFTlNPUlNfTUFYMzQ0NDA9eQpDT05GSUdfU0VO
U09SU19NQVg4Njg4PXkKIyBDT05GSUdfU0VOU09SU19NUDI4NTYgaXMgbm90IHNldApDT05G
SUdfU0VOU09SU19NUDI4ODg9eQpDT05GSUdfU0VOU09SU19NUDI5NzU9eQojIENPTkZJR19T
RU5TT1JTX01QMjk3NV9SRUdVTEFUT1IgaXMgbm90IHNldApDT05GSUdfU0VOU09SU19NUDUw
MjM9eQpDT05GSUdfU0VOU09SU19NUDU5OTA9eQojIENPTkZJR19TRU5TT1JTX01QUTc5MzIg
aXMgbm90IHNldApDT05GSUdfU0VOU09SU19NUFE4Nzg1PXkKQ09ORklHX1NFTlNPUlNfUElN
NDMyOD15CkNPTkZJR19TRU5TT1JTX1BMSTEyMDlCQz15CkNPTkZJR19TRU5TT1JTX1BMSTEy
MDlCQ19SRUdVTEFUT1I9eQojIENPTkZJR19TRU5TT1JTX1BNNjc2NFRSIGlzIG5vdCBzZXQK
IyBDT05GSUdfU0VOU09SU19QWEUxNjEwIGlzIG5vdCBzZXQKIyBDT05GSUdfU0VOU09SU19R
NTRTSjEwOEEyIGlzIG5vdCBzZXQKQ09ORklHX1NFTlNPUlNfU1RQRERDNjA9eQpDT05GSUdf
U0VOU09SU19UREEzODY0MD15CkNPTkZJR19TRU5TT1JTX1REQTM4NjQwX1JFR1VMQVRPUj15
CiMgQ09ORklHX1NFTlNPUlNfVFBTNDA0MjIgaXMgbm90IHNldApDT05GSUdfU0VOU09SU19U
UFM1MzY3OT15CiMgQ09ORklHX1NFTlNPUlNfVFBTNTQ2RDI0IGlzIG5vdCBzZXQKQ09ORklH
X1NFTlNPUlNfVUNEOTAwMD15CiMgQ09ORklHX1NFTlNPUlNfVUNEOTIwMCBpcyBub3Qgc2V0
CiMgQ09ORklHX1NFTlNPUlNfWERQNzEwIGlzIG5vdCBzZXQKIyBDT05GSUdfU0VOU09SU19Y
RFBFMTUyIGlzIG5vdCBzZXQKQ09ORklHX1NFTlNPUlNfWERQRTEyMj15CiMgQ09ORklHX1NF
TlNPUlNfWERQRTEyMl9SRUdVTEFUT1IgaXMgbm90IHNldAojIENPTkZJR19TRU5TT1JTX1pM
NjEwMCBpcyBub3Qgc2V0CiMgQ09ORklHX1NFTlNPUlNfUFQ1MTYxTCBpcyBub3Qgc2V0CiMg
Q09ORklHX1NFTlNPUlNfUFdNX0ZBTiBpcyBub3Qgc2V0CkNPTkZJR19TRU5TT1JTX1NCVFNJ
PXkKIyBDT05GSUdfU0VOU09SU19TQlJNSSBpcyBub3Qgc2V0CkNPTkZJR19TRU5TT1JTX1NI
VDE1PXkKIyBDT05GSUdfU0VOU09SU19TSFQyMSBpcyBub3Qgc2V0CkNPTkZJR19TRU5TT1JT
X1NIVDN4PXkKQ09ORklHX1NFTlNPUlNfU0hUNHg9eQpDT05GSUdfU0VOU09SU19TSFRDMT15
CkNPTkZJR19TRU5TT1JTX0RNRTE3Mzc9eQpDT05GSUdfU0VOU09SU19FTUMxNDAzPXkKQ09O
RklHX1NFTlNPUlNfRU1DMjEwMz15CkNPTkZJR19TRU5TT1JTX0VNQzIzMDU9eQpDT05GSUdf
U0VOU09SU19FTUM2VzIwMT15CkNPTkZJR19TRU5TT1JTX1NNU0M0N00xPXkKIyBDT05GSUdf
U0VOU09SU19TTVNDNDdNMTkyIGlzIG5vdCBzZXQKIyBDT05GSUdfU0VOU09SU19TTVNDNDdC
Mzk3IGlzIG5vdCBzZXQKQ09ORklHX1NFTlNPUlNfU1RUUzc1MT15CkNPTkZJR19TRU5TT1JT
X0FEQzEyOEQ4MTg9eQojIENPTkZJR19TRU5TT1JTX0FEUzc4MjggaXMgbm90IHNldAojIENP
TkZJR19TRU5TT1JTX0FEUzc4NzEgaXMgbm90IHNldApDT05GSUdfU0VOU09SU19BTUM2ODIx
PXkKQ09ORklHX1NFTlNPUlNfSU5BMjA5PXkKQ09ORklHX1NFTlNPUlNfSU5BMlhYPXkKQ09O
RklHX1NFTlNPUlNfSU5BMjM4PXkKQ09ORklHX1NFTlNPUlNfSU5BMzIyMT15CkNPTkZJR19T
RU5TT1JTX1RDNzQ9eQpDT05GSUdfU0VOU09SU19USE1DNTA9eQpDT05GSUdfU0VOU09SU19U
TVAxMDI9eQpDT05GSUdfU0VOU09SU19UTVAxMDM9eQojIENPTkZJR19TRU5TT1JTX1RNUDEw
OCBpcyBub3Qgc2V0CkNPTkZJR19TRU5TT1JTX1RNUDQwMT15CkNPTkZJR19TRU5TT1JTX1RN
UDQyMT15CiMgQ09ORklHX1NFTlNPUlNfVE1QNDY0IGlzIG5vdCBzZXQKQ09ORklHX1NFTlNP
UlNfVE1QNTEzPXkKIyBDT05GSUdfU0VOU09SU19WSUFfQ1BVVEVNUCBpcyBub3Qgc2V0CiMg
Q09ORklHX1NFTlNPUlNfVlQxMjExIGlzIG5vdCBzZXQKQ09ORklHX1NFTlNPUlNfVzgzNzcz
Rz15CiMgQ09ORklHX1NFTlNPUlNfVzgzNzgxRCBpcyBub3Qgc2V0CiMgQ09ORklHX1NFTlNP
UlNfVzgzNzkxRCBpcyBub3Qgc2V0CkNPTkZJR19TRU5TT1JTX1c4Mzc5MkQ9eQojIENPTkZJ
R19TRU5TT1JTX1c4Mzc5MyBpcyBub3Qgc2V0CkNPTkZJR19TRU5TT1JTX1c4Mzc5NT15CkNP
TkZJR19TRU5TT1JTX1c4Mzc5NV9GQU5DVFJMPXkKIyBDT05GSUdfU0VOU09SU19XODNMNzg1
VFMgaXMgbm90IHNldAojIENPTkZJR19TRU5TT1JTX1c4M0w3ODZORyBpcyBub3Qgc2V0CkNP
TkZJR19TRU5TT1JTX1c4MzYyN0hGPXkKIyBDT05GSUdfU0VOU09SU19XODM2MjdFSEYgaXMg
bm90IHNldAojIENPTkZJR19TRU5TT1JTX1dNODMxWCBpcyBub3Qgc2V0CiMgQ09ORklHX1NF
TlNPUlNfSU5URUxfTTEwX0JNQ19IV01PTiBpcyBub3Qgc2V0CkNPTkZJR19USEVSTUFMPXkK
IyBDT05GSUdfVEhFUk1BTF9ORVRMSU5LIGlzIG5vdCBzZXQKQ09ORklHX1RIRVJNQUxfU1RB
VElTVElDUz15CkNPTkZJR19USEVSTUFMX0RFQlVHRlM9eQpDT05GSUdfVEhFUk1BTF9FTUVS
R0VOQ1lfUE9XRVJPRkZfREVMQVlfTVM9MAojIENPTkZJR19USEVSTUFMX0hXTU9OIGlzIG5v
dCBzZXQKIyBDT05GSUdfVEhFUk1BTF9PRiBpcyBub3Qgc2V0CkNPTkZJR19USEVSTUFMX0RF
RkFVTFRfR09WX1NURVBfV0lTRT15CiMgQ09ORklHX1RIRVJNQUxfREVGQVVMVF9HT1ZfRkFJ
Ul9TSEFSRSBpcyBub3Qgc2V0CiMgQ09ORklHX1RIRVJNQUxfREVGQVVMVF9HT1ZfVVNFUl9T
UEFDRSBpcyBub3Qgc2V0CiMgQ09ORklHX1RIRVJNQUxfR09WX0ZBSVJfU0hBUkUgaXMgbm90
IHNldApDT05GSUdfVEhFUk1BTF9HT1ZfU1RFUF9XSVNFPXkKIyBDT05GSUdfVEhFUk1BTF9H
T1ZfQkFOR19CQU5HIGlzIG5vdCBzZXQKQ09ORklHX1RIRVJNQUxfR09WX1VTRVJfU1BBQ0U9
eQpDT05GSUdfVEhFUk1BTF9FTVVMQVRJT049eQpDT05GSUdfVEhFUk1BTF9NTUlPPXkKQ09O
RklHX0RBOTA2Ml9USEVSTUFMPXkKCiMKIyBJbnRlbCB0aGVybWFsIGRyaXZlcnMKIwoKIwoj
IEFDUEkgSU5UMzQwWCB0aGVybWFsIGRyaXZlcnMKIwojIGVuZCBvZiBBQ1BJIElOVDM0MFgg
dGhlcm1hbCBkcml2ZXJzCgojIENPTkZJR19JTlRFTF9UQ0NfQ09PTElORyBpcyBub3Qgc2V0
CiMgZW5kIG9mIEludGVsIHRoZXJtYWwgZHJpdmVycwoKIyBDT05GSUdfV0FUQ0hET0cgaXMg
bm90IHNldApDT05GSUdfU1NCX1BPU1NJQkxFPXkKQ09ORklHX1NTQj15CkNPTkZJR19TU0Jf
UENNQ0lBSE9TVF9QT1NTSUJMRT15CiMgQ09ORklHX1NTQl9QQ01DSUFIT1NUIGlzIG5vdCBz
ZXQKQ09ORklHX1NTQl9TRElPSE9TVF9QT1NTSUJMRT15CiMgQ09ORklHX1NTQl9TRElPSE9T
VCBpcyBub3Qgc2V0CkNPTkZJR19TU0JfRFJJVkVSX0dQSU89eQpDT05GSUdfQkNNQV9QT1NT
SUJMRT15CkNPTkZJR19CQ01BPXkKIyBDT05GSUdfQkNNQV9IT1NUX1NPQyBpcyBub3Qgc2V0
CiMgQ09ORklHX0JDTUFfRFJJVkVSX0dNQUNfQ01OIGlzIG5vdCBzZXQKQ09ORklHX0JDTUFf
RFJJVkVSX0dQSU89eQojIENPTkZJR19CQ01BX0RFQlVHIGlzIG5vdCBzZXQKCiMKIyBNdWx0
aWZ1bmN0aW9uIGRldmljZSBkcml2ZXJzCiMKQ09ORklHX01GRF9DT1JFPXkKQ09ORklHX01G
RF9BQ1Q4OTQ1QT15CkNPTkZJR19NRkRfQVMzNzExPXkKIyBDT05GSUdfTUZEX1NNUFJPIGlz
IG5vdCBzZXQKQ09ORklHX01GRF9BUzM3MjI9eQojIENPTkZJR19QTUlDX0FEUDU1MjAgaXMg
bm90IHNldAojIENPTkZJR19NRkRfQUFUMjg3MF9DT1JFIGlzIG5vdCBzZXQKQ09ORklHX01G
RF9BVE1FTF9GTEVYQ09NPXkKIyBDT05GSUdfTUZEX0FUTUVMX0hMQ0RDIGlzIG5vdCBzZXQK
Q09ORklHX01GRF9CQ001OTBYWD15CiMgQ09ORklHX01GRF9CRDk1NzFNV1YgaXMgbm90IHNl
dAojIENPTkZJR19NRkRfQVhQMjBYX0kyQyBpcyBub3Qgc2V0CkNPTkZJR19NRkRfQ1JPU19F
Q19ERVY9eQojIENPTkZJR19NRkRfQ1M0Mkw0M19JMkMgaXMgbm90IHNldApDT05GSUdfTUZE
X01BREVSQT15CkNPTkZJR19NRkRfTUFERVJBX0kyQz15CkNPTkZJR19NRkRfTUFERVJBX1NQ
ST15CiMgQ09ORklHX01GRF9NQVg1OTcwIGlzIG5vdCBzZXQKQ09ORklHX01GRF9DUzQ3TDE1
PXkKQ09ORklHX01GRF9DUzQ3TDM1PXkKQ09ORklHX01GRF9DUzQ3TDg1PXkKIyBDT05GSUdf
TUZEX0NTNDdMOTAgaXMgbm90IHNldApDT05GSUdfTUZEX0NTNDdMOTI9eQojIENPTkZJR19Q
TUlDX0RBOTAzWCBpcyBub3Qgc2V0CkNPTkZJR19QTUlDX0RBOTA1Mj15CiMgQ09ORklHX01G
RF9EQTkwNTJfU1BJIGlzIG5vdCBzZXQKQ09ORklHX01GRF9EQTkwNTJfSTJDPXkKIyBDT05G
SUdfTUZEX0RBOTA1NSBpcyBub3Qgc2V0CkNPTkZJR19NRkRfREE5MDYyPXkKQ09ORklHX01G
RF9EQTkwNjM9eQojIENPTkZJR19NRkRfREE5MTUwIGlzIG5vdCBzZXQKQ09ORklHX01GRF9E
TE4yPXkKIyBDT05GSUdfTUZEX0dBVEVXT1JLU19HU0MgaXMgbm90IHNldApDT05GSUdfTUZE
X01DMTNYWFg9eQojIENPTkZJR19NRkRfTUMxM1hYWF9TUEkgaXMgbm90IHNldApDT05GSUdf
TUZEX01DMTNYWFhfSTJDPXkKQ09ORklHX01GRF9NUDI2Mjk9eQpDT05GSUdfTUZEX0hJNjQy
MV9QTUlDPXkKQ09ORklHX01GRF9JUVM2Mlg9eQojIENPTkZJR19NRkRfS0VNUExEIGlzIG5v
dCBzZXQKQ09ORklHX01GRF84OFBNODAwPXkKQ09ORklHX01GRF84OFBNODA1PXkKQ09ORklH
X01GRF84OFBNODYwWD15CkNPTkZJR19NRkRfTUFYMTQ1Nzc9eQpDT05GSUdfTUZEX01BWDc3
NTQxPXkKIyBDT05GSUdfTUZEX01BWDc3NjIwIGlzIG5vdCBzZXQKQ09ORklHX01GRF9NQVg3
NzY1MD15CiMgQ09ORklHX01GRF9NQVg3NzY4NiBpcyBub3Qgc2V0CkNPTkZJR19NRkRfTUFY
Nzc2OTM9eQpDT05GSUdfTUZEX01BWDc3NzE0PXkKIyBDT05GSUdfTUZEX01BWDc3ODQzIGlz
IG5vdCBzZXQKQ09ORklHX01GRF9NQVg4OTA3PXkKQ09ORklHX01GRF9NQVg4OTI1PXkKIyBD
T05GSUdfTUZEX01BWDg5OTcgaXMgbm90IHNldApDT05GSUdfTUZEX01BWDg5OTg9eQojIENP
TkZJR19NRkRfTVQ2MzYwIGlzIG5vdCBzZXQKIyBDT05GSUdfTUZEX01UNjM3MCBpcyBub3Qg
c2V0CiMgQ09ORklHX01GRF9NVDYzOTcgaXMgbm90IHNldApDT05GSUdfTUZEX01FTkYyMUJN
Qz15CkNPTkZJR19NRkRfT0NFTE9UPXkKQ09ORklHX0VaWF9QQ0FQPXkKQ09ORklHX01GRF9D
UENBUD15CkNPTkZJR19NRkRfVklQRVJCT0FSRD15CkNPTkZJR19NRkRfTlRYRUM9eQpDT05G
SUdfTUZEX1JFVFU9eQpDT05GSUdfTUZEX1BDRjUwNjMzPXkKIyBDT05GSUdfUENGNTA2MzNf
QURDIGlzIG5vdCBzZXQKQ09ORklHX1BDRjUwNjMzX0dQSU89eQojIENPTkZJR19NRkRfU1k3
NjM2QSBpcyBub3Qgc2V0CkNPTkZJR19NRkRfUlQ0ODMxPXkKQ09ORklHX01GRF9SVDUwMzM9
eQpDT05GSUdfTUZEX1JUNTEyMD15CkNPTkZJR19NRkRfUkM1VDU4Mz15CkNPTkZJR19NRkRf
Uks4WFg9eQojIENPTkZJR19NRkRfUks4WFhfSTJDIGlzIG5vdCBzZXQKQ09ORklHX01GRF9S
SzhYWF9TUEk9eQpDT05GSUdfTUZEX1JONVQ2MTg9eQpDT05GSUdfTUZEX1NFQ19DT1JFPXkK
Q09ORklHX01GRF9TSTQ3NlhfQ09SRT15CkNPTkZJR19NRkRfU0lNUExFX01GRF9JMkM9eQoj
IENPTkZJR19NRkRfU001MDEgaXMgbm90IHNldAojIENPTkZJR19NRkRfU0tZODE0NTIgaXMg
bm90IHNldApDT05GSUdfTUZEX1NUTVBFPXkKCiMKIyBTVE1pY3JvZWxlY3Ryb25pY3MgU1RN
UEUgSW50ZXJmYWNlIERyaXZlcnMKIwojIENPTkZJR19TVE1QRV9JMkMgaXMgbm90IHNldApD
T05GSUdfU1RNUEVfU1BJPXkKIyBlbmQgb2YgU1RNaWNyb2VsZWN0cm9uaWNzIFNUTVBFIElu
dGVyZmFjZSBEcml2ZXJzCgpDT05GSUdfTUZEX1NZU0NPTj15CiMgQ09ORklHX01GRF9MUDM5
NDMgaXMgbm90IHNldApDT05GSUdfTUZEX0xQODc4OD15CkNPTkZJR19NRkRfVElfTE1VPXkK
Q09ORklHX01GRF9QQUxNQVM9eQpDT05GSUdfVFBTNjEwNVg9eQpDT05GSUdfVFBTNjUwMTA9
eQpDT05GSUdfVFBTNjUwN1g9eQpDT05GSUdfTUZEX1RQUzY1MDg2PXkKIyBDT05GSUdfTUZE
X1RQUzY1MDkwIGlzIG5vdCBzZXQKQ09ORklHX01GRF9UUFM2NTIxNz15CiMgQ09ORklHX01G
RF9USV9MUDg3M1ggaXMgbm90IHNldApDT05GSUdfTUZEX1RJX0xQODc1NjU9eQpDT05GSUdf
TUZEX1RQUzY1MjE4PXkKQ09ORklHX01GRF9UUFM2NTIxOT15CiMgQ09ORklHX01GRF9UUFM2
NTg2WCBpcyBub3Qgc2V0CiMgQ09ORklHX01GRF9UUFM2NTkxMCBpcyBub3Qgc2V0CiMgQ09O
RklHX01GRF9UUFM2NTkxMl9JMkMgaXMgbm90IHNldAojIENPTkZJR19NRkRfVFBTNjU5MTJf
U1BJIGlzIG5vdCBzZXQKQ09ORklHX01GRF9UUFM2NTk0PXkKQ09ORklHX01GRF9UUFM2NTk0
X0kyQz15CiMgQ09ORklHX01GRF9UUFM2NTk0X1NQSSBpcyBub3Qgc2V0CiMgQ09ORklHX1RX
TDQwMzBfQ09SRSBpcyBub3Qgc2V0CiMgQ09ORklHX1RXTDYwNDBfQ09SRSBpcyBub3Qgc2V0
CkNPTkZJR19NRkRfV0wxMjczX0NPUkU9eQpDT05GSUdfTUZEX0xNMzUzMz15CiMgQ09ORklH
X01GRF9UQzM1ODlYIGlzIG5vdCBzZXQKQ09ORklHX01GRF9UUU1YODY9eQpDT05GSUdfTUZE
X0xPQ0hOQUdBUj15CkNPTkZJR19NRkRfQVJJWk9OQT15CkNPTkZJR19NRkRfQVJJWk9OQV9J
MkM9eQojIENPTkZJR19NRkRfQVJJWk9OQV9TUEkgaXMgbm90IHNldApDT05GSUdfTUZEX0NT
NDdMMjQ9eQojIENPTkZJR19NRkRfV001MTAyIGlzIG5vdCBzZXQKQ09ORklHX01GRF9XTTUx
MTA9eQojIENPTkZJR19NRkRfV004OTk3IGlzIG5vdCBzZXQKIyBDT05GSUdfTUZEX1dNODk5
OCBpcyBub3Qgc2V0CkNPTkZJR19NRkRfV004NDAwPXkKQ09ORklHX01GRF9XTTgzMVg9eQpD
T05GSUdfTUZEX1dNODMxWF9JMkM9eQojIENPTkZJR19NRkRfV004MzFYX1NQSSBpcyBub3Qg
c2V0CiMgQ09ORklHX01GRF9XTTgzNTBfSTJDIGlzIG5vdCBzZXQKQ09ORklHX01GRF9XTTg5
OTQ9eQpDT05GSUdfTUZEX1JPSE1fQkQ3MThYWD15CkNPTkZJR19NRkRfUk9ITV9CRDcxODI4
PXkKIyBDT05GSUdfTUZEX1JPSE1fQkQ5NTdYTVVGIGlzIG5vdCBzZXQKQ09ORklHX01GRF9T
VFBNSUMxPXkKIyBDT05GSUdfTUZEX1NUTUZYIGlzIG5vdCBzZXQKIyBDT05GSUdfTUZEX1dD
RDkzNFggaXMgbm90IHNldAojIENPTkZJR19NRkRfQVRDMjYwWF9JMkMgaXMgbm90IHNldAoj
IENPTkZJR19NRkRfUUNPTV9QTTgwMDggaXMgbm90IHNldApDT05GSUdfTUZEX0lOVEVMX00x
MF9CTUNfQ09SRT15CkNPTkZJR19NRkRfSU5URUxfTTEwX0JNQ19TUEk9eQpDT05GSUdfTUZE
X1JTTVVfSTJDPXkKQ09ORklHX01GRF9SU01VX1NQST15CiMgZW5kIG9mIE11bHRpZnVuY3Rp
b24gZGV2aWNlIGRyaXZlcnMKCkNPTkZJR19SRUdVTEFUT1I9eQojIENPTkZJR19SRUdVTEFU
T1JfREVCVUcgaXMgbm90IHNldApDT05GSUdfUkVHVUxBVE9SX0ZJWEVEX1ZPTFRBR0U9eQpD
T05GSUdfUkVHVUxBVE9SX1ZJUlRVQUxfQ09OU1VNRVI9eQojIENPTkZJR19SRUdVTEFUT1Jf
VVNFUlNQQUNFX0NPTlNVTUVSIGlzIG5vdCBzZXQKQ09ORklHX1JFR1VMQVRPUl9ORVRMSU5L
X0VWRU5UUz15CiMgQ09ORklHX1JFR1VMQVRPUl84OFBHODZYIGlzIG5vdCBzZXQKQ09ORklH
X1JFR1VMQVRPUl84OFBNODAwPXkKIyBDT05GSUdfUkVHVUxBVE9SXzg4UE04NjA3IGlzIG5v
dCBzZXQKQ09ORklHX1JFR1VMQVRPUl9BQ1Q4ODY1PXkKIyBDT05GSUdfUkVHVUxBVE9SX0FD
VDg5NDVBIGlzIG5vdCBzZXQKQ09ORklHX1JFR1VMQVRPUl9BRDUzOTg9eQojIENPTkZJR19S
RUdVTEFUT1JfQVMzNzExIGlzIG5vdCBzZXQKQ09ORklHX1JFR1VMQVRPUl9BUzM3MjI9eQoj
IENPTkZJR19SRUdVTEFUT1JfQVczNzUwMyBpcyBub3Qgc2V0CiMgQ09ORklHX1JFR1VMQVRP
Ul9CQ001OTBYWCBpcyBub3Qgc2V0CkNPTkZJR19SRUdVTEFUT1JfQkQ3MTgxNT15CkNPTkZJ
R19SRUdVTEFUT1JfQkQ3MTgyOD15CkNPTkZJR19SRUdVTEFUT1JfQkQ3MThYWD15CiMgQ09O
RklHX1JFR1VMQVRPUl9DUENBUCBpcyBub3Qgc2V0CiMgQ09ORklHX1JFR1VMQVRPUl9DUk9T
X0VDIGlzIG5vdCBzZXQKQ09ORklHX1JFR1VMQVRPUl9EQTkwNTI9eQojIENPTkZJR19SRUdV
TEFUT1JfREE5MDYyIGlzIG5vdCBzZXQKQ09ORklHX1JFR1VMQVRPUl9EQTkwNjM9eQpDT05G
SUdfUkVHVUxBVE9SX0RBOTEyMT15CkNPTkZJR19SRUdVTEFUT1JfREE5MjEwPXkKQ09ORklH
X1JFR1VMQVRPUl9EQTkyMTE9eQpDT05GSUdfUkVHVUxBVE9SX0ZBTjUzNTU1PXkKQ09ORklH
X1JFR1VMQVRPUl9GQU41Mzg4MD15CkNPTkZJR19SRUdVTEFUT1JfR1BJTz15CkNPTkZJR19S
RUdVTEFUT1JfSEk2NDIxPXkKIyBDT05GSUdfUkVHVUxBVE9SX0hJNjQyMVY1MzAgaXMgbm90
IHNldAojIENPTkZJR19SRUdVTEFUT1JfSVNMOTMwNSBpcyBub3Qgc2V0CkNPTkZJR19SRUdV
TEFUT1JfSVNMNjI3MUE9eQojIENPTkZJR19SRUdVTEFUT1JfTE0zNjNYIGlzIG5vdCBzZXQK
Q09ORklHX1JFR1VMQVRPUl9MT0NITkFHQVI9eQpDT05GSUdfUkVHVUxBVE9SX0xQMzk3MT15
CkNPTkZJR19SRUdVTEFUT1JfTFAzOTcyPXkKQ09ORklHX1JFR1VMQVRPUl9MUDg3Mlg9eQpD
T05GSUdfUkVHVUxBVE9SX0xQODc1NT15CkNPTkZJR19SRUdVTEFUT1JfTFA4NzU2NT15CkNP
TkZJR19SRUdVTEFUT1JfTFA4Nzg4PXkKQ09ORklHX1JFR1VMQVRPUl9MVEMzNTg5PXkKQ09O
RklHX1JFR1VMQVRPUl9MVEMzNjc2PXkKQ09ORklHX1JFR1VMQVRPUl9NQVgxNDU3Nz15CiMg
Q09ORklHX1JFR1VMQVRPUl9NQVgxNTg2IGlzIG5vdCBzZXQKIyBDT05GSUdfUkVHVUxBVE9S
X01BWDc3NTAzIGlzIG5vdCBzZXQKIyBDT05GSUdfUkVHVUxBVE9SX01BWDc3NTQxIGlzIG5v
dCBzZXQKIyBDT05GSUdfUkVHVUxBVE9SX01BWDc3NjUwIGlzIG5vdCBzZXQKQ09ORklHX1JF
R1VMQVRPUl9NQVg3Nzg1Nz15CkNPTkZJR19SRUdVTEFUT1JfTUFYODY0OT15CiMgQ09ORklH
X1JFR1VMQVRPUl9NQVg4NjYwIGlzIG5vdCBzZXQKQ09ORklHX1JFR1VMQVRPUl9NQVg4ODkz
PXkKQ09ORklHX1JFR1VMQVRPUl9NQVg4OTA3PXkKQ09ORklHX1JFR1VMQVRPUl9NQVg4OTI1
PXkKQ09ORklHX1JFR1VMQVRPUl9NQVg4OTUyPXkKQ09ORklHX1JFR1VMQVRPUl9NQVg4OTk4
PXkKQ09ORklHX1JFR1VMQVRPUl9NQVgyMDA4Nj15CiMgQ09ORklHX1JFR1VMQVRPUl9NQVgy
MDQxMSBpcyBub3Qgc2V0CkNPTkZJR19SRUdVTEFUT1JfTUFYNzc2OTM9eQojIENPTkZJR19S
RUdVTEFUT1JfTUFYNzc4MjYgaXMgbm90IHNldApDT05GSUdfUkVHVUxBVE9SX01DMTNYWFhf
Q09SRT15CiMgQ09ORklHX1JFR1VMQVRPUl9NQzEzNzgzIGlzIG5vdCBzZXQKQ09ORklHX1JF
R1VMQVRPUl9NQzEzODkyPXkKQ09ORklHX1JFR1VMQVRPUl9NQ1AxNjUwMj15CiMgQ09ORklH
X1JFR1VMQVRPUl9NUDU0MTYgaXMgbm90IHNldApDT05GSUdfUkVHVUxBVE9SX01QODg1OT15
CkNPTkZJR19SRUdVTEFUT1JfTVA4ODZYPXkKQ09ORklHX1JFR1VMQVRPUl9NUFE3OTIwPXkK
Q09ORklHX1JFR1VMQVRPUl9NVDYzMTE9eQpDT05GSUdfUkVHVUxBVE9SX1BBTE1BUz15CkNP
TkZJR19SRUdVTEFUT1JfUENBOTQ1MD15CkNPTkZJR19SRUdVTEFUT1JfUENBUD15CkNPTkZJ
R19SRUdVTEFUT1JfUENGNTA2MzM9eQpDT05GSUdfUkVHVUxBVE9SX1BGOFgwMD15CiMgQ09O
RklHX1JFR1VMQVRPUl9QRlVaRTEwMCBpcyBub3Qgc2V0CkNPTkZJR19SRUdVTEFUT1JfUFY4
ODA2MD15CiMgQ09ORklHX1JFR1VMQVRPUl9QVjg4MDgwIGlzIG5vdCBzZXQKIyBDT05GSUdf
UkVHVUxBVE9SX1BWODgwOTAgaXMgbm90IHNldAojIENPTkZJR19SRUdVTEFUT1JfUFdNIGlz
IG5vdCBzZXQKIyBDT05GSUdfUkVHVUxBVE9SX1JBQTIxNTMwMCBpcyBub3Qgc2V0CiMgQ09O
RklHX1JFR1VMQVRPUl9SQVNQQkVSUllQSV9UT1VDSFNDUkVFTl9BVFRJTlkgaXMgbm90IHNl
dApDT05GSUdfUkVHVUxBVE9SX1JDNVQ1ODM9eQpDT05GSUdfUkVHVUxBVE9SX1JLODA4PXkK
Q09ORklHX1JFR1VMQVRPUl9STjVUNjE4PXkKQ09ORklHX1JFR1VMQVRPUl9ST0hNPXkKQ09O
RklHX1JFR1VMQVRPUl9SVDQ4MDE9eQpDT05GSUdfUkVHVUxBVE9SX1JUNDgwMz15CkNPTkZJ
R19SRUdVTEFUT1JfUlQ0ODMxPXkKQ09ORklHX1JFR1VMQVRPUl9SVDUwMzM9eQpDT05GSUdf
UkVHVUxBVE9SX1JUNTEyMD15CiMgQ09ORklHX1JFR1VMQVRPUl9SVDUxOTBBIGlzIG5vdCBz
ZXQKQ09ORklHX1JFR1VMQVRPUl9SVDU3Mzk9eQpDT05GSUdfUkVHVUxBVE9SX1JUNTc1OT15
CkNPTkZJR19SRUdVTEFUT1JfUlQ2MTYwPXkKQ09ORklHX1JFR1VMQVRPUl9SVDYxOTA9eQpD
T05GSUdfUkVHVUxBVE9SX1JUNjI0NT15CkNPTkZJR19SRUdVTEFUT1JfUlRRMjEzND15CkNP
TkZJR19SRUdVTEFUT1JfUlRNVjIwPXkKQ09ORklHX1JFR1VMQVRPUl9SVFE2NzUyPXkKIyBD
T05GSUdfUkVHVUxBVE9SX1JUUTIyMDggaXMgbm90IHNldApDT05GSUdfUkVHVUxBVE9SX1My
TVBBMDE9eQpDT05GSUdfUkVHVUxBVE9SX1MyTVBTMTE9eQpDT05GSUdfUkVHVUxBVE9SX1M1
TTg3Njc9eQpDT05GSUdfUkVHVUxBVE9SX1NMRzUxMDAwPXkKQ09ORklHX1JFR1VMQVRPUl9T
VFBNSUMxPXkKQ09ORklHX1JFR1VMQVRPUl9TWTgxMDZBPXkKIyBDT05GSUdfUkVHVUxBVE9S
X1NZODgyNFggaXMgbm90IHNldAojIENPTkZJR19SRUdVTEFUT1JfU1k4ODI3TiBpcyBub3Qg
c2V0CkNPTkZJR19SRUdVTEFUT1JfVFBTNTE2MzI9eQojIENPTkZJR19SRUdVTEFUT1JfVFBT
NjEwNVggaXMgbm90IHNldApDT05GSUdfUkVHVUxBVE9SX1RQUzYyMzYwPXkKIyBDT05GSUdf
UkVHVUxBVE9SX1RQUzYyODZYIGlzIG5vdCBzZXQKQ09ORklHX1JFR1VMQVRPUl9UUFM2Mjg3
WD15CkNPTkZJR19SRUdVTEFUT1JfVFBTNjUwMjM9eQpDT05GSUdfUkVHVUxBVE9SX1RQUzY1
MDdYPXkKQ09ORklHX1JFR1VMQVRPUl9UUFM2NTA4Nj15CkNPTkZJR19SRUdVTEFUT1JfVFBT
NjUxMzI9eQpDT05GSUdfUkVHVUxBVE9SX1RQUzY1MjE3PXkKQ09ORklHX1JFR1VMQVRPUl9U
UFM2NTIxOD15CkNPTkZJR19SRUdVTEFUT1JfVFBTNjUyMTk9eQojIENPTkZJR19SRUdVTEFU
T1JfVFBTNjU5NCBpcyBub3Qgc2V0CiMgQ09ORklHX1JFR1VMQVRPUl9UUFM2NTI0WCBpcyBu
b3Qgc2V0CkNPTkZJR19SRUdVTEFUT1JfVkNUUkw9eQojIENPTkZJR19SRUdVTEFUT1JfV004
MzFYIGlzIG5vdCBzZXQKQ09ORklHX1JFR1VMQVRPUl9XTTg0MDA9eQpDT05GSUdfUkVHVUxB
VE9SX1dNODk5ND15CkNPTkZJR19SQ19DT1JFPXkKQ09ORklHX0JQRl9MSVJDX01PREUyPXkK
Q09ORklHX0xJUkM9eQpDT05GSUdfUkNfTUFQPXkKQ09ORklHX1JDX0RFQ09ERVJTPXkKIyBD
T05GSUdfSVJfSU1PTl9ERUNPREVSIGlzIG5vdCBzZXQKQ09ORklHX0lSX0pWQ19ERUNPREVS
PXkKQ09ORklHX0lSX01DRV9LQkRfREVDT0RFUj15CiMgQ09ORklHX0lSX05FQ19ERUNPREVS
IGlzIG5vdCBzZXQKQ09ORklHX0lSX1JDNV9ERUNPREVSPXkKIyBDT05GSUdfSVJfUkM2X0RF
Q09ERVIgaXMgbm90IHNldAojIENPTkZJR19JUl9SQ01NX0RFQ09ERVIgaXMgbm90IHNldAoj
IENPTkZJR19JUl9TQU5ZT19ERUNPREVSIGlzIG5vdCBzZXQKQ09ORklHX0lSX1NIQVJQX0RF
Q09ERVI9eQpDT05GSUdfSVJfU09OWV9ERUNPREVSPXkKIyBDT05GSUdfSVJfWE1QX0RFQ09E
RVIgaXMgbm90IHNldAojIENPTkZJR19SQ19ERVZJQ0VTIGlzIG5vdCBzZXQKQ09ORklHX0NF
Q19DT1JFPXkKQ09ORklHX0NFQ19OT1RJRklFUj15CkNPTkZJR19DRUNfUElOPXkKCiMKIyBD
RUMgc3VwcG9ydAojCkNPTkZJR19NRURJQV9DRUNfUkM9eQpDT05GSUdfQ0VDX1BJTl9FUlJP
Ul9JTko9eQpDT05GSUdfTUVESUFfQ0VDX1NVUFBPUlQ9eQojIENPTkZJR19DRUNfQ0g3MzIy
IGlzIG5vdCBzZXQKIyBDT05GSUdfQ0VDX0NST1NfRUMgaXMgbm90IHNldApDT05GSUdfQ0VD
X0dQSU89eQojIENPTkZJR19VU0JfUFVMU0U4X0NFQyBpcyBub3Qgc2V0CiMgQ09ORklHX1VT
Ql9SQUlOU0hBRE9XX0NFQyBpcyBub3Qgc2V0CiMgZW5kIG9mIENFQyBzdXBwb3J0CgpDT05G
SUdfTUVESUFfU1VQUE9SVD15CkNPTkZJR19NRURJQV9TVVBQT1JUX0ZJTFRFUj15CiMgQ09O
RklHX01FRElBX1NVQkRSVl9BVVRPU0VMRUNUIGlzIG5vdCBzZXQKCiMKIyBNZWRpYSBkZXZp
Y2UgdHlwZXMKIwojIENPTkZJR19NRURJQV9DQU1FUkFfU1VQUE9SVCBpcyBub3Qgc2V0CiMg
Q09ORklHX01FRElBX0FOQUxPR19UVl9TVVBQT1JUIGlzIG5vdCBzZXQKQ09ORklHX01FRElB
X0RJR0lUQUxfVFZfU1VQUE9SVD15CkNPTkZJR19NRURJQV9SQURJT19TVVBQT1JUPXkKIyBD
T05GSUdfTUVESUFfU0RSX1NVUFBPUlQgaXMgbm90IHNldApDT05GSUdfTUVESUFfUExBVEZP
Uk1fU1VQUE9SVD15CiMgQ09ORklHX01FRElBX1RFU1RfU1VQUE9SVCBpcyBub3Qgc2V0CiMg
ZW5kIG9mIE1lZGlhIGRldmljZSB0eXBlcwoKQ09ORklHX1ZJREVPX0RFVj15CkNPTkZJR19N
RURJQV9DT05UUk9MTEVSPXkKQ09ORklHX0RWQl9DT1JFPXkKCiMKIyBWaWRlbzRMaW51eCBv
cHRpb25zCiMKQ09ORklHX1ZJREVPX1Y0TDJfSTJDPXkKQ09ORklHX1ZJREVPX1Y0TDJfU1VC
REVWX0FQST15CkNPTkZJR19WSURFT19BRFZfREVCVUc9eQojIENPTkZJR19WSURFT19GSVhF
RF9NSU5PUl9SQU5HRVMgaXMgbm90IHNldApDT05GSUdfVklERU9fVFVORVI9eQpDT05GSUdf
VjRMMl9GTEFTSF9MRURfQ0xBU1M9eQpDT05GSUdfVjRMMl9GV05PREU9eQpDT05GSUdfVjRM
Ml9BU1lOQz15CiMgZW5kIG9mIFZpZGVvNExpbnV4IG9wdGlvbnMKCiMKIyBNZWRpYSBjb250
cm9sbGVyIG9wdGlvbnMKIwpDT05GSUdfTUVESUFfQ09OVFJPTExFUl9EVkI9eQojIGVuZCBv
ZiBNZWRpYSBjb250cm9sbGVyIG9wdGlvbnMKCiMKIyBEaWdpdGFsIFRWIG9wdGlvbnMKIwpD
T05GSUdfRFZCX01NQVA9eQpDT05GSUdfRFZCX01BWF9BREFQVEVSUz0xNgojIENPTkZJR19E
VkJfRFlOQU1JQ19NSU5PUlMgaXMgbm90IHNldAojIENPTkZJR19EVkJfREVNVVhfU0VDVElP
Tl9MT1NTX0xPRyBpcyBub3Qgc2V0CkNPTkZJR19EVkJfVUxFX0RFQlVHPXkKIyBlbmQgb2Yg
RGlnaXRhbCBUViBvcHRpb25zCgojCiMgTWVkaWEgZHJpdmVycwojCgojCiMgRHJpdmVycyBm
aWx0ZXJlZCBhcyBzZWxlY3RlZCBhdCAnRmlsdGVyIG1lZGlhIGRyaXZlcnMnCiMKCiMKIyBN
ZWRpYSBkcml2ZXJzCiMKQ09ORklHX01FRElBX1VTQl9TVVBQT1JUPXkKCiMKIyBBbmFsb2cv
ZGlnaXRhbCBUViBVU0IgZGV2aWNlcwojCkNPTkZJR19WSURFT19BVTA4Mjg9eQojIENPTkZJ
R19WSURFT19BVTA4MjhfVjRMMiBpcyBub3Qgc2V0CiMgQ09ORklHX1ZJREVPX0FVMDgyOF9S
QyBpcyBub3Qgc2V0CkNPTkZJR19WSURFT19DWDIzMVhYPXkKIyBDT05GSUdfVklERU9fQ1gy
MzFYWF9SQyBpcyBub3Qgc2V0CkNPTkZJR19WSURFT19DWDIzMVhYX0RWQj15CgojCiMgRGln
aXRhbCBUViBVU0IgZGV2aWNlcwojCiMgQ09ORklHX0RWQl9BUzEwMiBpcyBub3Qgc2V0CiMg
Q09ORklHX0RWQl9CMkMyX0ZMRVhDT1BfVVNCIGlzIG5vdCBzZXQKQ09ORklHX0RWQl9VU0Jf
VjI9eQojIENPTkZJR19EVkJfVVNCX0FGOTAxNSBpcyBub3Qgc2V0CkNPTkZJR19EVkJfVVNC
X0FGOTAzNT15CkNPTkZJR19EVkJfVVNCX0FOWVNFRT15CkNPTkZJR19EVkJfVVNCX0FVNjYx
MD15CkNPTkZJR19EVkJfVVNCX0FaNjAwNz15CkNPTkZJR19EVkJfVVNCX0NFNjIzMD15CkNP
TkZJR19EVkJfVVNCX0RWQlNLWT15CkNPTkZJR19EVkJfVVNCX0VDMTY4PXkKIyBDT05GSUdf
RFZCX1VTQl9HTDg2MSBpcyBub3Qgc2V0CkNPTkZJR19EVkJfVVNCX0xNRTI1MTA9eQojIENP
TkZJR19EVkJfVVNCX01YTDExMVNGIGlzIG5vdCBzZXQKQ09ORklHX0RWQl9VU0JfUlRMMjhY
WFU9eQojIENPTkZJR19EVkJfVVNCX1pEMTMwMSBpcyBub3Qgc2V0CkNPTkZJR19EVkJfVVNC
PXkKIyBDT05GSUdfRFZCX1VTQl9ERUJVRyBpcyBub3Qgc2V0CkNPTkZJR19EVkJfVVNCX0E4
MDA9eQpDT05GSUdfRFZCX1VTQl9BRjkwMDU9eQpDT05GSUdfRFZCX1VTQl9BRjkwMDVfUkVN
T1RFPXkKQ09ORklHX0RWQl9VU0JfQVo2MDI3PXkKIyBDT05GSUdfRFZCX1VTQl9DSU5FUkdZ
X1QyIGlzIG5vdCBzZXQKIyBDT05GSUdfRFZCX1VTQl9DWFVTQiBpcyBub3Qgc2V0CkNPTkZJ
R19EVkJfVVNCX0RJQjA3MDA9eQpDT05GSUdfRFZCX1VTQl9ESUIzMDAwTUM9eQojIENPTkZJ
R19EVkJfVVNCX0RJQlVTQl9NQiBpcyBub3Qgc2V0CkNPTkZJR19EVkJfVVNCX0RJQlVTQl9N
Qz15CkNPTkZJR19EVkJfVVNCX0RJR0lUVj15CiMgQ09ORklHX0RWQl9VU0JfRFRUMjAwVSBp
cyBub3Qgc2V0CkNPTkZJR19EVkJfVVNCX0RUVjUxMDA9eQpDT05GSUdfRFZCX1VTQl9EVzIx
MDI9eQpDT05GSUdfRFZCX1VTQl9HUDhQU0s9eQpDT05GSUdfRFZCX1VTQl9NOTIwWD15CiMg
Q09ORklHX0RWQl9VU0JfTk9WQV9UX1VTQjIgaXMgbm90IHNldAojIENPTkZJR19EVkJfVVNC
X09QRVJBMSBpcyBub3Qgc2V0CiMgQ09ORklHX0RWQl9VU0JfUENUVjQ1MkUgaXMgbm90IHNl
dApDT05GSUdfRFZCX1VTQl9URUNITklTQVRfVVNCMj15CkNPTkZJR19EVkJfVVNCX1RUVVNC
Mj15CkNPTkZJR19EVkJfVVNCX1VNVF8wMTA9eQpDT05GSUdfRFZCX1VTQl9WUDcwMlg9eQpD
T05GSUdfRFZCX1VTQl9WUDcwNDU9eQpDT05GSUdfU01TX1VTQl9EUlY9eQoKIwojIFdlYmNh
bSwgVFYgKGFuYWxvZy9kaWdpdGFsKSBVU0IgZGV2aWNlcwojCiMgQ09ORklHX1ZJREVPX0VN
MjhYWCBpcyBub3Qgc2V0CiMgQ09ORklHX1JBRElPX0FEQVBURVJTIGlzIG5vdCBzZXQKIyBD
T05GSUdfTUVESUFfUExBVEZPUk1fRFJJVkVSUyBpcyBub3Qgc2V0CgojCiMgTU1DL1NESU8g
RFZCIGFkYXB0ZXJzCiMKQ09ORklHX1NNU19TRElPX0RSVj15CkNPTkZJR19NRURJQV9DT01N
T05fT1BUSU9OUz15CgojCiMgY29tbW9uIGRyaXZlciBvcHRpb25zCiMKQ09ORklHX0NZUFJF
U1NfRklSTVdBUkU9eQpDT05GSUdfVklERU9fQ1gyMzQxWD15CkNPTkZJR19WSURFT19UVkVF
UFJPTT15CkNPTkZJR19TTVNfU0lBTk9fTURUVj15CkNPTkZJR19TTVNfU0lBTk9fUkM9eQpD
T05GSUdfU01TX1NJQU5PX0RFQlVHRlM9eQpDT05GSUdfVklERU9CVUYyX0NPUkU9eQpDT05G
SUdfVklERU9CVUYyX1Y0TDI9eQpDT05GSUdfVklERU9CVUYyX01FTU9QUz15CkNPTkZJR19W
SURFT0JVRjJfVk1BTExPQz15CiMgZW5kIG9mIE1lZGlhIGRyaXZlcnMKCiMKIyBNZWRpYSBh
bmNpbGxhcnkgZHJpdmVycwojCkNPTkZJR19WSURFT19JUl9JMkM9eQoKIwojIEF1ZGlvIGRl
Y29kZXJzLCBwcm9jZXNzb3JzIGFuZCBtaXhlcnMKIwpDT05GSUdfVklERU9fQ1MzMzA4PXkK
Q09ORklHX1ZJREVPX0NTNTM0NT15CiMgQ09ORklHX1ZJREVPX0NTNTNMMzJBIGlzIG5vdCBz
ZXQKQ09ORklHX1ZJREVPX01TUDM0MDA9eQpDT05GSUdfVklERU9fU09OWV9CVEZfTVBYPXkK
Q09ORklHX1ZJREVPX1REQTc0MzI9eQpDT05GSUdfVklERU9fVERBOTg0MD15CiMgQ09ORklH
X1ZJREVPX1RFQTY0MTVDIGlzIG5vdCBzZXQKQ09ORklHX1ZJREVPX1RFQTY0MjA9eQojIENP
TkZJR19WSURFT19UTFYzMjBBSUMyM0IgaXMgbm90IHNldApDT05GSUdfVklERU9fVFZBVURJ
Tz15CkNPTkZJR19WSURFT19VREExMzQyPXkKQ09ORklHX1ZJREVPX1ZQMjdTTVBYPXkKQ09O
RklHX1ZJREVPX1dNODczOT15CkNPTkZJR19WSURFT19XTTg3NzU9eQojIGVuZCBvZiBBdWRp
byBkZWNvZGVycywgcHJvY2Vzc29ycyBhbmQgbWl4ZXJzCgojCiMgUkRTIGRlY29kZXJzCiMK
IyBDT05GSUdfVklERU9fU0FBNjU4OCBpcyBub3Qgc2V0CiMgZW5kIG9mIFJEUyBkZWNvZGVy
cwoKIwojIFZpZGVvIGRlY29kZXJzCiMKQ09ORklHX1ZJREVPX0FEVjcxODA9eQpDT05GSUdf
VklERU9fQURWNzE4Mz15CkNPTkZJR19WSURFT19BRFY3NDhYPXkKIyBDT05GSUdfVklERU9f
QURWNzYwNCBpcyBub3Qgc2V0CkNPTkZJR19WSURFT19BRFY3ODQyPXkKIyBDT05GSUdfVklE
RU9fQURWNzg0Ml9DRUMgaXMgbm90IHNldApDT05GSUdfVklERU9fQlQ4MTk9eQojIENPTkZJ
R19WSURFT19CVDg1NiBpcyBub3Qgc2V0CkNPTkZJR19WSURFT19CVDg2Nj15CiMgQ09ORklH
X1ZJREVPX0lTTDc5OThYIGlzIG5vdCBzZXQKQ09ORklHX1ZJREVPX0tTMDEyNz15CiMgQ09O
RklHX1ZJREVPX01BWDkyODYgaXMgbm90IHNldApDT05GSUdfVklERU9fTUw4NlY3NjY3PXkK
IyBDT05GSUdfVklERU9fU0FBNzExMCBpcyBub3Qgc2V0CiMgQ09ORklHX1ZJREVPX1NBQTcx
MVggaXMgbm90IHNldAojIENPTkZJR19WSURFT19UQzM1ODc0MyBpcyBub3Qgc2V0CkNPTkZJ
R19WSURFT19UQzM1ODc0Nj15CkNPTkZJR19WSURFT19UVlA1MTRYPXkKQ09ORklHX1ZJREVP
X1RWUDUxNTA9eQojIENPTkZJR19WSURFT19UVlA3MDAyIGlzIG5vdCBzZXQKIyBDT05GSUdf
VklERU9fVFcyODA0IGlzIG5vdCBzZXQKIyBDT05GSUdfVklERU9fVFc5OTAwIGlzIG5vdCBz
ZXQKIyBDT05GSUdfVklERU9fVFc5OTAzIGlzIG5vdCBzZXQKQ09ORklHX1ZJREVPX1RXOTkw
Nj15CkNPTkZJR19WSURFT19UVzk5MTA9eQojIENPTkZJR19WSURFT19WUFgzMjIwIGlzIG5v
dCBzZXQKCiMKIyBWaWRlbyBhbmQgYXVkaW8gZGVjb2RlcnMKIwojIENPTkZJR19WSURFT19T
QUE3MTdYIGlzIG5vdCBzZXQKQ09ORklHX1ZJREVPX0NYMjU4NDA9eQojIGVuZCBvZiBWaWRl
byBkZWNvZGVycwoKIwojIFZpZGVvIGVuY29kZXJzCiMKQ09ORklHX1ZJREVPX0FEVjcxNzA9
eQpDT05GSUdfVklERU9fQURWNzE3NT15CiMgQ09ORklHX1ZJREVPX0FEVjczNDMgaXMgbm90
IHNldApDT05GSUdfVklERU9fQURWNzM5Mz15CiMgQ09ORklHX1ZJREVPX0FLODgxWCBpcyBu
b3Qgc2V0CiMgQ09ORklHX1ZJREVPX1NBQTcxMjcgaXMgbm90IHNldApDT05GSUdfVklERU9f
U0FBNzE4NT15CkNPTkZJR19WSURFT19USFM4MjAwPXkKIyBlbmQgb2YgVmlkZW8gZW5jb2Rl
cnMKCiMKIyBWaWRlbyBpbXByb3ZlbWVudCBjaGlwcwojCkNPTkZJR19WSURFT19VUEQ2NDAz
MUE9eQpDT05GSUdfVklERU9fVVBENjQwODM9eQojIGVuZCBvZiBWaWRlbyBpbXByb3ZlbWVu
dCBjaGlwcwoKIwojIEF1ZGlvL1ZpZGVvIGNvbXByZXNzaW9uIGNoaXBzCiMKQ09ORklHX1ZJ
REVPX1NBQTY3NTJIUz15CiMgZW5kIG9mIEF1ZGlvL1ZpZGVvIGNvbXByZXNzaW9uIGNoaXBz
CgojCiMgU0RSIHR1bmVyIGNoaXBzCiMKIyBlbmQgb2YgU0RSIHR1bmVyIGNoaXBzCgojCiMg
TWlzY2VsbGFuZW91cyBoZWxwZXIgY2hpcHMKIwpDT05GSUdfVklERU9fSTJDPXkKIyBDT05G
SUdfVklERU9fTTUyNzkwIGlzIG5vdCBzZXQKIyBDT05GSUdfVklERU9fU1RfTUlQSUQwMiBp
cyBub3Qgc2V0CkNPTkZJR19WSURFT19USFM3MzAzPXkKIyBlbmQgb2YgTWlzY2VsbGFuZW91
cyBoZWxwZXIgY2hpcHMKCiMKIyBWaWRlbyBzZXJpYWxpemVycyBhbmQgZGVzZXJpYWxpemVy
cwojCkNPTkZJR19WSURFT19EUzkwVUI5MTM9eQpDT05GSUdfVklERU9fRFM5MFVCOTUzPXkK
Q09ORklHX1ZJREVPX0RTOTBVQjk2MD15CiMgZW5kIG9mIFZpZGVvIHNlcmlhbGl6ZXJzIGFu
ZCBkZXNlcmlhbGl6ZXJzCgojCiMgTWVkaWEgU1BJIEFkYXB0ZXJzCiMKQ09ORklHX0NYRDI4
ODBfU1BJX0RSVj15CkNPTkZJR19WSURFT19HUzE2NjI9eQojIGVuZCBvZiBNZWRpYSBTUEkg
QWRhcHRlcnMKCkNPTkZJR19NRURJQV9UVU5FUj15CgojCiMgQ3VzdG9taXplIFRWIHR1bmVy
cwojCkNPTkZJR19NRURJQV9UVU5FUl9FNDAwMD15CkNPTkZJR19NRURJQV9UVU5FUl9GQzAw
MTE9eQpDT05GSUdfTUVESUFfVFVORVJfRkMwMDEyPXkKQ09ORklHX01FRElBX1RVTkVSX0ZD
MDAxMz15CkNPTkZJR19NRURJQV9UVU5FUl9GQzI1ODA9eQojIENPTkZJR19NRURJQV9UVU5F
Ul9JVDkxM1ggaXMgbm90IHNldApDT05GSUdfTUVESUFfVFVORVJfTTg4UlM2MDAwVD15CiMg
Q09ORklHX01FRElBX1RVTkVSX01BWDIxNjUgaXMgbm90IHNldApDT05GSUdfTUVESUFfVFVO
RVJfTUM0NFM4MDM9eQpDT05GSUdfTUVESUFfVFVORVJfTVNJMDAxPXkKQ09ORklHX01FRElB
X1RVTkVSX01UMjA2MD15CiMgQ09ORklHX01FRElBX1RVTkVSX01UMjA2MyBpcyBub3Qgc2V0
CiMgQ09ORklHX01FRElBX1RVTkVSX01UMjBYWCBpcyBub3Qgc2V0CkNPTkZJR19NRURJQV9U
VU5FUl9NVDIxMzE9eQpDT05GSUdfTUVESUFfVFVORVJfTVQyMjY2PXkKQ09ORklHX01FRElB
X1RVTkVSX01YTDMwMVJGPXkKIyBDT05GSUdfTUVESUFfVFVORVJfTVhMNTAwNVMgaXMgbm90
IHNldApDT05GSUdfTUVESUFfVFVORVJfTVhMNTAwN1Q9eQojIENPTkZJR19NRURJQV9UVU5F
Ul9RTTFEMUIwMDA0IGlzIG5vdCBzZXQKIyBDT05GSUdfTUVESUFfVFVORVJfUU0xRDFDMDA0
MiBpcyBub3Qgc2V0CiMgQ09ORklHX01FRElBX1RVTkVSX1FUMTAxMCBpcyBub3Qgc2V0CiMg
Q09ORklHX01FRElBX1RVTkVSX1I4MjBUIGlzIG5vdCBzZXQKQ09ORklHX01FRElBX1RVTkVS
X1NJMjE1Nz15CkNPTkZJR19NRURJQV9UVU5FUl9TSU1QTEU9eQojIENPTkZJR19NRURJQV9U
VU5FUl9UREExODIxMiBpcyBub3Qgc2V0CiMgQ09ORklHX01FRElBX1RVTkVSX1REQTE4MjE4
IGlzIG5vdCBzZXQKQ09ORklHX01FRElBX1RVTkVSX1REQTE4MjUwPXkKQ09ORklHX01FRElB
X1RVTkVSX1REQTE4MjcxPXkKQ09ORklHX01FRElBX1RVTkVSX1REQTgyN1g9eQpDT05GSUdf
TUVESUFfVFVORVJfVERBODI5MD15CkNPTkZJR19NRURJQV9UVU5FUl9UREE5ODg3PXkKIyBD
T05GSUdfTUVESUFfVFVORVJfVEVBNTc2MSBpcyBub3Qgc2V0CkNPTkZJR19NRURJQV9UVU5F
Ul9URUE1NzY3PXkKQ09ORklHX01FRElBX1RVTkVSX1RVQTkwMDE9eQojIENPTkZJR19NRURJ
QV9UVU5FUl9YQzIwMjggaXMgbm90IHNldApDT05GSUdfTUVESUFfVFVORVJfWEM0MDAwPXkK
Q09ORklHX01FRElBX1RVTkVSX1hDNTAwMD15CiMgZW5kIG9mIEN1c3RvbWl6ZSBUViB0dW5l
cnMKCiMKIyBDdXN0b21pc2UgRFZCIEZyb250ZW5kcwojCgojCiMgTXVsdGlzdGFuZGFyZCAo
c2F0ZWxsaXRlKSBmcm9udGVuZHMKIwpDT05GSUdfRFZCX004OERTMzEwMz15CkNPTkZJR19E
VkJfTVhMNVhYPXkKIyBDT05GSUdfRFZCX1NUQjA4OTkgaXMgbm90IHNldApDT05GSUdfRFZC
X1NUQjYxMDA9eQpDT05GSUdfRFZCX1NUVjA5MHg9eQpDT05GSUdfRFZCX1NUVjA5MTA9eQoj
IENPTkZJR19EVkJfU1RWNjExMHggaXMgbm90IHNldApDT05GSUdfRFZCX1NUVjYxMTE9eQoK
IwojIE11bHRpc3RhbmRhcmQgKGNhYmxlICsgdGVycmVzdHJpYWwpIGZyb250ZW5kcwojCiMg
Q09ORklHX0RWQl9EUlhLIGlzIG5vdCBzZXQKIyBDT05GSUdfRFZCX01OODg0NzIgaXMgbm90
IHNldApDT05GSUdfRFZCX01OODg0NzM9eQpDT05GSUdfRFZCX1NJMjE2NT15CkNPTkZJR19E
VkJfVERBMTgyNzFDMkREPXkKCiMKIyBEVkItUyAoc2F0ZWxsaXRlKSBmcm9udGVuZHMKIwpD
T05GSUdfRFZCX0NYMjQxMTA9eQpDT05GSUdfRFZCX0NYMjQxMTY9eQpDT05GSUdfRFZCX0NY
MjQxMTc9eQojIENPTkZJR19EVkJfQ1gyNDEyMCBpcyBub3Qgc2V0CiMgQ09ORklHX0RWQl9D
WDI0MTIzIGlzIG5vdCBzZXQKQ09ORklHX0RWQl9EUzMwMDA9eQojIENPTkZJR19EVkJfTUI4
NkExNiBpcyBub3Qgc2V0CiMgQ09ORklHX0RWQl9NVDMxMiBpcyBub3Qgc2V0CkNPTkZJR19E
VkJfUzVIMTQyMD15CkNPTkZJR19EVkJfU0kyMVhYPXkKQ09ORklHX0RWQl9TVEI2MDAwPXkK
Q09ORklHX0RWQl9TVFYwMjg4PXkKQ09ORklHX0RWQl9TVFYwMjk5PXkKQ09ORklHX0RWQl9T
VFYwOTAwPXkKQ09ORklHX0RWQl9TVFY2MTEwPXkKIyBDT05GSUdfRFZCX1REQTEwMDcxIGlz
IG5vdCBzZXQKIyBDT05GSUdfRFZCX1REQTEwMDg2IGlzIG5vdCBzZXQKQ09ORklHX0RWQl9U
REE4MDgzPXkKQ09ORklHX0RWQl9UREE4MjYxPXkKQ09ORklHX0RWQl9UREE4MjZYPXkKIyBD
T05GSUdfRFZCX1RTMjAyMCBpcyBub3Qgc2V0CkNPTkZJR19EVkJfVFVBNjEwMD15CkNPTkZJ
R19EVkJfVFVORVJfQ1gyNDExMz15CiMgQ09ORklHX0RWQl9UVU5FUl9JVEQxMDAwIGlzIG5v
dCBzZXQKQ09ORklHX0RWQl9WRVMxWDkzPXkKQ09ORklHX0RWQl9aTDEwMDM2PXkKIyBDT05G
SUdfRFZCX1pMMTAwMzkgaXMgbm90IHNldAoKIwojIERWQi1UICh0ZXJyZXN0cmlhbCkgZnJv
bnRlbmRzCiMKQ09ORklHX0RWQl9BRjkwMTM9eQojIENPTkZJR19EVkJfQ1gyMjcwMCBpcyBu
b3Qgc2V0CkNPTkZJR19EVkJfQ1gyMjcwMj15CkNPTkZJR19EVkJfQ1hEMjgyMFI9eQpDT05G
SUdfRFZCX0NYRDI4NDFFUj15CkNPTkZJR19EVkJfRElCMzAwME1CPXkKQ09ORklHX0RWQl9E
SUIzMDAwTUM9eQojIENPTkZJR19EVkJfRElCNzAwME0gaXMgbm90IHNldApDT05GSUdfRFZC
X0RJQjcwMDBQPXkKIyBDT05GSUdfRFZCX0RJQjkwMDAgaXMgbm90IHNldAojIENPTkZJR19E
VkJfRFJYRCBpcyBub3Qgc2V0CkNPTkZJR19EVkJfRUMxMDA9eQpDT05GSUdfRFZCX0dQOFBT
S19GRT15CkNPTkZJR19EVkJfTDY0NzgxPXkKQ09ORklHX0RWQl9NVDM1Mj15CkNPTkZJR19E
VkJfTlhUNjAwMD15CkNPTkZJR19EVkJfUlRMMjgzMD15CkNPTkZJR19EVkJfUlRMMjgzMj15
CiMgQ09ORklHX0RWQl9TNUgxNDMyIGlzIG5vdCBzZXQKIyBDT05GSUdfRFZCX1NJMjE2OCBp
cyBub3Qgc2V0CkNPTkZJR19EVkJfU1A4ODdYPXkKQ09ORklHX0RWQl9TVFYwMzY3PXkKQ09O
RklHX0RWQl9UREExMDA0OD15CiMgQ09ORklHX0RWQl9UREExMDA0WCBpcyBub3Qgc2V0CkNP
TkZJR19EVkJfWkQxMzAxX0RFTU9EPXkKQ09ORklHX0RWQl9aTDEwMzUzPXkKIyBDT05GSUdf
RFZCX0NYRDI4ODAgaXMgbm90IHNldAoKIwojIERWQi1DIChjYWJsZSkgZnJvbnRlbmRzCiMK
Q09ORklHX0RWQl9TVFYwMjk3PXkKIyBDT05GSUdfRFZCX1REQTEwMDIxIGlzIG5vdCBzZXQK
Q09ORklHX0RWQl9UREExMDAyMz15CkNPTkZJR19EVkJfVkVTMTgyMD15CgojCiMgQVRTQyAo
Tm9ydGggQW1lcmljYW4vS29yZWFuIFRlcnJlc3RyaWFsL0NhYmxlIERUVikgZnJvbnRlbmRz
CiMKIyBDT05GSUdfRFZCX0FVODUyMl9EVFYgaXMgbm90IHNldAojIENPTkZJR19EVkJfQVU4
NTIyX1Y0TCBpcyBub3Qgc2V0CkNPTkZJR19EVkJfQkNNMzUxMD15CkNPTkZJR19EVkJfTEcy
MTYwPXkKQ09ORklHX0RWQl9MR0RUMzMwNT15CkNPTkZJR19EVkJfTEdEVDMzMDZBPXkKIyBD
T05GSUdfRFZCX0xHRFQzMzBYIGlzIG5vdCBzZXQKQ09ORklHX0RWQl9NWEw2OTI9eQpDT05G
SUdfRFZCX05YVDIwMFg9eQpDT05GSUdfRFZCX09SNTExMzI9eQpDT05GSUdfRFZCX09SNTEy
MTE9eQojIENPTkZJR19EVkJfUzVIMTQwOSBpcyBub3Qgc2V0CkNPTkZJR19EVkJfUzVIMTQx
MT15CgojCiMgSVNEQi1UICh0ZXJyZXN0cmlhbCkgZnJvbnRlbmRzCiMKQ09ORklHX0RWQl9E
SUI4MDAwPXkKIyBDT05GSUdfRFZCX01CODZBMjBTIGlzIG5vdCBzZXQKIyBDT05GSUdfRFZC
X1M5MjEgaXMgbm90IHNldAoKIwojIElTREItUyAoc2F0ZWxsaXRlKSAmIElTREItVCAodGVy
cmVzdHJpYWwpIGZyb250ZW5kcwojCkNPTkZJR19EVkJfTU44ODQ0M1g9eQojIENPTkZJR19E
VkJfVEM5MDUyMiBpcyBub3Qgc2V0CgojCiMgRGlnaXRhbCB0ZXJyZXN0cmlhbCBvbmx5IHR1
bmVycy9QTEwKIwojIENPTkZJR19EVkJfUExMIGlzIG5vdCBzZXQKQ09ORklHX0RWQl9UVU5F
Ul9ESUIwMDcwPXkKQ09ORklHX0RWQl9UVU5FUl9ESUIwMDkwPXkKCiMKIyBTRUMgY29udHJv
bCBkZXZpY2VzIGZvciBEVkItUwojCiMgQ09ORklHX0RWQl9BODI5MyBpcyBub3Qgc2V0CkNP
TkZJR19EVkJfQUY5MDMzPXkKQ09ORklHX0RWQl9BU0NPVDJFPXkKIyBDT05GSUdfRFZCX0FU
Qk04ODMwIGlzIG5vdCBzZXQKQ09ORklHX0RWQl9IRUxFTkU9eQpDT05GSUdfRFZCX0hPUlVT
M0E9eQojIENPTkZJR19EVkJfSVNMNjQwNSBpcyBub3Qgc2V0CkNPTkZJR19EVkJfSVNMNjQy
MT15CkNPTkZJR19EVkJfSVNMNjQyMz15CkNPTkZJR19EVkJfSVgyNTA1Vj15CiMgQ09ORklH
X0RWQl9MR1M4R0w1IGlzIG5vdCBzZXQKIyBDT05GSUdfRFZCX0xHUzhHWFggaXMgbm90IHNl
dApDT05GSUdfRFZCX0xOQkgyNT15CkNPTkZJR19EVkJfTE5CSDI5PXkKIyBDT05GSUdfRFZC
X0xOQlAyMSBpcyBub3Qgc2V0CiMgQ09ORklHX0RWQl9MTkJQMjIgaXMgbm90IHNldApDT05G
SUdfRFZCX004OFJTMjAwMD15CkNPTkZJR19EVkJfVERBNjY1eD15CiMgQ09ORklHX0RWQl9E
UlgzOVhZSiBpcyBub3Qgc2V0CgojCiMgQ29tbW9uIEludGVyZmFjZSAoRU41MDIyMSkgY29u
dHJvbGxlciBkcml2ZXJzCiMKIyBDT05GSUdfRFZCX0NYRDIwOTkgaXMgbm90IHNldApDT05G
SUdfRFZCX1NQMj15CiMgZW5kIG9mIEN1c3RvbWlzZSBEVkIgRnJvbnRlbmRzCiMgZW5kIG9m
IE1lZGlhIGFuY2lsbGFyeSBkcml2ZXJzCgojCiMgR3JhcGhpY3Mgc3VwcG9ydAojCkNPTkZJ
R19BUEVSVFVSRV9IRUxQRVJTPXkKQ09ORklHX1NDUkVFTl9JTkZPPXkKQ09ORklHX1ZJREVP
PXkKQ09ORklHX0FVWERJU1BMQVk9eQpDT05GSUdfQ0hBUkxDRD15CkNPTkZJR19IRDQ0Nzgw
X0NPTU1PTj15CkNPTkZJR19IRDQ0NzgwPXkKQ09ORklHX0xDRDJTPXkKQ09ORklHX1BBUlBP
UlRfUEFORUw9eQpDT05GSUdfUEFORUxfUEFSUE9SVD0wCkNPTkZJR19QQU5FTF9QUk9GSUxF
PTUKIyBDT05GSUdfUEFORUxfQ0hBTkdFX01FU1NBR0UgaXMgbm90IHNldAojIENPTkZJR19D
SEFSTENEX0JMX09GRiBpcyBub3Qgc2V0CiMgQ09ORklHX0NIQVJMQ0RfQkxfT04gaXMgbm90
IHNldApDT05GSUdfQ0hBUkxDRF9CTF9GTEFTSD15CiMgQ09ORklHX0tTMDEwOCBpcyBub3Qg
c2V0CkNPTkZJR19MSU5FRElTUD15CiMgQ09ORklHX0lNR19BU0NJSV9MQ0QgaXMgbm90IHNl
dApDT05GSUdfSFQxNkszMz15CkNPTkZJR19NQVg2OTU5PXkKQ09ORklHX1NFR19MRURfR1BJ
Tz15CkNPTkZJR19QQU5FTD15CkNPTkZJR19EUk09eQpDT05GSUdfRFJNX01JUElfREJJPXkK
Q09ORklHX0RSTV9NSVBJX0RTST15CkNPTkZJR19EUk1fREVCVUdfTU09eQpDT05GSUdfRFJN
X0tVTklUX1RFU1RfSEVMUEVSUz15CkNPTkZJR19EUk1fS1VOSVRfVEVTVD15CkNPTkZJR19E
Uk1fS01TX0hFTFBFUj15CkNPTkZJR19EUk1fUEFOSUM9eQpDT05GSUdfRFJNX1BBTklDX0ZP
UkVHUk9VTkRfQ09MT1I9MHhmZmZmZmYKQ09ORklHX0RSTV9QQU5JQ19CQUNLR1JPVU5EX0NP
TE9SPTB4MDAwMDAwCkNPTkZJR19EUk1fUEFOSUNfREVCVUc9eQpDT05GSUdfRFJNX0ZCREVW
X0VNVUxBVElPTj15CkNPTkZJR19EUk1fRkJERVZfT1ZFUkFMTE9DPTEwMAojIENPTkZJR19E
Uk1fTE9BRF9FRElEX0ZJUk1XQVJFIGlzIG5vdCBzZXQKQ09ORklHX0RSTV9ESVNQTEFZX0hF
TFBFUj15CkNPTkZJR19EUk1fRElTUExBWV9EUF9BVVhfQlVTPXkKQ09ORklHX0RSTV9ESVNQ
TEFZX0RQX0FVWF9DRUM9eQojIENPTkZJR19EUk1fRElTUExBWV9EUF9BVVhfQ0hBUkRFViBp
cyBub3Qgc2V0CkNPTkZJR19EUk1fRElTUExBWV9EUF9IRUxQRVI9eQpDT05GSUdfRFJNX0RJ
U1BMQVlfSERDUF9IRUxQRVI9eQpDT05GSUdfRFJNX0VYRUM9eQpDT05GSUdfRFJNX0JVRERZ
PXkKQ09ORklHX0RSTV9HRU1fRE1BX0hFTFBFUj15CkNPTkZJR19EUk1fR0VNX1NITUVNX0hF
TFBFUj15CkNPTkZJR19EUk1fU0NIRUQ9eQoKIwojIEkyQyBlbmNvZGVyIG9yIGhlbHBlciBj
aGlwcwojCkNPTkZJR19EUk1fSTJDX0NINzAwNj15CkNPTkZJR19EUk1fSTJDX1NJTDE2ND15
CkNPTkZJR19EUk1fSTJDX05YUF9UREE5OThYPXkKIyBDT05GSUdfRFJNX0kyQ19OWFBfVERB
OTk1MCBpcyBub3Qgc2V0CiMgZW5kIG9mIEkyQyBlbmNvZGVyIG9yIGhlbHBlciBjaGlwcwoK
IwojIEFSTSBkZXZpY2VzCiMKQ09ORklHX0RSTV9LT01FREE9eQojIGVuZCBvZiBBUk0gZGV2
aWNlcwoKQ09ORklHX0RSTV9WR0VNPXkKQ09ORklHX0RSTV9WS01TPXkKQ09ORklHX0RSTV9V
REw9eQojIENPTkZJR19EUk1fVklSVElPX0dQVSBpcyBub3Qgc2V0CkNPTkZJR19EUk1fUEFO
RUw9eQoKIwojIERpc3BsYXkgUGFuZWxzCiMKIyBDT05GSUdfRFJNX1BBTkVMX0FCVF9ZMDMw
WFgwNjdBIGlzIG5vdCBzZXQKQ09ORklHX0RSTV9QQU5FTF9BUk1fVkVSU0FUSUxFPXkKQ09O
RklHX0RSTV9QQU5FTF9BU1VTX1owMFRfVE01UDVfTlQzNTU5Nj15CiMgQ09ORklHX0RSTV9Q
QU5FTF9BVU9fQTAzMEpUTjAxIGlzIG5vdCBzZXQKQ09ORklHX0RSTV9QQU5FTF9CT0VfQkYw
NjBZOE1fQUowPXkKQ09ORklHX0RSTV9QQU5FTF9CT0VfSElNQVg4Mjc5RD15CkNPTkZJR19E
Uk1fUEFORUxfQk9FX1RIMTAxTUIzMVVJRzAwMl8yOEE9eQpDT05GSUdfRFJNX1BBTkVMX0JP
RV9UVjEwMVdVTV9OTDY9eQpDT05GSUdfRFJNX1BBTkVMX0VCQkdfRlQ4NzE5PXkKIyBDT05G
SUdfRFJNX1BBTkVMX0VMSURBX0tEMzVUMTMzIGlzIG5vdCBzZXQKQ09ORklHX0RSTV9QQU5F
TF9GRUlYSU5fSzEwMV9JTTJCQTAyPXkKIyBDT05GSUdfRFJNX1BBTkVMX0ZFSVlBTkdfRlkw
NzAyNERJMjZBMzBEIGlzIG5vdCBzZXQKQ09ORklHX0RSTV9QQU5FTF9EU0lfQ009eQojIENP
TkZJR19EUk1fUEFORUxfTFZEUyBpcyBub3Qgc2V0CiMgQ09ORklHX0RSTV9QQU5FTF9ISU1B
WF9IWDgzMTEyQSBpcyBub3Qgc2V0CiMgQ09ORklHX0RSTV9QQU5FTF9ISU1BWF9IWDgzOTQg
aXMgbm90IHNldAojIENPTkZJR19EUk1fUEFORUxfSUxJVEVLX0lMOTMyMiBpcyBub3Qgc2V0
CiMgQ09ORklHX0RSTV9QQU5FTF9JTElURUtfSUxJOTM0MSBpcyBub3Qgc2V0CiMgQ09ORklH
X0RSTV9QQU5FTF9JTElURUtfSUxJOTgwNSBpcyBub3Qgc2V0CiMgQ09ORklHX0RSTV9QQU5F
TF9JTElURUtfSUxJOTg4MUMgaXMgbm90IHNldAojIENPTkZJR19EUk1fUEFORUxfSUxJVEVL
X0lMSTk4ODJUIGlzIG5vdCBzZXQKQ09ORklHX0RSTV9QQU5FTF9JTk5PTFVYX0VKMDMwTkE9
eQpDT05GSUdfRFJNX1BBTkVMX0lOTk9MVVhfUDA3OVpDQT15CiMgQ09ORklHX0RSTV9QQU5F
TF9KQURBUkRfSkQ5MzY1REFfSDMgaXMgbm90IHNldAojIENPTkZJR19EUk1fUEFORUxfSkRJ
X0xQTTEwMkExODhBIGlzIG5vdCBzZXQKQ09ORklHX0RSTV9QQU5FTF9KRElfTFQwNzBNRTA1
MDAwPXkKIyBDT05GSUdfRFJNX1BBTkVMX0pESV9SNjM0NTIgaXMgbm90IHNldApDT05GSUdf
RFJNX1BBTkVMX0tIQURBU19UUzA1MD15CiMgQ09ORklHX0RSTV9QQU5FTF9LSU5HRElTUExB
WV9LRDA5N0QwNCBpcyBub3Qgc2V0CkNPTkZJR19EUk1fUEFORUxfTEVBRFRFS19MVEswNTBI
MzE0Nlc9eQojIENPTkZJR19EUk1fUEFORUxfTEVBRFRFS19MVEs1MDBIRDE4MjkgaXMgbm90
IHNldApDT05GSUdfRFJNX1BBTkVMX0xHX0xCMDM1UTAyPXkKQ09ORklHX0RSTV9QQU5FTF9M
R19MRzQ1NzM9eQpDT05GSUdfRFJNX1BBTkVMX0xHX1NXNDM0MDg9eQpDT05GSUdfRFJNX1BB
TkVMX01BR05BQ0hJUF9ENTNFNkVBODk2Nj15CkNPTkZJR19EUk1fUEFORUxfTUFOVElYX01M
QUYwNTdXRTUxPXkKQ09ORklHX0RSTV9QQU5FTF9ORUNfTkw4MDQ4SEwxMT15CkNPTkZJR19E
Uk1fUEFORUxfTkVXVklTSU9OX05WMzA1MUQ9eQpDT05GSUdfRFJNX1BBTkVMX05FV1ZJU0lP
Tl9OVjMwNTJDPXkKQ09ORklHX0RSTV9QQU5FTF9OT1ZBVEVLX05UMzU1MTA9eQpDT05GSUdf
RFJNX1BBTkVMX05PVkFURUtfTlQzNTU2MD15CkNPTkZJR19EUk1fUEFORUxfTk9WQVRFS19O
VDM1OTUwPXkKIyBDT05GSUdfRFJNX1BBTkVMX05PVkFURUtfTlQzNjUyMyBpcyBub3Qgc2V0
CkNPTkZJR19EUk1fUEFORUxfTk9WQVRFS19OVDM2NjcyQT15CkNPTkZJR19EUk1fUEFORUxf
Tk9WQVRFS19OVDM2NjcyRT15CiMgQ09ORklHX0RSTV9QQU5FTF9OT1ZBVEVLX05UMzkwMTYg
aXMgbm90IHNldAojIENPTkZJR19EUk1fUEFORUxfT0xJTUVYX0xDRF9PTElOVVhJTk8gaXMg
bm90IHNldApDT05GSUdfRFJNX1BBTkVMX09SSVNFVEVDSF9PVEE1NjAxQT15CkNPTkZJR19E
Uk1fUEFORUxfT1JJU0VURUNIX09UTTgwMDlBPXkKIyBDT05GSUdfRFJNX1BBTkVMX09TRF9P
U0QxMDFUMjU4N181M1RTIGlzIG5vdCBzZXQKQ09ORklHX0RSTV9QQU5FTF9QQU5BU09OSUNf
VlZYMTBGMDM0TjAwPXkKQ09ORklHX0RSTV9QQU5FTF9SQVNQQkVSUllQSV9UT1VDSFNDUkVF
Tj15CkNPTkZJR19EUk1fUEFORUxfUkFZRElVTV9STTY3MTkxPXkKQ09ORklHX0RSTV9QQU5F
TF9SQVlESVVNX1JNNjgyMDA9eQojIENPTkZJR19EUk1fUEFORUxfUkFZRElVTV9STTY5MkU1
IGlzIG5vdCBzZXQKQ09ORklHX0RSTV9QQU5FTF9SQVlESVVNX1JNNjkzODA9eQpDT05GSUdf
RFJNX1BBTkVMX1JPTkJPX1JCMDcwRDMwPXkKIyBDT05GSUdfRFJNX1BBTkVMX1NBTVNVTkdf
UzZFODhBMF9BTVM0NTJFRjAxIGlzIG5vdCBzZXQKQ09ORklHX0RSTV9QQU5FTF9TQU1TVU5H
X0FUTkEzM1hDMjA9eQojIENPTkZJR19EUk1fUEFORUxfU0FNU1VOR19EQjc0MzAgaXMgbm90
IHNldApDT05GSUdfRFJNX1BBTkVMX1NBTVNVTkdfTEQ5MDQwPXkKQ09ORklHX0RSTV9QQU5F
TF9TQU1TVU5HX1M2RTNGQTc9eQpDT05GSUdfRFJNX1BBTkVMX1NBTVNVTkdfUzZEMTZEMD15
CkNPTkZJR19EUk1fUEFORUxfU0FNU1VOR19TNkQyN0ExPXkKIyBDT05GSUdfRFJNX1BBTkVM
X1NBTVNVTkdfUzZEN0FBMCBpcyBub3Qgc2V0CkNPTkZJR19EUk1fUEFORUxfU0FNU1VOR19T
NkUzSEEyPXkKQ09ORklHX0RSTV9QQU5FTF9TQU1TVU5HX1M2RTYzSjBYMDM9eQojIENPTkZJ
R19EUk1fUEFORUxfU0FNU1VOR19TNkU2M00wIGlzIG5vdCBzZXQKQ09ORklHX0RSTV9QQU5F
TF9TQU1TVU5HX1M2RThBQTA9eQojIENPTkZJR19EUk1fUEFORUxfU0FNU1VOR19TT0ZFRjAw
IGlzIG5vdCBzZXQKQ09ORklHX0RSTV9QQU5FTF9TRUlLT180M1dWRjFHPXkKQ09ORklHX0RS
TV9QQU5FTF9TSEFSUF9MUTEwMVIxU1gwMT15CkNPTkZJR19EUk1fUEFORUxfU0hBUlBfTFMw
MzdWN0RXMDE9eQojIENPTkZJR19EUk1fUEFORUxfU0hBUlBfTFMwNDNUMUxFMDEgaXMgbm90
IHNldApDT05GSUdfRFJNX1BBTkVMX1NIQVJQX0xTMDYwVDFTWDAxPXkKIyBDT05GSUdfRFJN
X1BBTkVMX1NJVFJPTklYX1NUNzcwMSBpcyBub3Qgc2V0CkNPTkZJR19EUk1fUEFORUxfU0lU
Uk9OSVhfU1Q3NzAzPXkKQ09ORklHX0RSTV9QQU5FTF9TSVRST05JWF9TVDc3ODlWPXkKQ09O
RklHX0RSTV9QQU5FTF9TT05ZX0FDWDU2NUFLTT15CkNPTkZJR19EUk1fUEFORUxfU09OWV9U
RDQzNTNfSkRJPXkKIyBDT05GSUdfRFJNX1BBTkVMX1NPTllfVFVMSVBfVFJVTFlfTlQzNTUy
MSBpcyBub3Qgc2V0CiMgQ09ORklHX0RSTV9QQU5FTF9TVEFSVEVLX0tEMDcwRkhGSUQwMTUg
aXMgbm90IHNldApDT05GSUdfRFJNX1BBTkVMX0VEUD15CkNPTkZJR19EUk1fUEFORUxfU0lN
UExFPXkKQ09ORklHX0RSTV9QQU5FTF9TWU5BUFRJQ1NfUjYzMzUzPXkKQ09ORklHX0RSTV9Q
QU5FTF9URE9fVEwwNzBXU0gzMD15CkNPTkZJR19EUk1fUEFORUxfVFBPX1REMDI4VFRFQzE9
eQojIENPTkZJR19EUk1fUEFORUxfVFBPX1REMDQzTVRFQTEgaXMgbm90IHNldApDT05GSUdf
RFJNX1BBTkVMX1RQT19UUEcxMTA9eQpDT05GSUdfRFJNX1BBTkVMX1RSVUxZX05UMzU1OTdf
V1FYR0E9eQpDT05GSUdfRFJNX1BBTkVMX1ZJU0lPTk9YX1I2NjQ1MT15CiMgQ09ORklHX0RS
TV9QQU5FTF9WSVNJT05PWF9STTY5Mjk5IGlzIG5vdCBzZXQKQ09ORklHX0RSTV9QQU5FTF9W
SVNJT05PWF9WVERSNjEzMD15CkNPTkZJR19EUk1fUEFORUxfV0lERUNISVBTX1dTMjQwMT15
CkNPTkZJR19EUk1fUEFORUxfWElOUEVOR19YUFAwNTVDMjcyPXkKIyBlbmQgb2YgRGlzcGxh
eSBQYW5lbHMKCkNPTkZJR19EUk1fQlJJREdFPXkKQ09ORklHX0RSTV9QQU5FTF9CUklER0U9
eQpDT05GSUdfRFJNX0FVWF9IUERfQlJJREdFPXkKCiMKIyBEaXNwbGF5IEludGVyZmFjZSBC
cmlkZ2VzCiMKQ09ORklHX0RSTV9DSElQT05FX0lDTjYyMTE9eQojIENPTkZJR19EUk1fQ0hS
T05URUxfQ0g3MDMzIGlzIG5vdCBzZXQKQ09ORklHX0RSTV9ESVNQTEFZX0NPTk5FQ1RPUj15
CkNPTkZJR19EUk1fSVRFX0lUNjUwNT15CiMgQ09ORklHX0RSTV9MT05USVVNX0xUODkxMkIg
aXMgbm90IHNldApDT05GSUdfRFJNX0xPTlRJVU1fTFQ5MjExPXkKQ09ORklHX0RSTV9MT05U
SVVNX0xUOTYxMT15CkNPTkZJR19EUk1fTE9OVElVTV9MVDk2MTFVWEM9eQpDT05GSUdfRFJN
X0lURV9JVDY2MTIxPXkKQ09ORklHX0RSTV9MVkRTX0NPREVDPXkKQ09ORklHX0RSTV9NRUdB
Q0hJUFNfU1REUFhYWFhfR0VfQjg1MFYzX0ZXPXkKIyBDT05GSUdfRFJNX05XTF9NSVBJX0RT
SSBpcyBub3Qgc2V0CiMgQ09ORklHX0RSTV9OWFBfUFROMzQ2MCBpcyBub3Qgc2V0CkNPTkZJ
R19EUk1fUEFSQURFX1BTODYyMj15CiMgQ09ORklHX0RSTV9QQVJBREVfUFM4NjQwIGlzIG5v
dCBzZXQKQ09ORklHX0RSTV9TQU1TVU5HX0RTSU09eQpDT05GSUdfRFJNX1NJTF9TSUk4NjIw
PXkKQ09ORklHX0RSTV9TSUk5MDJYPXkKIyBDT05GSUdfRFJNX1NJSTkyMzQgaXMgbm90IHNl
dApDT05GSUdfRFJNX1NJTVBMRV9CUklER0U9eQpDT05GSUdfRFJNX1RISU5FX1RIQzYzTFZE
MTAyND15CkNPTkZJR19EUk1fVE9TSElCQV9UQzM1ODc2Mj15CkNPTkZJR19EUk1fVE9TSElC
QV9UQzM1ODc2ND15CkNPTkZJR19EUk1fVE9TSElCQV9UQzM1ODc2Nz15CkNPTkZJR19EUk1f
VE9TSElCQV9UQzM1ODc2OD15CkNPTkZJR19EUk1fVE9TSElCQV9UQzM1ODc3NT15CkNPTkZJ
R19EUk1fVElfRExQQzM0MzM9eQojIENPTkZJR19EUk1fVElfVEZQNDEwIGlzIG5vdCBzZXQK
IyBDT05GSUdfRFJNX1RJX1NONjVEU0k4MyBpcyBub3Qgc2V0CkNPTkZJR19EUk1fVElfU042
NURTSTg2PXkKQ09ORklHX0RSTV9USV9UUEQxMlMwMTU9eQpDT05GSUdfRFJNX0FOQUxPR0lY
X0FOWDYzNDU9eQojIENPTkZJR19EUk1fQU5BTE9HSVhfQU5YNzhYWCBpcyBub3Qgc2V0CkNP
TkZJR19EUk1fQU5BTE9HSVhfRFA9eQpDT05GSUdfRFJNX0FOQUxPR0lYX0FOWDc2MjU9eQpD
T05GSUdfRFJNX0kyQ19BRFY3NTExPXkKQ09ORklHX0RSTV9JMkNfQURWNzUxMV9DRUM9eQpD
T05GSUdfRFJNX0NETlNfRFNJPXkKIyBDT05GSUdfRFJNX0NETlNfRFNJX0o3MjFFIGlzIG5v
dCBzZXQKQ09ORklHX0RSTV9DRE5TX01IRFA4NTQ2PXkKIyBlbmQgb2YgRGlzcGxheSBJbnRl
cmZhY2UgQnJpZGdlcwoKQ09ORklHX0RSTV9FVE5BVklWPXkKQ09ORklHX0RSTV9FVE5BVklW
X1RIRVJNQUw9eQpDT05GSUdfRFJNX0xPR0lDVkM9eQojIENPTkZJR19EUk1fQVJDUEdVIGlz
IG5vdCBzZXQKQ09ORklHX0RSTV9HTTEyVTMyMD15CiMgQ09ORklHX0RSTV9QQU5FTF9NSVBJ
X0RCSSBpcyBub3Qgc2V0CiMgQ09ORklHX0RSTV9TSU1QTEVEUk0gaXMgbm90IHNldApDT05G
SUdfVElOWURSTV9IWDgzNTdEPXkKIyBDT05GSUdfVElOWURSTV9JTEk5MTYzIGlzIG5vdCBz
ZXQKQ09ORklHX1RJTllEUk1fSUxJOTIyNT15CiMgQ09ORklHX1RJTllEUk1fSUxJOTM0MSBp
cyBub3Qgc2V0CkNPTkZJR19USU5ZRFJNX0lMSTk0ODY9eQojIENPTkZJR19USU5ZRFJNX01J
MDI4M1FUIGlzIG5vdCBzZXQKQ09ORklHX1RJTllEUk1fUkVQQVBFUj15CiMgQ09ORklHX1RJ
TllEUk1fU1Q3NTg2IGlzIG5vdCBzZXQKIyBDT05GSUdfVElOWURSTV9TVDc3MzVSIGlzIG5v
dCBzZXQKQ09ORklHX0RSTV9HVUQ9eQpDT05GSUdfRFJNX1NTRDEzMFg9eQpDT05GSUdfRFJN
X1NTRDEzMFhfSTJDPXkKQ09ORklHX0RSTV9TU0QxMzBYX1NQST15CkNPTkZJR19EUk1fTElC
X1JBTkRPTT15CkNPTkZJR19EUk1fUEFORUxfT1JJRU5UQVRJT05fUVVJUktTPXkKCiMKIyBG
cmFtZSBidWZmZXIgRGV2aWNlcwojCkNPTkZJR19GQj15CkNPTkZJR19GQl9IRUNVQkE9eQoj
IENPTkZJR19GQl9BUkMgaXMgbm90IHNldApDT05GSUdfRkJfVkdBMTY9eQpDT05GSUdfRkJf
VVZFU0E9eQpDT05GSUdfRkJfVkVTQT15CkNPTkZJR19GQl9ONDExPXkKQ09ORklHX0ZCX0hH
QT15CkNPTkZJR19GQl9PUEVOQ09SRVM9eQpDT05GSUdfRkJfUzFEMTNYWFg9eQpDT05GSUdf
RkJfU01TQ1VGWD15CkNPTkZJR19GQl9VREw9eQpDT05GSUdfRkJfSUJNX0dYVDQ1MDA9eQoj
IENPTkZJR19GQl9WSVJUVUFMIGlzIG5vdCBzZXQKQ09ORklHX0ZCX01FVFJPTk9NRT15CkNP
TkZJR19GQl9TSU1QTEU9eQojIENPTkZJR19GQl9TU0QxMzA3IGlzIG5vdCBzZXQKQ09ORklH
X0ZCX0NPUkU9eQpDT05GSUdfRkJfTk9USUZZPXkKQ09ORklHX0ZJUk1XQVJFX0VESUQ9eQpD
T05GSUdfRkJfREVWSUNFPXkKQ09ORklHX0ZCX0NGQl9GSUxMUkVDVD15CkNPTkZJR19GQl9D
RkJfQ09QWUFSRUE9eQpDT05GSUdfRkJfQ0ZCX0lNQUdFQkxJVD15CkNPTkZJR19GQl9TWVNf
RklMTFJFQ1Q9eQpDT05GSUdfRkJfU1lTX0NPUFlBUkVBPXkKQ09ORklHX0ZCX1NZU19JTUFH
RUJMSVQ9eQpDT05GSUdfRkJfRk9SRUlHTl9FTkRJQU49eQojIENPTkZJR19GQl9CT1RIX0VO
RElBTiBpcyBub3Qgc2V0CiMgQ09ORklHX0ZCX0JJR19FTkRJQU4gaXMgbm90IHNldApDT05G
SUdfRkJfTElUVExFX0VORElBTj15CkNPTkZJR19GQl9TWVNNRU1fRk9QUz15CkNPTkZJR19G
Ql9ERUZFUlJFRF9JTz15CkNPTkZJR19GQl9ETUFNRU1fSEVMUEVSUz15CkNPTkZJR19GQl9J
T01FTV9GT1BTPXkKQ09ORklHX0ZCX0lPTUVNX0hFTFBFUlM9eQpDT05GSUdfRkJfU1lTTUVN
X0hFTFBFUlM9eQpDT05GSUdfRkJfU1lTTUVNX0hFTFBFUlNfREVGRVJSRUQ9eQpDT05GSUdf
RkJfQkFDS0xJR0hUPXkKQ09ORklHX0ZCX01PREVfSEVMUEVSUz15CiMgQ09ORklHX0ZCX1RJ
TEVCTElUVElORyBpcyBub3Qgc2V0CiMgZW5kIG9mIEZyYW1lIGJ1ZmZlciBEZXZpY2VzCgoj
CiMgQmFja2xpZ2h0ICYgTENEIGRldmljZSBzdXBwb3J0CiMKQ09ORklHX0xDRF9DTEFTU19E
RVZJQ0U9eQpDT05GSUdfTENEX0w0RjAwMjQyVDAzPXkKQ09ORklHX0xDRF9MTVMyODNHRjA1
PXkKQ09ORklHX0xDRF9MVFYzNTBRVj15CkNPTkZJR19MQ0RfSUxJOTIyWD15CkNPTkZJR19M
Q0RfSUxJOTMyMD15CkNPTkZJR19MQ0RfVERPMjRNPXkKQ09ORklHX0xDRF9WR0cyNDMyQTQ9
eQojIENPTkZJR19MQ0RfUExBVEZPUk0gaXMgbm90IHNldAojIENPTkZJR19MQ0RfQU1TMzY5
RkcwNiBpcyBub3Qgc2V0CiMgQ09ORklHX0xDRF9MTVM1MDFLRjAzIGlzIG5vdCBzZXQKIyBD
T05GSUdfTENEX0hYODM1NyBpcyBub3Qgc2V0CkNPTkZJR19MQ0RfT1RNMzIyNUE9eQpDT05G
SUdfQkFDS0xJR0hUX0NMQVNTX0RFVklDRT15CkNPTkZJR19CQUNLTElHSFRfS1REMjUzPXkK
IyBDT05GSUdfQkFDS0xJR0hUX0tURDI4MDEgaXMgbm90IHNldApDT05GSUdfQkFDS0xJR0hU
X0tUWjg4NjY9eQpDT05GSUdfQkFDS0xJR0hUX0xNMzUzMz15CkNPTkZJR19CQUNLTElHSFRf
UFdNPXkKIyBDT05GSUdfQkFDS0xJR0hUX0RBOTA1MiBpcyBub3Qgc2V0CiMgQ09ORklHX0JB
Q0tMSUdIVF9NQVg4OTI1IGlzIG5vdCBzZXQKQ09ORklHX0JBQ0tMSUdIVF9RQ09NX1dMRUQ9
eQojIENPTkZJR19CQUNLTElHSFRfUlQ0ODMxIGlzIG5vdCBzZXQKQ09ORklHX0JBQ0tMSUdI
VF9TQUhBUkE9eQojIENPTkZJR19CQUNLTElHSFRfV004MzFYIGlzIG5vdCBzZXQKQ09ORklH
X0JBQ0tMSUdIVF9BRFA4ODYwPXkKIyBDT05GSUdfQkFDS0xJR0hUX0FEUDg4NzAgaXMgbm90
IHNldApDT05GSUdfQkFDS0xJR0hUXzg4UE04NjBYPXkKIyBDT05GSUdfQkFDS0xJR0hUX1BD
RjUwNjMzIGlzIG5vdCBzZXQKQ09ORklHX0JBQ0tMSUdIVF9MTTM2MzBBPXkKQ09ORklHX0JB
Q0tMSUdIVF9MTTM2Mzk9eQojIENPTkZJR19CQUNLTElHSFRfTFA4NTVYIGlzIG5vdCBzZXQK
Q09ORklHX0JBQ0tMSUdIVF9MUDg3ODg9eQpDT05GSUdfQkFDS0xJR0hUX01QMzMwOUM9eQpD
T05GSUdfQkFDS0xJR0hUX1RQUzY1MjE3PXkKQ09ORklHX0JBQ0tMSUdIVF9BUzM3MTE9eQpD
T05GSUdfQkFDS0xJR0hUX0dQSU89eQpDT05GSUdfQkFDS0xJR0hUX0xWNTIwN0xQPXkKQ09O
RklHX0JBQ0tMSUdIVF9CRDYxMDc9eQpDT05GSUdfQkFDS0xJR0hUX0FSQ1hDTk49eQpDT05G
SUdfQkFDS0xJR0hUX0xFRD15CiMgZW5kIG9mIEJhY2tsaWdodCAmIExDRCBkZXZpY2Ugc3Vw
cG9ydAoKQ09ORklHX1ZHQVNUQVRFPXkKQ09ORklHX1ZJREVPTU9ERV9IRUxQRVJTPXkKQ09O
RklHX0hETUk9eQoKIwojIENvbnNvbGUgZGlzcGxheSBkcml2ZXIgc3VwcG9ydAojCkNPTkZJ
R19WR0FfQ09OU09MRT15CkNPTkZJR19EVU1NWV9DT05TT0xFPXkKQ09ORklHX0RVTU1ZX0NP
TlNPTEVfQ09MVU1OUz04MApDT05GSUdfRFVNTVlfQ09OU09MRV9ST1dTPTI1CiMgQ09ORklH
X0ZSQU1FQlVGRkVSX0NPTlNPTEUgaXMgbm90IHNldAojIGVuZCBvZiBDb25zb2xlIGRpc3Bs
YXkgZHJpdmVyIHN1cHBvcnQKCkNPTkZJR19MT0dPPXkKQ09ORklHX0xPR09fTElOVVhfTU9O
Tz15CkNPTkZJR19MT0dPX0xJTlVYX1ZHQTE2PXkKQ09ORklHX0xPR09fTElOVVhfQ0xVVDIy
ND15CiMgZW5kIG9mIEdyYXBoaWNzIHN1cHBvcnQKCiMgQ09ORklHX0RSTV9BQ0NFTCBpcyBu
b3Qgc2V0CiMgQ09ORklHX1NPVU5EIGlzIG5vdCBzZXQKQ09ORklHX0hJRF9TVVBQT1JUPXkK
Q09ORklHX0hJRD15CiMgQ09ORklHX0hJRF9CQVRURVJZX1NUUkVOR1RIIGlzIG5vdCBzZXQK
IyBDT05GSUdfSElEUkFXIGlzIG5vdCBzZXQKIyBDT05GSUdfVUhJRCBpcyBub3Qgc2V0CkNP
TkZJR19ISURfR0VORVJJQz15CgojCiMgU3BlY2lhbCBISUQgZHJpdmVycwojCkNPTkZJR19I
SURfQTRURUNIPXkKQ09ORklHX0hJRF9BQ0NVVE9VQ0g9eQpDT05GSUdfSElEX0FDUlVYPXkK
IyBDT05GSUdfSElEX0FDUlVYX0ZGIGlzIG5vdCBzZXQKIyBDT05GSUdfSElEX0FQUExFIGlz
IG5vdCBzZXQKQ09ORklHX0hJRF9BUFBMRUlSPXkKQ09ORklHX0hJRF9BU1VTPXkKQ09ORklH
X0hJRF9BVVJFQUw9eQojIENPTkZJR19ISURfQkVMS0lOIGlzIG5vdCBzZXQKIyBDT05GSUdf
SElEX0JFVE9QX0ZGIGlzIG5vdCBzZXQKIyBDT05GSUdfSElEX0JJR0JFTl9GRiBpcyBub3Qg
c2V0CkNPTkZJR19ISURfQ0hFUlJZPXkKIyBDT05GSUdfSElEX0NISUNPTlkgaXMgbm90IHNl
dAojIENPTkZJR19ISURfQ09SU0FJUiBpcyBub3Qgc2V0CkNPTkZJR19ISURfQ09VR0FSPXkK
Q09ORklHX0hJRF9NQUNBTExZPXkKIyBDT05GSUdfSElEX0NNRURJQSBpcyBub3Qgc2V0CkNP
TkZJR19ISURfQ1JFQVRJVkVfU0IwNTQwPXkKQ09ORklHX0hJRF9DWVBSRVNTPXkKQ09ORklH
X0hJRF9EUkFHT05SSVNFPXkKIyBDT05GSUdfRFJBR09OUklTRV9GRiBpcyBub3Qgc2V0CiMg
Q09ORklHX0hJRF9FTVNfRkYgaXMgbm90IHNldApDT05GSUdfSElEX0VMQU49eQojIENPTkZJ
R19ISURfRUxFQ09NIGlzIG5vdCBzZXQKIyBDT05GSUdfSElEX0VMTyBpcyBub3Qgc2V0CkNP
TkZJR19ISURfRVZJU0lPTj15CkNPTkZJR19ISURfRVpLRVk9eQpDT05GSUdfSElEX0dFTUJJ
UkQ9eQojIENPTkZJR19ISURfR0ZSTSBpcyBub3Qgc2V0CkNPTkZJR19ISURfR0xPUklPVVM9
eQpDT05GSUdfSElEX0hPTFRFSz15CiMgQ09ORklHX0hPTFRFS19GRiBpcyBub3Qgc2V0CkNP
TkZJR19ISURfVklWQUxESV9DT01NT049eQojIENPTkZJR19ISURfR09PR0xFX0hBTU1FUiBp
cyBub3Qgc2V0CiMgQ09ORklHX0hJRF9HT09HTEVfU1RBRElBX0ZGIGlzIG5vdCBzZXQKQ09O
RklHX0hJRF9WSVZBTERJPXkKQ09ORklHX0hJRF9HVDY4M1I9eQojIENPTkZJR19ISURfS0VZ
VE9VQ0ggaXMgbm90IHNldApDT05GSUdfSElEX0tZRT15CiMgQ09ORklHX0hJRF9VQ0xPR0lD
IGlzIG5vdCBzZXQKQ09ORklHX0hJRF9XQUxUT1A9eQpDT05GSUdfSElEX1ZJRVdTT05JQz15
CiMgQ09ORklHX0hJRF9WUkMyIGlzIG5vdCBzZXQKQ09ORklHX0hJRF9YSUFPTUk9eQpDT05G
SUdfSElEX0dZUkFUSU9OPXkKIyBDT05GSUdfSElEX0lDQURFIGlzIG5vdCBzZXQKIyBDT05G
SUdfSElEX0lURSBpcyBub3Qgc2V0CiMgQ09ORklHX0hJRF9KQUJSQSBpcyBub3Qgc2V0CkNP
TkZJR19ISURfVFdJTkhBTj15CiMgQ09ORklHX0hJRF9LRU5TSU5HVE9OIGlzIG5vdCBzZXQK
Q09ORklHX0hJRF9MQ1BPV0VSPXkKQ09ORklHX0hJRF9MRUQ9eQpDT05GSUdfSElEX0xFTk9W
Tz15CiMgQ09ORklHX0hJRF9MRVRTS0VUQ0ggaXMgbm90IHNldApDT05GSUdfSElEX0xPR0lU
RUNIPXkKQ09ORklHX0hJRF9MT0dJVEVDSF9ISURQUD15CiMgQ09ORklHX0xPR0lURUNIX0ZG
IGlzIG5vdCBzZXQKQ09ORklHX0xPR0lSVU1CTEVQQUQyX0ZGPXkKQ09ORklHX0xPR0lHOTQw
X0ZGPXkKIyBDT05GSUdfTE9HSVdIRUVMU19GRiBpcyBub3Qgc2V0CiMgQ09ORklHX0hJRF9N
QUdJQ01PVVNFIGlzIG5vdCBzZXQKQ09ORklHX0hJRF9NQUxUUk9OPXkKQ09ORklHX0hJRF9N
QVlGTEFTSD15CkNPTkZJR19ISURfTUVHQVdPUkxEX0ZGPXkKIyBDT05GSUdfSElEX1JFRFJB
R09OIGlzIG5vdCBzZXQKQ09ORklHX0hJRF9NSUNST1NPRlQ9eQojIENPTkZJR19ISURfTU9O
VEVSRVkgaXMgbm90IHNldAojIENPTkZJR19ISURfTVVMVElUT1VDSCBpcyBub3Qgc2V0CiMg
Q09ORklHX0hJRF9OSU5URU5ETyBpcyBub3Qgc2V0CiMgQ09ORklHX0hJRF9OVEkgaXMgbm90
IHNldAojIENPTkZJR19ISURfTlRSSUcgaXMgbm90IHNldApDT05GSUdfSElEX09SVEVLPXkK
Q09ORklHX0hJRF9QQU5USEVSTE9SRD15CkNPTkZJR19QQU5USEVSTE9SRF9GRj15CiMgQ09O
RklHX0hJRF9QRU5NT1VOVCBpcyBub3Qgc2V0CkNPTkZJR19ISURfUEVUQUxZTlg9eQpDT05G
SUdfSElEX1BJQ09MQ0Q9eQpDT05GSUdfSElEX1BJQ09MQ0RfRkI9eQpDT05GSUdfSElEX1BJ
Q09MQ0RfQkFDS0xJR0hUPXkKQ09ORklHX0hJRF9QSUNPTENEX0xDRD15CkNPTkZJR19ISURf
UElDT0xDRF9MRURTPXkKQ09ORklHX0hJRF9QSUNPTENEX0NJUj15CkNPTkZJR19ISURfUExB
TlRST05JQ1M9eQpDT05GSUdfSElEX1BMQVlTVEFUSU9OPXkKQ09ORklHX1BMQVlTVEFUSU9O
X0ZGPXkKQ09ORklHX0hJRF9QWFJDPXkKQ09ORklHX0hJRF9SQVpFUj15CkNPTkZJR19ISURf
UFJJTUFYPXkKIyBDT05GSUdfSElEX1JFVFJPREUgaXMgbm90IHNldApDT05GSUdfSElEX1JP
Q0NBVD15CkNPTkZJR19ISURfU0FJVEVLPXkKQ09ORklHX0hJRF9TQU1TVU5HPXkKQ09ORklH
X0hJRF9TRU1JVEVLPXkKIyBDT05GSUdfSElEX1NJR01BTUlDUk8gaXMgbm90IHNldApDT05G
SUdfSElEX1NPTlk9eQojIENPTkZJR19TT05ZX0ZGIGlzIG5vdCBzZXQKQ09ORklHX0hJRF9T
UEVFRExJTks9eQpDT05GSUdfSElEX1NURUFNPXkKIyBDT05GSUdfU1RFQU1fRkYgaXMgbm90
IHNldApDT05GSUdfSElEX1NURUVMU0VSSUVTPXkKQ09ORklHX0hJRF9TVU5QTFVTPXkKQ09O
RklHX0hJRF9STUk9eQpDT05GSUdfSElEX0dSRUVOQVNJQT15CiMgQ09ORklHX0dSRUVOQVNJ
QV9GRiBpcyBub3Qgc2V0CiMgQ09ORklHX0hJRF9TTUFSVEpPWVBMVVMgaXMgbm90IHNldAoj
IENPTkZJR19ISURfVElWTyBpcyBub3Qgc2V0CkNPTkZJR19ISURfVE9QU0VFRD15CkNPTkZJ
R19ISURfVE9QUkU9eQpDT05GSUdfSElEX1RISU5HTT15CiMgQ09ORklHX0hJRF9USFJVU1RN
QVNURVIgaXMgbm90IHNldAojIENPTkZJR19ISURfVURSQVdfUFMzIGlzIG5vdCBzZXQKQ09O
RklHX0hJRF9XQUNPTT15CkNPTkZJR19ISURfV0lJTU9URT15CiMgQ09ORklHX0hJRF9XSU5X
SU5HIGlzIG5vdCBzZXQKQ09ORklHX0hJRF9YSU5NTz15CkNPTkZJR19ISURfWkVST1BMVVM9
eQpDT05GSUdfWkVST1BMVVNfRkY9eQpDT05GSUdfSElEX1pZREFDUk9OPXkKQ09ORklHX0hJ
RF9TRU5TT1JfSFVCPXkKQ09ORklHX0hJRF9TRU5TT1JfQ1VTVE9NX1NFTlNPUj15CkNPTkZJ
R19ISURfQUxQUz15CkNPTkZJR19ISURfTUNQMjIwMD15CkNPTkZJR19ISURfTUNQMjIyMT15
CiMgZW5kIG9mIFNwZWNpYWwgSElEIGRyaXZlcnMKCiMKIyBISUQtQlBGIHN1cHBvcnQKIwoj
IGVuZCBvZiBISUQtQlBGIHN1cHBvcnQKCiMKIyBVU0IgSElEIHN1cHBvcnQKIwpDT05GSUdf
VVNCX0hJRD15CiMgQ09ORklHX0hJRF9QSUQgaXMgbm90IHNldApDT05GSUdfVVNCX0hJRERF
Vj15CiMgZW5kIG9mIFVTQiBISUQgc3VwcG9ydAoKIyBDT05GSUdfSTJDX0hJRCBpcyBub3Qg
c2V0CkNPTkZJR19VU0JfT0hDSV9MSVRUTEVfRU5ESUFOPXkKQ09ORklHX1VTQl9TVVBQT1JU
PXkKQ09ORklHX1VTQl9DT01NT049eQojIENPTkZJR19VU0JfTEVEX1RSSUcgaXMgbm90IHNl
dApDT05GSUdfVVNCX1VMUElfQlVTPXkKQ09ORklHX1VTQl9DT05OX0dQSU89eQpDT05GSUdf
VVNCX0FSQ0hfSEFTX0hDRD15CkNPTkZJR19VU0I9eQpDT05GSUdfVVNCX0FOTk9VTkNFX05F
V19ERVZJQ0VTPXkKCiMKIyBNaXNjZWxsYW5lb3VzIFVTQiBvcHRpb25zCiMKIyBDT05GSUdf
VVNCX0RFRkFVTFRfUEVSU0lTVCBpcyBub3Qgc2V0CkNPTkZJR19VU0JfRkVXX0lOSVRfUkVU
UklFUz15CkNPTkZJR19VU0JfRFlOQU1JQ19NSU5PUlM9eQpDT05GSUdfVVNCX09URz15CiMg
Q09ORklHX1VTQl9PVEdfUFJPRFVDVExJU1QgaXMgbm90IHNldAojIENPTkZJR19VU0JfT1RH
X0RJU0FCTEVfRVhURVJOQUxfSFVCIGlzIG5vdCBzZXQKIyBDT05GSUdfVVNCX09UR19GU00g
aXMgbm90IHNldApDT05GSUdfVVNCX0xFRFNfVFJJR0dFUl9VU0JQT1JUPXkKQ09ORklHX1VT
Ql9BVVRPU1VTUEVORF9ERUxBWT0yCkNPTkZJR19VU0JfREVGQVVMVF9BVVRIT1JJWkFUSU9O
X01PREU9MQojIENPTkZJR19VU0JfTU9OIGlzIG5vdCBzZXQKCiMKIyBVU0IgSG9zdCBDb250
cm9sbGVyIERyaXZlcnMKIwpDT05GSUdfVVNCX0M2N1gwMF9IQ0Q9eQojIENPTkZJR19VU0Jf
WEhDSV9IQ0QgaXMgbm90IHNldApDT05GSUdfVVNCX0VIQ0lfSENEPXkKQ09ORklHX1VTQl9F
SENJX1JPT1RfSFVCX1RUPXkKIyBDT05GSUdfVVNCX0VIQ0lfVFRfTkVXU0NIRUQgaXMgbm90
IHNldApDT05GSUdfVVNCX0VIQ0lfRlNMPXkKQ09ORklHX1VTQl9FSENJX0hDRF9QTEFURk9S
TT15CkNPTkZJR19VU0JfT1hVMjEwSFBfSENEPXkKQ09ORklHX1VTQl9JU1AxMTZYX0hDRD15
CiMgQ09ORklHX1VTQl9NQVgzNDIxX0hDRCBpcyBub3Qgc2V0CkNPTkZJR19VU0JfT0hDSV9I
Q0Q9eQpDT05GSUdfVVNCX09IQ0lfSENEX1NTQj15CkNPTkZJR19VU0JfT0hDSV9IQ0RfUExB
VEZPUk09eQpDT05GSUdfVVNCX1NMODExX0hDRD15CkNPTkZJR19VU0JfU0w4MTFfSENEX0lT
Tz15CiMgQ09ORklHX1VTQl9TTDgxMV9DUyBpcyBub3Qgc2V0CiMgQ09ORklHX1VTQl9SOEE2
NjU5N19IQ0QgaXMgbm90IHNldApDT05GSUdfVVNCX0hDRF9CQ01BPXkKQ09ORklHX1VTQl9I
Q0RfU1NCPXkKQ09ORklHX1VTQl9IQ0RfVEVTVF9NT0RFPXkKCiMKIyBVU0IgRGV2aWNlIENs
YXNzIGRyaXZlcnMKIwpDT05GSUdfVVNCX0FDTT15CkNPTkZJR19VU0JfUFJJTlRFUj15CkNP
TkZJR19VU0JfV0RNPXkKQ09ORklHX1VTQl9UTUM9eQoKIwojIE5PVEU6IFVTQl9TVE9SQUdF
IGRlcGVuZHMgb24gU0NTSSBidXQgQkxLX0RFVl9TRCBtYXkKIwoKIwojIGFsc28gYmUgbmVl
ZGVkOyBzZWUgVVNCX1NUT1JBR0UgSGVscCBmb3IgbW9yZSBpbmZvCiMKCiMKIyBVU0IgSW1h
Z2luZyBkZXZpY2VzCiMKQ09ORklHX1VTQl9NREM4MDA9eQpDT05GSUdfVVNCSVBfQ09SRT15
CiMgQ09ORklHX1VTQklQX1ZIQ0lfSENEIGlzIG5vdCBzZXQKIyBDT05GSUdfVVNCSVBfSE9T
VCBpcyBub3Qgc2V0CiMgQ09ORklHX1VTQklQX0RFQlVHIGlzIG5vdCBzZXQKCiMKIyBVU0Ig
ZHVhbC1tb2RlIGNvbnRyb2xsZXIgZHJpdmVycwojCiMgQ09ORklHX1VTQl9DRE5TX1NVUFBP
UlQgaXMgbm90IHNldApDT05GSUdfVVNCX01VU0JfSERSQz15CkNPTkZJR19VU0JfTVVTQl9I
T1NUPXkKCiMKIyBQbGF0Zm9ybSBHbHVlIExheWVyCiMKCiMKIyBNVVNCIERNQSBtb2RlCiMK
IyBDT05GSUdfTVVTQl9QSU9fT05MWSBpcyBub3Qgc2V0CkNPTkZJR19VU0JfRFdDMz15CkNP
TkZJR19VU0JfRFdDM19VTFBJPXkKQ09ORklHX1VTQl9EV0MzX0hPU1Q9eQoKIwojIFBsYXRm
b3JtIEdsdWUgRHJpdmVyIFN1cHBvcnQKIwpDT05GSUdfVVNCX0RXQzNfT0ZfU0lNUExFPXkK
Q09ORklHX1VTQl9EV0MyPXkKQ09ORklHX1VTQl9EV0MyX0hPU1Q9eQoKIwojIEdhZGdldC9E
dWFsLXJvbGUgbW9kZSByZXF1aXJlcyBVU0IgR2FkZ2V0IHN1cHBvcnQgdG8gYmUgZW5hYmxl
ZAojCkNPTkZJR19VU0JfRFdDMl9ERUJVRz15CiMgQ09ORklHX1VTQl9EV0MyX1ZFUkJPU0Ug
aXMgbm90IHNldAojIENPTkZJR19VU0JfRFdDMl9UUkFDS19NSVNTRURfU09GUyBpcyBub3Qg
c2V0CiMgQ09ORklHX1VTQl9EV0MyX0RFQlVHX1BFUklPRElDIGlzIG5vdCBzZXQKQ09ORklH
X1VTQl9DSElQSURFQT15CkNPTkZJR19VU0JfQ0hJUElERUFfSE9TVD15CkNPTkZJR19VU0Jf
Q0hJUElERUFfTVNNPXkKQ09ORklHX1VTQl9DSElQSURFQV9OUENNPXkKQ09ORklHX1VTQl9D
SElQSURFQV9JTVg9eQpDT05GSUdfVVNCX0NISVBJREVBX0dFTkVSSUM9eQpDT05GSUdfVVNC
X0NISVBJREVBX1RFR1JBPXkKQ09ORklHX1VTQl9JU1AxNzYwPXkKQ09ORklHX1VTQl9JU1Ax
NzYwX0hDRD15CkNPTkZJR19VU0JfSVNQMTc2MF9IT1NUX1JPTEU9eQoKIwojIFVTQiBwb3J0
IGRyaXZlcnMKIwojIENPTkZJR19VU0JfU0VSSUFMIGlzIG5vdCBzZXQKCiMKIyBVU0IgTWlz
Y2VsbGFuZW91cyBkcml2ZXJzCiMKQ09ORklHX1VTQl9VU1M3MjA9eQpDT05GSUdfVVNCX0VN
STYyPXkKQ09ORklHX1VTQl9FTUkyNj15CkNPTkZJR19VU0JfQURVVFVYPXkKQ09ORklHX1VT
Ql9TRVZTRUc9eQpDT05GSUdfVVNCX0xFR09UT1dFUj15CiMgQ09ORklHX1VTQl9MQ0QgaXMg
bm90IHNldApDT05GSUdfVVNCX0NZUFJFU1NfQ1k3QzYzPXkKIyBDT05GSUdfVVNCX0NZVEhF
Uk0gaXMgbm90IHNldApDT05GSUdfVVNCX0lETU9VU0U9eQpDT05GSUdfVVNCX0FQUExFRElT
UExBWT15CkNPTkZJR19BUFBMRV9NRklfRkFTVENIQVJHRT15CkNPTkZJR19VU0JfU0lTVVNC
VkdBPXkKIyBDT05GSUdfVVNCX0xEIGlzIG5vdCBzZXQKQ09ORklHX1VTQl9UUkFOQ0VWSUJS
QVRPUj15CiMgQ09ORklHX1VTQl9JT1dBUlJJT1IgaXMgbm90IHNldAojIENPTkZJR19VU0Jf
VEVTVCBpcyBub3Qgc2V0CkNPTkZJR19VU0JfRUhTRVRfVEVTVF9GSVhUVVJFPXkKQ09ORklH
X1VTQl9JU0lHSFRGVz15CkNPTkZJR19VU0JfWVVSRVg9eQpDT05GSUdfVVNCX0VaVVNCX0ZY
Mj15CkNPTkZJR19VU0JfSFVCX1VTQjI1MVhCPXkKQ09ORklHX1VTQl9IU0lDX1VTQjM1MDM9
eQpDT05GSUdfVVNCX0hTSUNfVVNCNDYwND15CiMgQ09ORklHX1VTQl9MSU5LX0xBWUVSX1RF
U1QgaXMgbm90IHNldApDT05GSUdfVVNCX09OQk9BUkRfREVWPXkKQ09ORklHX1VTQl9BVE09
eQojIENPTkZJR19VU0JfU1BFRURUT1VDSCBpcyBub3Qgc2V0CiMgQ09ORklHX1VTQl9DWEFD
UlUgaXMgbm90IHNldApDT05GSUdfVVNCX1VFQUdMRUFUTT15CkNPTkZJR19VU0JfWFVTQkFU
TT15CgojCiMgVVNCIFBoeXNpY2FsIExheWVyIGRyaXZlcnMKIwpDT05GSUdfVVNCX1BIWT15
CkNPTkZJR19OT1BfVVNCX1hDRUlWPXkKQ09ORklHX1RBSFZPX1VTQj15CkNPTkZJR19UQUhW
T19VU0JfSE9TVF9CWV9ERUZBVUxUPXkKQ09ORklHX1VTQl9JU1AxMzAxPXkKIyBlbmQgb2Yg
VVNCIFBoeXNpY2FsIExheWVyIGRyaXZlcnMKCiMgQ09ORklHX1VTQl9HQURHRVQgaXMgbm90
IHNldApDT05GSUdfVFlQRUM9eQpDT05GSUdfVFlQRUNfVENQTT15CiMgQ09ORklHX1RZUEVD
X1RDUENJIGlzIG5vdCBzZXQKQ09ORklHX1RZUEVDX0ZVU0IzMDI9eQpDT05GSUdfVFlQRUNf
VUNTST15CiMgQ09ORklHX1VDU0lfQ0NHIGlzIG5vdCBzZXQKQ09ORklHX1VDU0lfU1RNMzJH
MD15CkNPTkZJR19VQ1NJX1BNSUNfR0xJTks9eQojIENPTkZJR19UWVBFQ19UUFM2NTk4WCBp
cyBub3Qgc2V0CkNPTkZJR19UWVBFQ19BTlg3NDExPXkKQ09ORklHX1RZUEVDX1JUMTcxOT15
CkNPTkZJR19UWVBFQ19IRDNTUzMyMjA9eQpDT05GSUdfVFlQRUNfU1RVU0IxNjBYPXkKIyBD
T05GSUdfVFlQRUNfV1VTQjM4MDEgaXMgbm90IHNldAoKIwojIFVTQiBUeXBlLUMgTXVsdGlw
bGV4ZXIvRGVNdWx0aXBsZXhlciBTd2l0Y2ggc3VwcG9ydAojCiMgQ09ORklHX1RZUEVDX01V
WF9GU0E0NDgwIGlzIG5vdCBzZXQKQ09ORklHX1RZUEVDX01VWF9HUElPX1NCVT15CkNPTkZJ
R19UWVBFQ19NVVhfUEkzVVNCMzA1MzI9eQpDT05GSUdfVFlQRUNfTVVYX0lUNTIwNT15CiMg
Q09ORklHX1RZUEVDX01VWF9OQjdWUFE5MDRNIGlzIG5vdCBzZXQKIyBDT05GSUdfVFlQRUNf
TVVYX1BUTjM2NTAyIGlzIG5vdCBzZXQKQ09ORklHX1RZUEVDX01VWF9XQ0Q5MzlYX1VTQlNT
PXkKIyBlbmQgb2YgVVNCIFR5cGUtQyBNdWx0aXBsZXhlci9EZU11bHRpcGxleGVyIFN3aXRj
aCBzdXBwb3J0CgojCiMgVVNCIFR5cGUtQyBBbHRlcm5hdGUgTW9kZSBkcml2ZXJzCiMKQ09O
RklHX1RZUEVDX0RQX0FMVE1PREU9eQpDT05GSUdfVFlQRUNfTlZJRElBX0FMVE1PREU9eQoj
IGVuZCBvZiBVU0IgVHlwZS1DIEFsdGVybmF0ZSBNb2RlIGRyaXZlcnMKCkNPTkZJR19VU0Jf
Uk9MRV9TV0lUQ0g9eQpDT05GSUdfTU1DPXkKQ09ORklHX1BXUlNFUV9FTU1DPXkKIyBDT05G
SUdfUFdSU0VRX1NJTVBMRSBpcyBub3Qgc2V0CkNPTkZJR19NTUNfQkxPQ0s9eQpDT05GSUdf
TU1DX0JMT0NLX01JTk9SUz04CiMgQ09ORklHX1NESU9fVUFSVCBpcyBub3Qgc2V0CiMgQ09O
RklHX01NQ19URVNUIGlzIG5vdCBzZXQKCiMKIyBNTUMvU0QvU0RJTyBIb3N0IENvbnRyb2xs
ZXIgRHJpdmVycwojCiMgQ09ORklHX01NQ19ERUJVRyBpcyBub3Qgc2V0CkNPTkZJR19NTUNf
U0RIQ0k9eQojIENPTkZJR19NTUNfU0RIQ0lfUExURk0gaXMgbm90IHNldApDT05GSUdfTU1D
X1dCU0Q9eQpDT05GSUdfTU1DX1NQST15CkNPTkZJR19NTUNfVlVCMzAwPXkKQ09ORklHX01N
Q19VU0hDPXkKQ09ORklHX01NQ19VU0RISTZST0wwPXkKIyBDT05GSUdfTU1DX1JFQUxURUtf
VVNCIGlzIG5vdCBzZXQKQ09ORklHX01NQ19DUUhDST15CiMgQ09ORklHX01NQ19IU1EgaXMg
bm90IHNldApDT05GSUdfTU1DX01USz15CkNPTkZJR19NRU1TVElDSz15CiMgQ09ORklHX01F
TVNUSUNLX0RFQlVHIGlzIG5vdCBzZXQKCiMKIyBNZW1vcnlTdGljayBkcml2ZXJzCiMKQ09O
RklHX01FTVNUSUNLX1VOU0FGRV9SRVNVTUU9eQpDT05GSUdfTVNQUk9fQkxPQ0s9eQojIENP
TkZJR19NU19CTE9DSyBpcyBub3Qgc2V0CgojCiMgTWVtb3J5U3RpY2sgSG9zdCBDb250cm9s
bGVyIERyaXZlcnMKIwpDT05GSUdfTUVNU1RJQ0tfUkVBTFRFS19VU0I9eQpDT05GSUdfTEVE
U19FWFBSRVNTV0lSRT15CkNPTkZJR19ORVdfTEVEUz15CkNPTkZJR19MRURTX0NMQVNTPXkK
Q09ORklHX0xFRFNfQ0xBU1NfRkxBU0g9eQpDT05GSUdfTEVEU19DTEFTU19NVUxUSUNPTE9S
PXkKQ09ORklHX0xFRFNfQlJJR0hUTkVTU19IV19DSEFOR0VEPXkKCiMKIyBMRUQgZHJpdmVy
cwojCkNPTkZJR19MRURTXzg4UE04NjBYPXkKQ09ORklHX0xFRFNfQU4zMDI1OUE9eQpDT05G
SUdfTEVEU19BUFU9eQpDT05GSUdfTEVEU19BVzIwMFhYPXkKQ09ORklHX0xFRFNfQVcyMDEz
PXkKQ09ORklHX0xFRFNfQkNNNjMyOD15CkNPTkZJR19MRURTX0JDTTYzNTg9eQpDT05GSUdf
TEVEU19DUENBUD15CkNPTkZJR19MRURTX0NSMDAxNDExND15CiMgQ09ORklHX0xFRFNfRUwx
NTIwMzAwMCBpcyBub3Qgc2V0CiMgQ09ORklHX0xFRFNfTE0zNTMwIGlzIG5vdCBzZXQKQ09O
RklHX0xFRFNfTE0zNTMyPXkKIyBDT05GSUdfTEVEU19MTTM1MzMgaXMgbm90IHNldApDT05G
SUdfTEVEU19MTTM2NDI9eQpDT05GSUdfTEVEU19MTTM2OTJYPXkKQ09ORklHX0xFRFNfTkVU
NDhYWD15CkNPTkZJR19MRURTX1dSQVA9eQojIENPTkZJR19MRURTX1BDQTk1MzIgaXMgbm90
IHNldAojIENPTkZJR19MRURTX0dQSU8gaXMgbm90IHNldAojIENPTkZJR19MRURTX0xQMzk0
NCBpcyBub3Qgc2V0CkNPTkZJR19MRURTX0xQMzk1Mj15CkNPTkZJR19MRURTX0xQNTBYWD15
CkNPTkZJR19MRURTX0xQNTVYWF9DT01NT049eQojIENPTkZJR19MRURTX0xQNTUyMSBpcyBu
b3Qgc2V0CiMgQ09ORklHX0xFRFNfTFA1NTIzIGlzIG5vdCBzZXQKQ09ORklHX0xFRFNfTFA1
NTYyPXkKQ09ORklHX0xFRFNfTFA4NTAxPXkKQ09ORklHX0xFRFNfTFA4Nzg4PXkKQ09ORklH
X0xFRFNfTFA4ODYwPXkKQ09ORklHX0xFRFNfUENBOTU1WD15CiMgQ09ORklHX0xFRFNfUENB
OTU1WF9HUElPIGlzIG5vdCBzZXQKQ09ORklHX0xFRFNfUENBOTYzWD15CkNPTkZJR19MRURT
X1BDQTk5NVg9eQpDT05GSUdfTEVEU19XTTgzMVhfU1RBVFVTPXkKIyBDT05GSUdfTEVEU19E
QTkwNTIgaXMgbm90IHNldApDT05GSUdfTEVEU19EQUMxMjRTMDg1PXkKQ09ORklHX0xFRFNf
UFdNPXkKIyBDT05GSUdfTEVEU19SRUdVTEFUT1IgaXMgbm90IHNldApDT05GSUdfTEVEU19C
RDI2MDZNVlY9eQojIENPTkZJR19MRURTX0JEMjgwMiBpcyBub3Qgc2V0CiMgQ09ORklHX0xF
RFNfTFQzNTkzIGlzIG5vdCBzZXQKQ09ORklHX0xFRFNfTUMxMzc4Mz15CkNPTkZJR19MRURT
X1RDQTY1MDc9eQpDT05GSUdfTEVEU19UTEM1OTFYWD15CkNPTkZJR19MRURTX01BWDc3NjUw
PXkKIyBDT05GSUdfTEVEU19MTTM1NXggaXMgbm90IHNldAojIENPTkZJR19MRURTX09UMjAw
IGlzIG5vdCBzZXQKQ09ORklHX0xFRFNfTUVORjIxQk1DPXkKIyBDT05GSUdfTEVEU19JUzMx
RkwzMTlYIGlzIG5vdCBzZXQKQ09ORklHX0xFRFNfSVMzMUZMMzJYWD15CgojCiMgTEVEIGRy
aXZlciBmb3IgYmxpbmsoMSkgVVNCIFJHQiBMRUQgaXMgdW5kZXIgU3BlY2lhbCBISUQgZHJp
dmVycyAoSElEX1RISU5HTSkKIwojIENPTkZJR19MRURTX0JMSU5LTSBpcyBub3Qgc2V0CiMg
Q09ORklHX0xFRFNfU1lTQ09OIGlzIG5vdCBzZXQKIyBDT05GSUdfTEVEU19NTFhDUExEIGlz
IG5vdCBzZXQKQ09ORklHX0xFRFNfTUxYUkVHPXkKQ09ORklHX0xFRFNfVVNFUj15CiMgQ09O
RklHX0xFRFNfU1BJX0JZVEUgaXMgbm90IHNldApDT05GSUdfTEVEU19USV9MTVVfQ09NTU9O
PXkKQ09ORklHX0xFRFNfTE0zNjk3PXkKQ09ORklHX0xFRFNfTE0zNjI3ND15CkNPTkZJR19M
RURTX1RQUzYxMDVYPXkKIyBDT05GSUdfTEVEU19MR00gaXMgbm90IHNldAoKIwojIEZsYXNo
IGFuZCBUb3JjaCBMRUQgZHJpdmVycwojCkNPTkZJR19MRURTX0FBVDEyOTA9eQojIENPTkZJ
R19MRURTX0FTMzY0NUEgaXMgbm90IHNldApDT05GSUdfTEVEU19LVEQyNjkyPXkKIyBDT05G
SUdfTEVEU19MTTM2MDFYIGlzIG5vdCBzZXQKQ09ORklHX0xFRFNfTUFYNzc2OTM9eQojIENP
TkZJR19MRURTX1JUNDUwNSBpcyBub3Qgc2V0CkNPTkZJR19MRURTX1JUODUxNT15CkNPTkZJ
R19MRURTX1NHTTMxNDA9eQoKIwojIFJHQiBMRUQgZHJpdmVycwojCkNPTkZJR19MRURTX0dS
T1VQX01VTFRJQ09MT1I9eQpDT05GSUdfTEVEU19LVEQyMDJYPXkKQ09ORklHX0xFRFNfTkNQ
NTYyMz15CkNPTkZJR19MRURTX1BXTV9NVUxUSUNPTE9SPXkKCiMKIyBMRUQgVHJpZ2dlcnMK
IwpDT05GSUdfTEVEU19UUklHR0VSUz15CiMgQ09ORklHX0xFRFNfVFJJR0dFUl9USU1FUiBp
cyBub3Qgc2V0CkNPTkZJR19MRURTX1RSSUdHRVJfT05FU0hPVD15CkNPTkZJR19MRURTX1RS
SUdHRVJfTVREPXkKIyBDT05GSUdfTEVEU19UUklHR0VSX0hFQVJUQkVBVCBpcyBub3Qgc2V0
CiMgQ09ORklHX0xFRFNfVFJJR0dFUl9CQUNLTElHSFQgaXMgbm90IHNldAojIENPTkZJR19M
RURTX1RSSUdHRVJfQ1BVIGlzIG5vdCBzZXQKQ09ORklHX0xFRFNfVFJJR0dFUl9BQ1RJVklU
WT15CiMgQ09ORklHX0xFRFNfVFJJR0dFUl9HUElPIGlzIG5vdCBzZXQKQ09ORklHX0xFRFNf
VFJJR0dFUl9ERUZBVUxUX09OPXkKCiMKIyBpcHRhYmxlcyB0cmlnZ2VyIGlzIHVuZGVyIE5l
dGZpbHRlciBjb25maWcgKExFRCB0YXJnZXQpCiMKQ09ORklHX0xFRFNfVFJJR0dFUl9UUkFO
U0lFTlQ9eQojIENPTkZJR19MRURTX1RSSUdHRVJfQ0FNRVJBIGlzIG5vdCBzZXQKQ09ORklH
X0xFRFNfVFJJR0dFUl9QQU5JQz15CiMgQ09ORklHX0xFRFNfVFJJR0dFUl9ORVRERVYgaXMg
bm90IHNldAojIENPTkZJR19MRURTX1RSSUdHRVJfUEFUVEVSTiBpcyBub3Qgc2V0CiMgQ09O
RklHX0xFRFNfVFJJR0dFUl9UVFkgaXMgbm90IHNldAoKIwojIFNpbXBsZSBMRUQgZHJpdmVy
cwojCkNPTkZJR19BQ0NFU1NJQklMSVRZPXkKQ09ORklHX0ExMVlfQlJBSUxMRV9DT05TT0xF
PXkKCiMKIyBTcGVha3VwIGNvbnNvbGUgc3BlZWNoCiMKQ09ORklHX1NQRUFLVVA9eQpDT05G
SUdfU1BFQUtVUF9TWU5USF9BQ05UU0E9eQpDT05GSUdfU1BFQUtVUF9TWU5USF9BUE9MTE89
eQpDT05GSUdfU1BFQUtVUF9TWU5USF9BVURQVFI9eQpDT05GSUdfU1BFQUtVUF9TWU5USF9C
TlM9eQpDT05GSUdfU1BFQUtVUF9TWU5USF9ERUNUTEs9eQpDT05GSUdfU1BFQUtVUF9TWU5U
SF9ERUNFWFQ9eQpDT05GSUdfU1BFQUtVUF9TWU5USF9MVExLPXkKQ09ORklHX1NQRUFLVVBf
U1lOVEhfU09GVD15CiMgQ09ORklHX1NQRUFLVVBfU1lOVEhfU1BLT1VUIGlzIG5vdCBzZXQK
Q09ORklHX1NQRUFLVVBfU1lOVEhfVFhQUlQ9eQpDT05GSUdfU1BFQUtVUF9TWU5USF9EVU1N
WT15CiMgZW5kIG9mIFNwZWFrdXAgY29uc29sZSBzcGVlY2gKCkNPTkZJR19FREFDX0FUT01J
Q19TQ1JVQj15CkNPTkZJR19FREFDX1NVUFBPUlQ9eQpDT05GSUdfUlRDX0xJQj15CkNPTkZJ
R19SVENfTUMxNDY4MThfTElCPXkKIyBDT05GSUdfUlRDX0NMQVNTIGlzIG5vdCBzZXQKQ09O
RklHX0RNQURFVklDRVM9eQpDT05GSUdfRE1BREVWSUNFU19ERUJVRz15CkNPTkZJR19ETUFE
RVZJQ0VTX1ZERUJVRz15CgojCiMgRE1BIERldmljZXMKIwpDT05GSUdfRE1BX0VOR0lORT15
CkNPTkZJR19ETUFfVklSVFVBTF9DSEFOTkVMUz15CkNPTkZJR19ETUFfT0Y9eQojIENPTkZJ
R19BTFRFUkFfTVNHRE1BIGlzIG5vdCBzZXQKQ09ORklHX0RXX0FYSV9ETUFDPXkKQ09ORklH
X0ZTTF9FRE1BPXkKIyBDT05GSUdfSU5URUxfSURNQTY0IGlzIG5vdCBzZXQKQ09ORklHX1hJ
TElOWF9ETUE9eQojIENPTkZJR19YSUxJTlhfWERNQSBpcyBub3Qgc2V0CiMgQ09ORklHX1hJ
TElOWF9aWU5RTVBfRFBETUEgaXMgbm90IHNldApDT05GSUdfUUNPTV9ISURNQV9NR01UPXkK
IyBDT05GSUdfUUNPTV9ISURNQSBpcyBub3Qgc2V0CkNPTkZJR19EV19ETUFDX0NPUkU9eQpD
T05GSUdfRFdfRE1BQz15CkNPTkZJR19TRl9QRE1BPXkKQ09ORklHX0lOVEVMX0xETUE9eQoK
IwojIERNQSBDbGllbnRzCiMKIyBDT05GSUdfQVNZTkNfVFhfRE1BIGlzIG5vdCBzZXQKIyBD
T05GSUdfRE1BVEVTVCBpcyBub3Qgc2V0CgojCiMgRE1BQlVGIG9wdGlvbnMKIwpDT05GSUdf
U1lOQ19GSUxFPXkKQ09ORklHX1NXX1NZTkM9eQpDT05GSUdfVURNQUJVRj15CiMgQ09ORklH
X0RNQUJVRl9NT1ZFX05PVElGWSBpcyBub3Qgc2V0CiMgQ09ORklHX0RNQUJVRl9ERUJVRyBp
cyBub3Qgc2V0CiMgQ09ORklHX0RNQUJVRl9TRUxGVEVTVFMgaXMgbm90IHNldAojIENPTkZJ
R19ETUFCVUZfSEVBUFMgaXMgbm90IHNldApDT05GSUdfRE1BQlVGX1NZU0ZTX1NUQVRTPXkK
IyBlbmQgb2YgRE1BQlVGIG9wdGlvbnMKCkNPTkZJR19VSU89eQpDT05GSUdfVUlPX1BEUlZf
R0VOSVJRPXkKQ09ORklHX1VJT19ETUVNX0dFTklSUT15CiMgQ09ORklHX1ZGSU8gaXMgbm90
IHNldApDT05GSUdfVklSVF9EUklWRVJTPXkKIyBDT05GSUdfVk1HRU5JRCBpcyBub3Qgc2V0
CkNPTkZJR19WSVJUSU9fQU5DSE9SPXkKQ09ORklHX1ZJUlRJTz15CkNPTkZJR19WSVJUSU9f
TUVOVT15CkNPTkZJR19WSVJUSU9fVkRQQT15CkNPTkZJR19WSVJUSU9fQkFMTE9PTj15CkNP
TkZJR19WSVJUSU9fSU5QVVQ9eQpDT05GSUdfVklSVElPX01NSU89eQpDT05GSUdfVklSVElP
X01NSU9fQ01ETElORV9ERVZJQ0VTPXkKIyBDT05GSUdfVklSVElPX0RFQlVHIGlzIG5vdCBz
ZXQKQ09ORklHX1ZEUEE9eQojIENPTkZJR19WRFBBX1NJTSBpcyBub3Qgc2V0CkNPTkZJR19W
RFBBX1VTRVI9eQojIENPTkZJR19NTFg1X1ZEUEFfU1RFRVJJTkdfREVCVUcgaXMgbm90IHNl
dApDT05GSUdfVkhPU1RfSU9UTEI9eQpDT05GSUdfVkhPU1RfUklORz15CiMgQ09ORklHX1ZI
T1NUX01FTlUgaXMgbm90IHNldAoKIwojIE1pY3Jvc29mdCBIeXBlci1WIGd1ZXN0IHN1cHBv
cnQKIwojIGVuZCBvZiBNaWNyb3NvZnQgSHlwZXItViBndWVzdCBzdXBwb3J0CgpDT05GSUdf
R1JFWUJVUz15CkNPTkZJR19HUkVZQlVTX0VTMj15CkNPTkZJR19DT01FREk9eQojIENPTkZJ
R19DT01FRElfREVCVUcgaXMgbm90IHNldApDT05GSUdfQ09NRURJX0RFRkFVTFRfQlVGX1NJ
WkVfS0I9MjA0OApDT05GSUdfQ09NRURJX0RFRkFVTFRfQlVGX01BWFNJWkVfS0I9MjA0ODAK
IyBDT05GSUdfQ09NRURJX01JU0NfRFJJVkVSUyBpcyBub3Qgc2V0CiMgQ09ORklHX0NPTUVE
SV9QQ01DSUFfRFJJVkVSUyBpcyBub3Qgc2V0CkNPTkZJR19DT01FRElfVVNCX0RSSVZFUlM9
eQojIENPTkZJR19DT01FRElfRFQ5ODEyIGlzIG5vdCBzZXQKQ09ORklHX0NPTUVESV9OSV9V
U0I2NTAxPXkKIyBDT05GSUdfQ09NRURJX1VTQkRVWCBpcyBub3Qgc2V0CkNPTkZJR19DT01F
RElfVVNCRFVYRkFTVD15CiMgQ09ORklHX0NPTUVESV9VU0JEVVhTSUdNQSBpcyBub3Qgc2V0
CiMgQ09ORklHX0NPTUVESV9WTUs4MFhYIGlzIG5vdCBzZXQKQ09ORklHX0NPTUVESV84MjU1
PXkKQ09ORklHX0NPTUVESV84MjU1X1NBPXkKQ09ORklHX0NPTUVESV9LQ09NRURJTElCPXkK
Q09ORklHX0NPTUVESV9OSV9ST1VUSU5HPXkKQ09ORklHX0NPTUVESV9URVNUUz15CkNPTkZJ
R19DT01FRElfVEVTVFNfRVhBTVBMRT15CkNPTkZJR19DT01FRElfVEVTVFNfTklfUk9VVEVT
PXkKIyBDT05GSUdfU1RBR0lORyBpcyBub3Qgc2V0CiMgQ09ORklHX0dPTERGSVNIIGlzIG5v
dCBzZXQKQ09ORklHX0NIUk9NRV9QTEFURk9STVM9eQpDT05GSUdfQ0hST01FT1NfTEFQVE9Q
PXkKQ09ORklHX0NIUk9NRU9TX1BTVE9SRT15CkNPTkZJR19DUk9TX0VDPXkKQ09ORklHX0NS
T1NfRUNfSTJDPXkKIyBDT05GSUdfQ1JPU19FQ19SUE1TRyBpcyBub3Qgc2V0CkNPTkZJR19D
Uk9TX0VDX1NQST15CkNPTkZJR19DUk9TX0VDX1BST1RPPXkKQ09ORklHX0NST1NfS0JEX0xF
RF9CQUNLTElHSFQ9eQpDT05GSUdfQ1JPU19FQ19DSEFSREVWPXkKQ09ORklHX0NST1NfRUNf
TElHSFRCQVI9eQpDT05GSUdfQ1JPU19FQ19WQkM9eQpDT05GSUdfQ1JPU19FQ19ERUJVR0ZT
PXkKQ09ORklHX0NST1NfRUNfU0VOU09SSFVCPXkKQ09ORklHX0NST1NfRUNfU1lTRlM9eQpD
T05GSUdfQ1JPU19FQ19UWVBFQz15CkNPTkZJR19DUk9TX0hQU19JMkM9eQojIENPTkZJR19D
Uk9TX1VTQlBEX0xPR0dFUiBpcyBub3Qgc2V0CkNPTkZJR19DUk9TX1VTQlBEX05PVElGWT15
CkNPTkZJR19DUk9TX0tVTklUX0VDX1BST1RPX1RFU1Q9eQojIENPTkZJR19NRUxMQU5PWF9Q
TEFURk9STSBpcyBub3Qgc2V0CkNPTkZJR19PTFBDX0VDPXkKQ09ORklHX1NVUkZBQ0VfUExB
VEZPUk1TPXkKIyBDT05GSUdfWDg2X1BMQVRGT1JNX0RFVklDRVMgaXMgbm90IHNldApDT05G
SUdfSEFWRV9DTEs9eQpDT05GSUdfSEFWRV9DTEtfUFJFUEFSRT15CkNPTkZJR19DT01NT05f
Q0xLPXkKIyBDT05GSUdfQ09NTU9OX0NMS19XTTgzMVggaXMgbm90IHNldApDT05GSUdfTE1L
MDQ4MzI9eQojIENPTkZJR19DT01NT05fQ0xLX01BWDk0ODUgaXMgbm90IHNldApDT05GSUdf
Q09NTU9OX0NMS19SSzgwOD15CkNPTkZJR19DT01NT05fQ0xLX1NJNTM0MT15CkNPTkZJR19D
T01NT05fQ0xLX1NJNTM1MT15CkNPTkZJR19DT01NT05fQ0xLX1NJNTE0PXkKIyBDT05GSUdf
Q09NTU9OX0NMS19TSTU0NCBpcyBub3Qgc2V0CkNPTkZJR19DT01NT05fQ0xLX1NJNTcwPXkK
Q09ORklHX0NPTU1PTl9DTEtfQ0RDRTcwNj15CiMgQ09ORklHX0NPTU1PTl9DTEtfQ0RDRTky
NSBpcyBub3Qgc2V0CkNPTkZJR19DT01NT05fQ0xLX0NTMjAwMF9DUD15CkNPTkZJR19DT01N
T05fQ0xLX1MyTVBTMTE9eQpDT05GSUdfQ09NTU9OX0NMS19BWElfQ0xLR0VOPXkKQ09ORklH
X0NPTU1PTl9DTEtfTE9DSE5BR0FSPXkKQ09ORklHX0NPTU1PTl9DTEtfUEFMTUFTPXkKQ09O
RklHX0NPTU1PTl9DTEtfUFdNPXkKQ09ORklHX0NPTU1PTl9DTEtfUlM5X1BDSUU9eQpDT05G
SUdfQ09NTU9OX0NMS19TSTUyMVhYPXkKQ09ORklHX0NPTU1PTl9DTEtfVkMzPXkKIyBDT05G
SUdfQ09NTU9OX0NMS19WQzUgaXMgbm90IHNldAojIENPTkZJR19DT01NT05fQ0xLX1ZDNyBp
cyBub3Qgc2V0CiMgQ09ORklHX0NPTU1PTl9DTEtfQkQ3MThYWCBpcyBub3Qgc2V0CkNPTkZJ
R19DT01NT05fQ0xLX0ZJWEVEX01NSU89eQojIENPTkZJR19DTEtfTEdNX0NHVSBpcyBub3Qg
c2V0CkNPTkZJR19YSUxJTlhfVkNVPXkKIyBDT05GSUdfQ09NTU9OX0NMS19YTE5YX0NMS1da
UkQgaXMgbm90IHNldApDT05GSUdfQ0xLX0tVTklUX1RFU1Q9eQpDT05GSUdfQ0xLX0dBVEVf
S1VOSVRfVEVTVD15CkNPTkZJR19DTEtfRkRfS1VOSVRfVEVTVD15CiMgQ09ORklHX0hXU1BJ
TkxPQ0sgaXMgbm90IHNldAoKIwojIENsb2NrIFNvdXJjZSBkcml2ZXJzCiMKQ09ORklHX0NM
S1NSQ19JODI1Mz15CkNPTkZJR19DTEtFVlRfSTgyNTM9eQpDT05GSUdfSTgyNTNfTE9DSz15
CkNPTkZJR19DTEtCTERfSTgyNTM9eQojIGVuZCBvZiBDbG9jayBTb3VyY2UgZHJpdmVycwoK
Q09ORklHX01BSUxCT1g9eQpDT05GSUdfQVJNX01IVV9WMz15CkNPTkZJR19QTEFURk9STV9N
SFU9eQojIENPTkZJR19BTFRFUkFfTUJPWCBpcyBub3Qgc2V0CiMgQ09ORklHX01BSUxCT1hf
VEVTVCBpcyBub3Qgc2V0CkNPTkZJR19JT01NVV9JT1ZBPXkKQ09ORklHX0lPTU1VX0FQST15
CkNPTkZJR19JT01NVV9TVVBQT1JUPXkKCiMKIyBHZW5lcmljIElPTU1VIFBhZ2V0YWJsZSBT
dXBwb3J0CiMKIyBlbmQgb2YgR2VuZXJpYyBJT01NVSBQYWdldGFibGUgU3VwcG9ydAoKIyBD
T05GSUdfSU9NTVVfREVCVUdGUyBpcyBub3Qgc2V0CiMgQ09ORklHX0lPTU1VX0RFRkFVTFRf
RE1BX1NUUklDVCBpcyBub3Qgc2V0CkNPTkZJR19JT01NVV9ERUZBVUxUX0RNQV9MQVpZPXkK
IyBDT05GSUdfSU9NTVVfREVGQVVMVF9QQVNTVEhST1VHSCBpcyBub3Qgc2V0CkNPTkZJR19P
Rl9JT01NVT15CkNPTkZJR19JT01NVV9ETUE9eQpDT05GSUdfSU9NTVVGRD15CkNPTkZJR19W
SVJUSU9fSU9NTVU9eQoKIwojIFJlbW90ZXByb2MgZHJpdmVycwojCkNPTkZJR19SRU1PVEVQ
Uk9DPXkKIyBDT05GSUdfUkVNT1RFUFJPQ19DREVWIGlzIG5vdCBzZXQKIyBlbmQgb2YgUmVt
b3RlcHJvYyBkcml2ZXJzCgojCiMgUnBtc2cgZHJpdmVycwojCkNPTkZJR19SUE1TRz15CiMg
Q09ORklHX1JQTVNHX0NIQVIgaXMgbm90IHNldAojIENPTkZJR19SUE1TR19DVFJMIGlzIG5v
dCBzZXQKQ09ORklHX1JQTVNHX05TPXkKQ09ORklHX1JQTVNHX1FDT01fR0xJTks9eQpDT05G
SUdfUlBNU0dfUUNPTV9HTElOS19SUE09eQpDT05GSUdfUlBNU0dfVklSVElPPXkKIyBlbmQg
b2YgUnBtc2cgZHJpdmVycwoKIyBDT05GSUdfU09VTkRXSVJFIGlzIG5vdCBzZXQKCiMKIyBT
T0MgKFN5c3RlbSBPbiBDaGlwKSBzcGVjaWZpYyBEcml2ZXJzCiMKCiMKIyBBbWxvZ2ljIFNv
QyBkcml2ZXJzCiMKIyBlbmQgb2YgQW1sb2dpYyBTb0MgZHJpdmVycwoKIwojIEJyb2FkY29t
IFNvQyBkcml2ZXJzCiMKIyBlbmQgb2YgQnJvYWRjb20gU29DIGRyaXZlcnMKCiMKIyBOWFAv
RnJlZXNjYWxlIFFvcklRIFNvQyBkcml2ZXJzCiMKIyBlbmQgb2YgTlhQL0ZyZWVzY2FsZSBR
b3JJUSBTb0MgZHJpdmVycwoKIwojIGZ1aml0c3UgU29DIGRyaXZlcnMKIwojIGVuZCBvZiBm
dWppdHN1IFNvQyBkcml2ZXJzCgojCiMgaS5NWCBTb0MgZHJpdmVycwojCiMgZW5kIG9mIGku
TVggU29DIGRyaXZlcnMKCiMKIyBFbmFibGUgTGl0ZVggU29DIEJ1aWxkZXIgc3BlY2lmaWMg
ZHJpdmVycwojCiMgQ09ORklHX0xJVEVYX1NPQ19DT05UUk9MTEVSIGlzIG5vdCBzZXQKIyBl
bmQgb2YgRW5hYmxlIExpdGVYIFNvQyBCdWlsZGVyIHNwZWNpZmljIGRyaXZlcnMKCkNPTkZJ
R19XUENNNDUwX1NPQz15CgojCiMgUXVhbGNvbW0gU29DIGRyaXZlcnMKIwpDT05GSUdfUUNP
TV9QRFJfSEVMUEVSUz15CkNPTkZJR19RQ09NX1BNSUNfR0xJTks9eQpDT05GSUdfUUNPTV9R
TUlfSEVMUEVSUz15CiMgZW5kIG9mIFF1YWxjb21tIFNvQyBkcml2ZXJzCgpDT05GSUdfU09D
X1RJPXkKCiMKIyBYaWxpbnggU29DIGRyaXZlcnMKIwojIGVuZCBvZiBYaWxpbnggU29DIGRy
aXZlcnMKIyBlbmQgb2YgU09DIChTeXN0ZW0gT24gQ2hpcCkgc3BlY2lmaWMgRHJpdmVycwoK
IwojIFBNIERvbWFpbnMKIwoKIwojIEFtbG9naWMgUE0gRG9tYWlucwojCiMgZW5kIG9mIEFt
bG9naWMgUE0gRG9tYWlucwoKIwojIEJyb2FkY29tIFBNIERvbWFpbnMKIwojIGVuZCBvZiBC
cm9hZGNvbSBQTSBEb21haW5zCgojCiMgaS5NWCBQTSBEb21haW5zCiMKIyBlbmQgb2YgaS5N
WCBQTSBEb21haW5zCgojCiMgUXVhbGNvbW0gUE0gRG9tYWlucwojCiMgZW5kIG9mIFF1YWxj
b21tIFBNIERvbWFpbnMKIyBlbmQgb2YgUE0gRG9tYWlucwoKIyBDT05GSUdfUE1fREVWRlJF
USBpcyBub3Qgc2V0CkNPTkZJR19FWFRDT049eQoKIwojIEV4dGNvbiBEZXZpY2UgRHJpdmVy
cwojCiMgQ09ORklHX0VYVENPTl9GU0E5NDgwIGlzIG5vdCBzZXQKIyBDT05GSUdfRVhUQ09O
X0dQSU8gaXMgbm90IHNldApDT05GSUdfRVhUQ09OX01BWDE0NTc3PXkKIyBDT05GSUdfRVhU
Q09OX01BWDMzNTUgaXMgbm90IHNldApDT05GSUdfRVhUQ09OX01BWDc3NjkzPXkKQ09ORklH
X0VYVENPTl9QQUxNQVM9eQpDT05GSUdfRVhUQ09OX1BUTjUxNTA9eQpDT05GSUdfRVhUQ09O
X1JUODk3M0E9eQpDT05GSUdfRVhUQ09OX1NNNTUwMj15CkNPTkZJR19FWFRDT05fVVNCX0dQ
SU89eQpDT05GSUdfRVhUQ09OX1VTQkNfQ1JPU19FQz15CkNPTkZJR19FWFRDT05fVVNCQ19U
VVNCMzIwPXkKIyBDT05GSUdfTUVNT1JZIGlzIG5vdCBzZXQKIyBDT05GSUdfSUlPIGlzIG5v
dCBzZXQKQ09ORklHX1BXTT15CkNPTkZJR19QV01fQVRNRUxfVENCPXkKQ09ORklHX1BXTV9D
TEs9eQpDT05GSUdfUFdNX0NST1NfRUM9eQpDT05GSUdfUFdNX0ZTTF9GVE09eQpDT05GSUdf
UFdNX0lOVEVMX0xHTT15CkNPTkZJR19QV01fSVFTNjIwQT15CkNPTkZJR19QV01fTlRYRUM9
eQojIENPTkZJR19QV01fUENBOTY4NSBpcyBub3Qgc2V0CiMgQ09ORklHX1BXTV9TVE1QRSBp
cyBub3Qgc2V0CiMgQ09ORklHX1BXTV9YSUxJTlggaXMgbm90IHNldAoKIwojIElSUSBjaGlw
IHN1cHBvcnQKIwpDT05GSUdfSVJRQ0hJUD15CiMgQ09ORklHX0FMX0ZJQyBpcyBub3Qgc2V0
CkNPTkZJR19NQURFUkFfSVJRPXkKIyBDT05GSUdfWElMSU5YX0lOVEMgaXMgbm90IHNldAoj
IGVuZCBvZiBJUlEgY2hpcCBzdXBwb3J0CgojIENPTkZJR19JUEFDS19CVVMgaXMgbm90IHNl
dApDT05GSUdfUkVTRVRfQ09OVFJPTExFUj15CiMgQ09ORklHX1JFU0VUX0dQSU8gaXMgbm90
IHNldApDT05GSUdfUkVTRVRfSU5URUxfR1c9eQojIENPTkZJR19SRVNFVF9USV9TWVNDT04g
aXMgbm90IHNldApDT05GSUdfUkVTRVRfVElfVFBTMzgwWD15CgojCiMgUEhZIFN1YnN5c3Rl
bQojCkNPTkZJR19HRU5FUklDX1BIWT15CkNPTkZJR19HRU5FUklDX1BIWV9NSVBJX0RQSFk9
eQpDT05GSUdfVVNCX0xHTV9QSFk9eQpDT05GSUdfUEhZX0NBTl9UUkFOU0NFSVZFUj15Cgoj
CiMgUEhZIGRyaXZlcnMgZm9yIEJyb2FkY29tIHBsYXRmb3JtcwojCkNPTkZJR19CQ01fS09O
QV9VU0IyX1BIWT15CiMgZW5kIG9mIFBIWSBkcml2ZXJzIGZvciBCcm9hZGNvbSBwbGF0Zm9y
bXMKCiMgQ09ORklHX1BIWV9DQURFTkNFX1RPUlJFTlQgaXMgbm90IHNldAojIENPTkZJR19Q
SFlfQ0FERU5DRV9EUEhZIGlzIG5vdCBzZXQKQ09ORklHX1BIWV9DQURFTkNFX0RQSFlfUlg9
eQpDT05GSUdfUEhZX0NBREVOQ0VfU0lFUlJBPXkKQ09ORklHX1BIWV9DQURFTkNFX1NBTFZP
PXkKQ09ORklHX1BIWV9QWEFfMjhOTV9IU0lDPXkKIyBDT05GSUdfUEhZX1BYQV8yOE5NX1VT
QjIgaXMgbm90IHNldAojIENPTkZJR19QSFlfTEFOOTY2WF9TRVJERVMgaXMgbm90IHNldAoj
IENPTkZJR19QSFlfTUFQUEhPTkVfTURNNjYwMCBpcyBub3Qgc2V0CiMgQ09ORklHX1BIWV9P
Q0VMT1RfU0VSREVTIGlzIG5vdCBzZXQKIyBDT05GSUdfUEhZX1FDT01fVVNCX0hTIGlzIG5v
dCBzZXQKQ09ORklHX1BIWV9RQ09NX1VTQl9IU0lDPXkKQ09ORklHX1BIWV9TQU1TVU5HX1VT
QjI9eQpDT05GSUdfUEhZX1RVU0IxMjEwPXkKIyBDT05GSUdfUEhZX0lOVEVMX0xHTV9DT01C
TyBpcyBub3Qgc2V0CkNPTkZJR19QSFlfSU5URUxfTEdNX0VNTUM9eQojIGVuZCBvZiBQSFkg
U3Vic3lzdGVtCgojIENPTkZJR19QT1dFUkNBUCBpcyBub3Qgc2V0CkNPTkZJR19NQ0I9eQpD
T05GSUdfTUNCX0xQQz15CgojCiMgUGVyZm9ybWFuY2UgbW9uaXRvciBzdXBwb3J0CiMKIyBl
bmQgb2YgUGVyZm9ybWFuY2UgbW9uaXRvciBzdXBwb3J0CgojIENPTkZJR19SQVMgaXMgbm90
IHNldAoKIwojIEFuZHJvaWQKIwpDT05GSUdfQU5EUk9JRF9CSU5ERVJfSVBDPXkKQ09ORklH
X0FORFJPSURfQklOREVSRlM9eQpDT05GSUdfQU5EUk9JRF9CSU5ERVJfREVWSUNFUz0iYmlu
ZGVyLGh3YmluZGVyLHZuZGJpbmRlciIKQ09ORklHX0FORFJPSURfQklOREVSX0lQQ19TRUxG
VEVTVD15CiMgZW5kIG9mIEFuZHJvaWQKCkNPTkZJR19EQVg9eQpDT05GSUdfTlZNRU09eQpD
T05GSUdfTlZNRU1fU1lTRlM9eQpDT05GSUdfTlZNRU1fTEFZT1VUUz15CgojCiMgTGF5b3V0
IFR5cGVzCiMKIyBDT05GSUdfTlZNRU1fTEFZT1VUX1NMMjhfVlBEIGlzIG5vdCBzZXQKQ09O
RklHX05WTUVNX0xBWU9VVF9PTklFX1RMVj15CiMgZW5kIG9mIExheW91dCBUeXBlcwoKQ09O
RklHX05WTUVNX1JNRU09eQpDT05GSUdfTlZNRU1fVV9CT09UX0VOVj15CgojCiMgSFcgdHJh
Y2luZyBzdXBwb3J0CiMKIyBDT05GSUdfU1RNIGlzIG5vdCBzZXQKIyBDT05GSUdfSU5URUxf
VEggaXMgbm90IHNldAojIGVuZCBvZiBIVyB0cmFjaW5nIHN1cHBvcnQKCkNPTkZJR19GUEdB
PXkKQ09ORklHX0FMVEVSQV9QUl9JUF9DT1JFPXkKQ09ORklHX0FMVEVSQV9QUl9JUF9DT1JF
X1BMQVQ9eQpDT05GSUdfRlBHQV9NR1JfQUxURVJBX1BTX1NQST15CkNPTkZJR19GUEdBX01H
Ul9YSUxJTlhfQ09SRT15CkNPTkZJR19GUEdBX01HUl9YSUxJTlhfU0VMRUNUTUFQPXkKQ09O
RklHX0ZQR0FfTUdSX1hJTElOWF9TUEk9eQpDT05GSUdfRlBHQV9NR1JfSUNFNDBfU1BJPXkK
IyBDT05GSUdfRlBHQV9NR1JfTUFDSFhPMl9TUEkgaXMgbm90IHNldApDT05GSUdfRlBHQV9C
UklER0U9eQpDT05GSUdfQUxURVJBX0ZSRUVaRV9CUklER0U9eQpDT05GSUdfWElMSU5YX1BS
X0RFQ09VUExFUj15CkNPTkZJR19GUEdBX1JFR0lPTj15CiMgQ09ORklHX09GX0ZQR0FfUkVH
SU9OIGlzIG5vdCBzZXQKIyBDT05GSUdfRlBHQV9ERkwgaXMgbm90IHNldAojIENPTkZJR19G
UEdBX00xMF9CTUNfU0VDX1VQREFURSBpcyBub3Qgc2V0CiMgQ09ORklHX0ZQR0FfTUdSX01J
Q1JPQ0hJUF9TUEkgaXMgbm90IHNldApDT05GSUdfRlBHQV9NR1JfTEFUVElDRV9TWVNDT05G
SUc9eQpDT05GSUdfRlBHQV9NR1JfTEFUVElDRV9TWVNDT05GSUdfU1BJPXkKQ09ORklHX0ZQ
R0FfS1VOSVRfVEVTVFM9eQpDT05GSUdfRlNJPXkKQ09ORklHX0ZTSV9ORVdfREVWX05PREU9
eQpDT05GSUdfRlNJX01BU1RFUl9HUElPPXkKIyBDT05GSUdfRlNJX01BU1RFUl9IVUIgaXMg
bm90IHNldApDT05GSUdfRlNJX01BU1RFUl9BU1BFRUQ9eQojIENPTkZJR19GU0lfTUFTVEVS
X0kyQ1IgaXMgbm90IHNldAojIENPTkZJR19GU0lfU0NPTSBpcyBub3Qgc2V0CkNPTkZJR19G
U0lfU0JFRklGTz15CiMgQ09ORklHX0ZTSV9PQ0MgaXMgbm90IHNldApDT05GSUdfVEVFPXkK
Q09ORklHX01VTFRJUExFWEVSPXkKCiMKIyBNdWx0aXBsZXhlciBkcml2ZXJzCiMKIyBDT05G
SUdfTVVYX0FERzc5MkEgaXMgbm90IHNldApDT05GSUdfTVVYX0FER1MxNDA4PXkKIyBDT05G
SUdfTVVYX0dQSU8gaXMgbm90IHNldAojIENPTkZJR19NVVhfTU1JTyBpcyBub3Qgc2V0CiMg
ZW5kIG9mIE11bHRpcGxleGVyIGRyaXZlcnMKCiMgQ09ORklHX1NJT1ggaXMgbm90IHNldApD
T05GSUdfU0xJTUJVUz15CiMgQ09ORklHX1NMSU1fUUNPTV9DVFJMIGlzIG5vdCBzZXQKIyBD
T05GSUdfSU5URVJDT05ORUNUIGlzIG5vdCBzZXQKIyBDT05GSUdfQ09VTlRFUiBpcyBub3Qg
c2V0CiMgQ09ORklHX01PU1QgaXMgbm90IHNldApDT05GSUdfUEVDST15CkNPTkZJR19QRUNJ
X0NQVT15CkNPTkZJR19IVEU9eQojIGVuZCBvZiBEZXZpY2UgRHJpdmVycwoKIwojIEZpbGUg
c3lzdGVtcwojCkNPTkZJR19EQ0FDSEVfV09SRF9BQ0NFU1M9eQpDT05GSUdfVkFMSURBVEVf
RlNfUEFSU0VSPXkKQ09ORklHX0ZTX0lPTUFQPXkKQ09ORklHX0ZTX1NUQUNLPXkKQ09ORklH
X0JVRkZFUl9IRUFEPXkKQ09ORklHX0xFR0FDWV9ESVJFQ1RfSU89eQpDT05GSUdfRVhUMl9G
Uz15CiMgQ09ORklHX0VYVDJfRlNfWEFUVFIgaXMgbm90IHNldApDT05GSUdfRVhUM19GUz15
CiMgQ09ORklHX0VYVDNfRlNfUE9TSVhfQUNMIGlzIG5vdCBzZXQKQ09ORklHX0VYVDNfRlNf
U0VDVVJJVFk9eQpDT05GSUdfRVhUNF9GUz15CiMgQ09ORklHX0VYVDRfRlNfUE9TSVhfQUNM
IGlzIG5vdCBzZXQKQ09ORklHX0VYVDRfRlNfU0VDVVJJVFk9eQojIENPTkZJR19FWFQ0X0RF
QlVHIGlzIG5vdCBzZXQKQ09ORklHX0VYVDRfS1VOSVRfVEVTVFM9eQpDT05GSUdfSkJEMj15
CkNPTkZJR19KQkQyX0RFQlVHPXkKQ09ORklHX0ZTX01CQ0FDSEU9eQpDT05GSUdfUkVJU0VS
RlNfRlM9eQojIENPTkZJR19SRUlTRVJGU19DSEVDSyBpcyBub3Qgc2V0CkNPTkZJR19SRUlT
RVJGU19QUk9DX0lORk89eQojIENPTkZJR19SRUlTRVJGU19GU19YQVRUUiBpcyBub3Qgc2V0
CkNPTkZJR19KRlNfRlM9eQojIENPTkZJR19KRlNfUE9TSVhfQUNMIGlzIG5vdCBzZXQKQ09O
RklHX0pGU19TRUNVUklUWT15CkNPTkZJR19KRlNfREVCVUc9eQpDT05GSUdfSkZTX1NUQVRJ
U1RJQ1M9eQojIENPTkZJR19YRlNfRlMgaXMgbm90IHNldAojIENPTkZJR19HRlMyX0ZTIGlz
IG5vdCBzZXQKIyBDT05GSUdfQlRSRlNfRlMgaXMgbm90IHNldApDT05GSUdfTklMRlMyX0ZT
PXkKQ09ORklHX0YyRlNfRlM9eQpDT05GSUdfRjJGU19TVEFUX0ZTPXkKQ09ORklHX0YyRlNf
RlNfWEFUVFI9eQojIENPTkZJR19GMkZTX0ZTX1BPU0lYX0FDTCBpcyBub3Qgc2V0CkNPTkZJ
R19GMkZTX0ZTX1NFQ1VSSVRZPXkKIyBDT05GSUdfRjJGU19DSEVDS19GUyBpcyBub3Qgc2V0
CiMgQ09ORklHX0YyRlNfRkFVTFRfSU5KRUNUSU9OIGlzIG5vdCBzZXQKQ09ORklHX0YyRlNf
RlNfQ09NUFJFU1NJT049eQpDT05GSUdfRjJGU19GU19MWk89eQpDT05GSUdfRjJGU19GU19M
Wk9STEU9eQojIENPTkZJR19GMkZTX0ZTX0xaNCBpcyBub3Qgc2V0CkNPTkZJR19GMkZTX0ZT
X1pTVEQ9eQojIENPTkZJR19GMkZTX0lPU1RBVCBpcyBub3Qgc2V0CkNPTkZJR19CQ0FDSEVG
U19GUz15CiMgQ09ORklHX0JDQUNIRUZTX1FVT1RBIGlzIG5vdCBzZXQKIyBDT05GSUdfQkNB
Q0hFRlNfRVJBU1VSRV9DT0RJTkcgaXMgbm90IHNldAojIENPTkZJR19CQ0FDSEVGU19QT1NJ
WF9BQ0wgaXMgbm90IHNldAojIENPTkZJR19CQ0FDSEVGU19ERUJVRyBpcyBub3Qgc2V0CiMg
Q09ORklHX0JDQUNIRUZTX1RFU1RTIGlzIG5vdCBzZXQKQ09ORklHX0JDQUNIRUZTX0xPQ0tf
VElNRV9TVEFUUz15CkNPTkZJR19CQ0FDSEVGU19OT19MQVRFTkNZX0FDQ1Q9eQpDT05GSUdf
TUVBTl9BTkRfVkFSSUFOQ0VfVU5JVF9URVNUPXkKQ09ORklHX0ZTX1BPU0lYX0FDTD15CkNP
TkZJR19FWFBPUlRGUz15CkNPTkZJR19FWFBPUlRGU19CTE9DS19PUFM9eQpDT05GSUdfRklM
RV9MT0NLSU5HPXkKQ09ORklHX0ZTX0VOQ1JZUFRJT049eQpDT05GSUdfRlNfRU5DUllQVElP
Tl9BTEdTPXkKIyBDT05GSUdfRlNfVkVSSVRZIGlzIG5vdCBzZXQKQ09ORklHX0ZTTk9USUZZ
PXkKQ09ORklHX0ROT1RJRlk9eQojIENPTkZJR19JTk9USUZZX1VTRVIgaXMgbm90IHNldApD
T05GSUdfRkFOT1RJRlk9eQojIENPTkZJR19RVU9UQSBpcyBub3Qgc2V0CkNPTkZJR19BVVRP
RlNfRlM9eQojIENPTkZJR19GVVNFX0ZTIGlzIG5vdCBzZXQKQ09ORklHX09WRVJMQVlfRlM9
eQpDT05GSUdfT1ZFUkxBWV9GU19SRURJUkVDVF9ESVI9eQpDT05GSUdfT1ZFUkxBWV9GU19S
RURJUkVDVF9BTFdBWVNfRk9MTE9XPXkKQ09ORklHX09WRVJMQVlfRlNfSU5ERVg9eQpDT05G
SUdfT1ZFUkxBWV9GU19NRVRBQ09QWT15CiMgQ09ORklHX09WRVJMQVlfRlNfREVCVUcgaXMg
bm90IHNldAoKIwojIENhY2hlcwojCiMgZW5kIG9mIENhY2hlcwoKIwojIENELVJPTS9EVkQg
RmlsZXN5c3RlbXMKIwpDT05GSUdfSVNPOTY2MF9GUz15CiMgQ09ORklHX0pPTElFVCBpcyBu
b3Qgc2V0CiMgQ09ORklHX1pJU09GUyBpcyBub3Qgc2V0CkNPTkZJR19VREZfRlM9eQojIGVu
ZCBvZiBDRC1ST00vRFZEIEZpbGVzeXN0ZW1zCgojCiMgRE9TL0ZBVC9FWEZBVC9OVCBGaWxl
c3lzdGVtcwojCkNPTkZJR19GQVRfRlM9eQpDT05GSUdfTVNET1NfRlM9eQojIENPTkZJR19W
RkFUX0ZTIGlzIG5vdCBzZXQKQ09ORklHX0ZBVF9ERUZBVUxUX0NPREVQQUdFPTQzNwpDT05G
SUdfRkFUX0tVTklUX1RFU1Q9eQpDT05GSUdfRVhGQVRfRlM9eQpDT05GSUdfRVhGQVRfREVG
QVVMVF9JT0NIQVJTRVQ9InV0ZjgiCkNPTkZJR19OVEZTM19GUz15CkNPTkZJR19OVEZTM19M
WlhfWFBSRVNTPXkKQ09ORklHX05URlMzX0ZTX1BPU0lYX0FDTD15CkNPTkZJR19OVEZTX0ZT
PXkKIyBlbmQgb2YgRE9TL0ZBVC9FWEZBVC9OVCBGaWxlc3lzdGVtcwoKIwojIFBzZXVkbyBm
aWxlc3lzdGVtcwojCkNPTkZJR19QUk9DX0ZTPXkKQ09ORklHX1BST0NfS0NPUkU9eQpDT05G
SUdfUFJPQ19WTUNPUkU9eQpDT05GSUdfUFJPQ19WTUNPUkVfREVWSUNFX0RVTVA9eQpDT05G
SUdfUFJPQ19TWVNDVEw9eQpDT05GSUdfUFJPQ19QQUdFX01PTklUT1I9eQpDT05GSUdfUFJP
Q19DSElMRFJFTj15CkNPTkZJR19QUk9DX1BJRF9BUkNIX1NUQVRVUz15CkNPTkZJR19LRVJO
RlM9eQpDT05GSUdfU1lTRlM9eQpDT05GSUdfVE1QRlM9eQpDT05GSUdfVE1QRlNfUE9TSVhf
QUNMPXkKQ09ORklHX1RNUEZTX1hBVFRSPXkKIyBDT05GSUdfVE1QRlNfUVVPVEEgaXMgbm90
IHNldApDT05GSUdfSFVHRVRMQkZTPXkKQ09ORklHX0hVR0VUTEJfUEFHRT15CkNPTkZJR19D
T05GSUdGU19GUz15CiMgZW5kIG9mIFBzZXVkbyBmaWxlc3lzdGVtcwoKQ09ORklHX01JU0Nf
RklMRVNZU1RFTVM9eQpDT05GSUdfT1JBTkdFRlNfRlM9eQpDT05GSUdfQURGU19GUz15CkNP
TkZJR19BREZTX0ZTX1JXPXkKQ09ORklHX0FGRlNfRlM9eQojIENPTkZJR19FQ1JZUFRfRlMg
aXMgbm90IHNldApDT05GSUdfSEZTX0ZTPXkKQ09ORklHX0hGU1BMVVNfRlM9eQpDT05GSUdf
QkVGU19GUz15CkNPTkZJR19CRUZTX0RFQlVHPXkKQ09ORklHX0JGU19GUz15CkNPTkZJR19F
RlNfRlM9eQpDT05GSUdfSkZGUzJfRlM9eQpDT05GSUdfSkZGUzJfRlNfREVCVUc9MApDT05G
SUdfSkZGUzJfRlNfV1JJVEVCVUZGRVI9eQpDT05GSUdfSkZGUzJfRlNfV0JVRl9WRVJJRlk9
eQojIENPTkZJR19KRkZTMl9TVU1NQVJZIGlzIG5vdCBzZXQKQ09ORklHX0pGRlMyX0ZTX1hB
VFRSPXkKIyBDT05GSUdfSkZGUzJfRlNfUE9TSVhfQUNMIGlzIG5vdCBzZXQKIyBDT05GSUdf
SkZGUzJfRlNfU0VDVVJJVFkgaXMgbm90IHNldAojIENPTkZJR19KRkZTMl9DT01QUkVTU0lP
Tl9PUFRJT05TIGlzIG5vdCBzZXQKQ09ORklHX0pGRlMyX1pMSUI9eQpDT05GSUdfSkZGUzJf
UlRJTUU9eQojIENPTkZJR19VQklGU19GUyBpcyBub3Qgc2V0CkNPTkZJR19DUkFNRlM9eQpD
T05GSUdfQ1JBTUZTX0JMT0NLREVWPXkKQ09ORklHX0NSQU1GU19NVEQ9eQojIENPTkZJR19T
UVVBU0hGUyBpcyBub3Qgc2V0CkNPTkZJR19WWEZTX0ZTPXkKQ09ORklHX01JTklYX0ZTPXkK
IyBDT05GSUdfT01GU19GUyBpcyBub3Qgc2V0CiMgQ09ORklHX0hQRlNfRlMgaXMgbm90IHNl
dApDT05GSUdfUU5YNEZTX0ZTPXkKQ09ORklHX1FOWDZGU19GUz15CiMgQ09ORklHX1FOWDZG
U19ERUJVRyBpcyBub3Qgc2V0CkNPTkZJR19ST01GU19GUz15CiMgQ09ORklHX1JPTUZTX0JB
Q0tFRF9CWV9CTE9DSyBpcyBub3Qgc2V0CkNPTkZJR19ST01GU19CQUNLRURfQllfTVREPXkK
IyBDT05GSUdfUk9NRlNfQkFDS0VEX0JZX0JPVEggaXMgbm90IHNldApDT05GSUdfUk9NRlNf
T05fTVREPXkKQ09ORklHX1BTVE9SRT15CkNPTkZJR19QU1RPUkVfREVGQVVMVF9LTVNHX0JZ
VEVTPTEwMjQwCkNPTkZJR19QU1RPUkVfQ09NUFJFU1M9eQojIENPTkZJR19QU1RPUkVfQ09O
U09MRSBpcyBub3Qgc2V0CiMgQ09ORklHX1BTVE9SRV9QTVNHIGlzIG5vdCBzZXQKQ09ORklH
X1BTVE9SRV9SQU09eQpDT05GSUdfUFNUT1JFX1pPTkU9eQpDT05GSUdfUFNUT1JFX0JMSz15
CkNPTkZJR19QU1RPUkVfQkxLX0JMS0RFVj0iIgpDT05GSUdfUFNUT1JFX0JMS19LTVNHX1NJ
WkU9NjQKQ09ORklHX1BTVE9SRV9CTEtfTUFYX1JFQVNPTj0yCkNPTkZJR19TWVNWX0ZTPXkK
Q09ORklHX1VGU19GUz15CkNPTkZJR19VRlNfRlNfV1JJVEU9eQpDT05GSUdfVUZTX0RFQlVH
PXkKIyBDT05GSUdfRVJPRlNfRlMgaXMgbm90IHNldApDT05GSUdfTkVUV09SS19GSUxFU1lT
VEVNUz15CkNPTkZJR19OTFM9eQpDT05GSUdfTkxTX0RFRkFVTFQ9Imlzbzg4NTktMSIKQ09O
RklHX05MU19DT0RFUEFHRV80Mzc9eQpDT05GSUdfTkxTX0NPREVQQUdFXzczNz15CkNPTkZJ
R19OTFNfQ09ERVBBR0VfNzc1PXkKQ09ORklHX05MU19DT0RFUEFHRV84NTA9eQojIENPTkZJ
R19OTFNfQ09ERVBBR0VfODUyIGlzIG5vdCBzZXQKQ09ORklHX05MU19DT0RFUEFHRV84NTU9
eQojIENPTkZJR19OTFNfQ09ERVBBR0VfODU3IGlzIG5vdCBzZXQKQ09ORklHX05MU19DT0RF
UEFHRV84NjA9eQpDT05GSUdfTkxTX0NPREVQQUdFXzg2MT15CkNPTkZJR19OTFNfQ09ERVBB
R0VfODYyPXkKQ09ORklHX05MU19DT0RFUEFHRV84NjM9eQojIENPTkZJR19OTFNfQ09ERVBB
R0VfODY0IGlzIG5vdCBzZXQKQ09ORklHX05MU19DT0RFUEFHRV84NjU9eQpDT05GSUdfTkxT
X0NPREVQQUdFXzg2Nj15CiMgQ09ORklHX05MU19DT0RFUEFHRV84NjkgaXMgbm90IHNldApD
T05GSUdfTkxTX0NPREVQQUdFXzkzNj15CkNPTkZJR19OTFNfQ09ERVBBR0VfOTUwPXkKQ09O
RklHX05MU19DT0RFUEFHRV85MzI9eQpDT05GSUdfTkxTX0NPREVQQUdFXzk0OT15CkNPTkZJ
R19OTFNfQ09ERVBBR0VfODc0PXkKIyBDT05GSUdfTkxTX0lTTzg4NTlfOCBpcyBub3Qgc2V0
CiMgQ09ORklHX05MU19DT0RFUEFHRV8xMjUwIGlzIG5vdCBzZXQKQ09ORklHX05MU19DT0RF
UEFHRV8xMjUxPXkKIyBDT05GSUdfTkxTX0FTQ0lJIGlzIG5vdCBzZXQKQ09ORklHX05MU19J
U084ODU5XzE9eQpDT05GSUdfTkxTX0lTTzg4NTlfMj15CiMgQ09ORklHX05MU19JU084ODU5
XzMgaXMgbm90IHNldApDT05GSUdfTkxTX0lTTzg4NTlfND15CkNPTkZJR19OTFNfSVNPODg1
OV81PXkKQ09ORklHX05MU19JU084ODU5XzY9eQpDT05GSUdfTkxTX0lTTzg4NTlfNz15CkNP
TkZJR19OTFNfSVNPODg1OV85PXkKQ09ORklHX05MU19JU084ODU5XzEzPXkKIyBDT05GSUdf
TkxTX0lTTzg4NTlfMTQgaXMgbm90IHNldApDT05GSUdfTkxTX0lTTzg4NTlfMTU9eQpDT05G
SUdfTkxTX0tPSThfUj15CkNPTkZJR19OTFNfS09JOF9VPXkKQ09ORklHX05MU19NQUNfUk9N
QU49eQpDT05GSUdfTkxTX01BQ19DRUxUSUM9eQpDT05GSUdfTkxTX01BQ19DRU5URVVSTz15
CkNPTkZJR19OTFNfTUFDX0NST0FUSUFOPXkKQ09ORklHX05MU19NQUNfQ1lSSUxMSUM9eQoj
IENPTkZJR19OTFNfTUFDX0dBRUxJQyBpcyBub3Qgc2V0CiMgQ09ORklHX05MU19NQUNfR1JF
RUsgaXMgbm90IHNldAojIENPTkZJR19OTFNfTUFDX0lDRUxBTkQgaXMgbm90IHNldApDT05G
SUdfTkxTX01BQ19JTlVJVD15CkNPTkZJR19OTFNfTUFDX1JPTUFOSUFOPXkKIyBDT05GSUdf
TkxTX01BQ19UVVJLSVNIIGlzIG5vdCBzZXQKQ09ORklHX05MU19VVEY4PXkKQ09ORklHX05M
U19VQ1MyX1VUSUxTPXkKQ09ORklHX1VOSUNPREU9eQojIENPTkZJR19VTklDT0RFX05PUk1B
TElaQVRJT05fU0VMRlRFU1QgaXMgbm90IHNldApDT05GSUdfSU9fV1E9eQojIGVuZCBvZiBG
aWxlIHN5c3RlbXMKCiMKIyBTZWN1cml0eSBvcHRpb25zCiMKQ09ORklHX0tFWVM9eQojIENP
TkZJR19LRVlTX1JFUVVFU1RfQ0FDSEUgaXMgbm90IHNldApDT05GSUdfUEVSU0lTVEVOVF9L
RVlSSU5HUz15CkNPTkZJR19UUlVTVEVEX0tFWVM9eQpDT05GSUdfSEFWRV9UUlVTVEVEX0tF
WVM9eQpDT05GSUdfVFJVU1RFRF9LRVlTX1RQTT15CiMgQ09ORklHX1RSVVNURURfS0VZU19U
RUUgaXMgbm90IHNldApDT05GSUdfRU5DUllQVEVEX0tFWVM9eQpDT05GSUdfVVNFUl9ERUNS
WVBURURfREFUQT15CkNPTkZJR19LRVlfREhfT1BFUkFUSU9OUz15CkNPTkZJR19TRUNVUklU
WV9ETUVTR19SRVNUUklDVD15CiMgQ09ORklHX1NFQ1VSSVRZIGlzIG5vdCBzZXQKQ09ORklH
X1NFQ1VSSVRZRlM9eQpDT05GSUdfSEFSREVORURfVVNFUkNPUFk9eQpDT05GSUdfRk9SVElG
WV9TT1VSQ0U9eQpDT05GSUdfU1RBVElDX1VTRVJNT0RFSEVMUEVSPXkKQ09ORklHX1NUQVRJ
Q19VU0VSTU9ERUhFTFBFUl9QQVRIPSIvc2Jpbi91c2VybW9kZS1oZWxwZXIiCkNPTkZJR19E
RUZBVUxUX1NFQ1VSSVRZX0RBQz15CkNPTkZJR19MU009ImxhbmRsb2NrLGxvY2tkb3duLHlh
bWEsbG9hZHBpbixzYWZlc2V0aWQsYnBmIgoKIwojIEtlcm5lbCBoYXJkZW5pbmcgb3B0aW9u
cwojCgojCiMgTWVtb3J5IGluaXRpYWxpemF0aW9uCiMKQ09ORklHX0lOSVRfU1RBQ0tfTk9O
RT15CkNPTkZJR19JTklUX09OX0FMTE9DX0RFRkFVTFRfT049eQojIENPTkZJR19JTklUX09O
X0ZSRUVfREVGQVVMVF9PTiBpcyBub3Qgc2V0CkNPTkZJR19DQ19IQVNfWkVST19DQUxMX1VT
RURfUkVHUz15CiMgQ09ORklHX1pFUk9fQ0FMTF9VU0VEX1JFR1MgaXMgbm90IHNldAojIGVu
ZCBvZiBNZW1vcnkgaW5pdGlhbGl6YXRpb24KCiMKIyBIYXJkZW5pbmcgb2Yga2VybmVsIGRh
dGEgc3RydWN0dXJlcwojCiMgQ09ORklHX0xJU1RfSEFSREVORUQgaXMgbm90IHNldAojIENP
TkZJR19CVUdfT05fREFUQV9DT1JSVVBUSU9OIGlzIG5vdCBzZXQKIyBlbmQgb2YgSGFyZGVu
aW5nIG9mIGtlcm5lbCBkYXRhIHN0cnVjdHVyZXMKCkNPTkZJR19SQU5EU1RSVUNUX05PTkU9
eQojIGVuZCBvZiBLZXJuZWwgaGFyZGVuaW5nIG9wdGlvbnMKIyBlbmQgb2YgU2VjdXJpdHkg
b3B0aW9ucwoKQ09ORklHX1hPUl9CTE9DS1M9eQpDT05GSUdfQVNZTkNfQ09SRT15CkNPTkZJ
R19BU1lOQ19NRU1DUFk9eQpDT05GSUdfQVNZTkNfWE9SPXkKQ09ORklHX0FTWU5DX1BRPXkK
Q09ORklHX0FTWU5DX1JBSUQ2X1JFQ09WPXkKQ09ORklHX0NSWVBUTz15CgojCiMgQ3J5cHRv
IGNvcmUgb3IgaGVscGVyCiMKQ09ORklHX0NSWVBUT19BTEdBUEk9eQpDT05GSUdfQ1JZUFRP
X0FMR0FQSTI9eQpDT05GSUdfQ1JZUFRPX0FFQUQ9eQpDT05GSUdfQ1JZUFRPX0FFQUQyPXkK
Q09ORklHX0NSWVBUT19TSUc9eQpDT05GSUdfQ1JZUFRPX1NJRzI9eQpDT05GSUdfQ1JZUFRP
X1NLQ0lQSEVSPXkKQ09ORklHX0NSWVBUT19TS0NJUEhFUjI9eQpDT05GSUdfQ1JZUFRPX0hB
U0g9eQpDT05GSUdfQ1JZUFRPX0hBU0gyPXkKQ09ORklHX0NSWVBUT19STkc9eQpDT05GSUdf
Q1JZUFRPX1JORzI9eQpDT05GSUdfQ1JZUFRPX1JOR19ERUZBVUxUPXkKQ09ORklHX0NSWVBU
T19BS0NJUEhFUjI9eQpDT05GSUdfQ1JZUFRPX0FLQ0lQSEVSPXkKQ09ORklHX0NSWVBUT19L
UFAyPXkKQ09ORklHX0NSWVBUT19LUFA9eQpDT05GSUdfQ1JZUFRPX0FDT01QMj15CkNPTkZJ
R19DUllQVE9fTUFOQUdFUj15CkNPTkZJR19DUllQVE9fTUFOQUdFUjI9eQojIENPTkZJR19D
UllQVE9fVVNFUiBpcyBub3Qgc2V0CkNPTkZJR19DUllQVE9fTUFOQUdFUl9ESVNBQkxFX1RF
U1RTPXkKQ09ORklHX0NSWVBUT19OVUxMPXkKQ09ORklHX0NSWVBUT19OVUxMMj15CkNPTkZJ
R19DUllQVE9fQ1JZUFREPXkKQ09ORklHX0NSWVBUT19BVVRIRU5DPXkKIyBlbmQgb2YgQ3J5
cHRvIGNvcmUgb3IgaGVscGVyCgojCiMgUHVibGljLWtleSBjcnlwdG9ncmFwaHkKIwpDT05G
SUdfQ1JZUFRPX1JTQT15CkNPTkZJR19DUllQVE9fREg9eQpDT05GSUdfQ1JZUFRPX0RIX1JG
Qzc5MTlfR1JPVVBTPXkKQ09ORklHX0NSWVBUT19FQ0M9eQpDT05GSUdfQ1JZUFRPX0VDREg9
eQpDT05GSUdfQ1JZUFRPX0VDRFNBPXkKQ09ORklHX0NSWVBUT19FQ1JEU0E9eQpDT05GSUdf
Q1JZUFRPX1NNMj15CiMgQ09ORklHX0NSWVBUT19DVVJWRTI1NTE5IGlzIG5vdCBzZXQKIyBl
bmQgb2YgUHVibGljLWtleSBjcnlwdG9ncmFwaHkKCiMKIyBCbG9jayBjaXBoZXJzCiMKQ09O
RklHX0NSWVBUT19BRVM9eQojIENPTkZJR19DUllQVE9fQUVTX1RJIGlzIG5vdCBzZXQKQ09O
RklHX0NSWVBUT19BUklBPXkKIyBDT05GSUdfQ1JZUFRPX0JMT1dGSVNIIGlzIG5vdCBzZXQK
Q09ORklHX0NSWVBUT19DQU1FTExJQT15CkNPTkZJR19DUllQVE9fQ0FTVF9DT01NT049eQoj
IENPTkZJR19DUllQVE9fQ0FTVDUgaXMgbm90IHNldApDT05GSUdfQ1JZUFRPX0NBU1Q2PXkK
Q09ORklHX0NSWVBUT19ERVM9eQojIENPTkZJR19DUllQVE9fRkNSWVBUIGlzIG5vdCBzZXQK
Q09ORklHX0NSWVBUT19TRVJQRU5UPXkKQ09ORklHX0NSWVBUT19TTTQ9eQpDT05GSUdfQ1JZ
UFRPX1NNNF9HRU5FUklDPXkKQ09ORklHX0NSWVBUT19UV09GSVNIPXkKQ09ORklHX0NSWVBU
T19UV09GSVNIX0NPTU1PTj15CiMgZW5kIG9mIEJsb2NrIGNpcGhlcnMKCiMKIyBMZW5ndGgt
cHJlc2VydmluZyBjaXBoZXJzIGFuZCBtb2RlcwojCkNPTkZJR19DUllQVE9fQURJQU5UVU09
eQpDT05GSUdfQ1JZUFRPX0NIQUNIQTIwPXkKQ09ORklHX0NSWVBUT19DQkM9eQpDT05GSUdf
Q1JZUFRPX0NUUj15CiMgQ09ORklHX0NSWVBUT19DVFMgaXMgbm90IHNldApDT05GSUdfQ1JZ
UFRPX0VDQj15CiMgQ09ORklHX0NSWVBUT19IQ1RSMiBpcyBub3Qgc2V0CkNPTkZJR19DUllQ
VE9fS0VZV1JBUD15CiMgQ09ORklHX0NSWVBUT19MUlcgaXMgbm90IHNldAojIENPTkZJR19D
UllQVE9fUENCQyBpcyBub3Qgc2V0CkNPTkZJR19DUllQVE9fWFRTPXkKQ09ORklHX0NSWVBU
T19OSFBPTFkxMzA1PXkKIyBlbmQgb2YgTGVuZ3RoLXByZXNlcnZpbmcgY2lwaGVycyBhbmQg
bW9kZXMKCiMKIyBBRUFEIChhdXRoZW50aWNhdGVkIGVuY3J5cHRpb24gd2l0aCBhc3NvY2lh
dGVkIGRhdGEpIGNpcGhlcnMKIwpDT05GSUdfQ1JZUFRPX0FFR0lTMTI4PXkKIyBDT05GSUdf
Q1JZUFRPX0NIQUNIQTIwUE9MWTEzMDUgaXMgbm90IHNldApDT05GSUdfQ1JZUFRPX0NDTT15
CkNPTkZJR19DUllQVE9fR0NNPXkKQ09ORklHX0NSWVBUT19HRU5JVj15CiMgQ09ORklHX0NS
WVBUT19TRVFJViBpcyBub3Qgc2V0CkNPTkZJR19DUllQVE9fRUNIQUlOSVY9eQpDT05GSUdf
Q1JZUFRPX0VTU0lWPXkKIyBlbmQgb2YgQUVBRCAoYXV0aGVudGljYXRlZCBlbmNyeXB0aW9u
IHdpdGggYXNzb2NpYXRlZCBkYXRhKSBjaXBoZXJzCgojCiMgSGFzaGVzLCBkaWdlc3RzLCBh
bmQgTUFDcwojCkNPTkZJR19DUllQVE9fQkxBS0UyQj15CkNPTkZJR19DUllQVE9fQ01BQz15
CkNPTkZJR19DUllQVE9fR0hBU0g9eQpDT05GSUdfQ1JZUFRPX0hNQUM9eQpDT05GSUdfQ1JZ
UFRPX01END15CkNPTkZJR19DUllQVE9fTUQ1PXkKQ09ORklHX0NSWVBUT19NSUNIQUVMX01J
Qz15CkNPTkZJR19DUllQVE9fUE9MWTEzMDU9eQpDT05GSUdfQ1JZUFRPX1JNRDE2MD15CkNP
TkZJR19DUllQVE9fU0hBMT15CkNPTkZJR19DUllQVE9fU0hBMjU2PXkKQ09ORklHX0NSWVBU
T19TSEE1MTI9eQpDT05GSUdfQ1JZUFRPX1NIQTM9eQpDT05GSUdfQ1JZUFRPX1NNMz15CiMg
Q09ORklHX0NSWVBUT19TTTNfR0VORVJJQyBpcyBub3Qgc2V0CkNPTkZJR19DUllQVE9fU1RS
RUVCT0c9eQpDT05GSUdfQ1JZUFRPX1ZNQUM9eQpDT05GSUdfQ1JZUFRPX1dQNTEyPXkKQ09O
RklHX0NSWVBUT19YQ0JDPXkKQ09ORklHX0NSWVBUT19YWEhBU0g9eQojIGVuZCBvZiBIYXNo
ZXMsIGRpZ2VzdHMsIGFuZCBNQUNzCgojCiMgQ1JDcyAoY3ljbGljIHJlZHVuZGFuY3kgY2hl
Y2tzKQojCkNPTkZJR19DUllQVE9fQ1JDMzJDPXkKQ09ORklHX0NSWVBUT19DUkMzMj15CkNP
TkZJR19DUllQVE9fQ1JDVDEwRElGPXkKQ09ORklHX0NSWVBUT19DUkM2NF9ST0NLU09GVD15
CiMgZW5kIG9mIENSQ3MgKGN5Y2xpYyByZWR1bmRhbmN5IGNoZWNrcykKCiMKIyBDb21wcmVz
c2lvbgojCiMgQ09ORklHX0NSWVBUT19ERUZMQVRFIGlzIG5vdCBzZXQKQ09ORklHX0NSWVBU
T19MWk89eQojIENPTkZJR19DUllQVE9fODQyIGlzIG5vdCBzZXQKQ09ORklHX0NSWVBUT19M
WjQ9eQpDT05GSUdfQ1JZUFRPX0xaNEhDPXkKQ09ORklHX0NSWVBUT19aU1REPXkKIyBlbmQg
b2YgQ29tcHJlc3Npb24KCiMKIyBSYW5kb20gbnVtYmVyIGdlbmVyYXRpb24KIwpDT05GSUdf
Q1JZUFRPX0FOU0lfQ1BSTkc9eQpDT05GSUdfQ1JZUFRPX0RSQkdfTUVOVT15CkNPTkZJR19D
UllQVE9fRFJCR19ITUFDPXkKIyBDT05GSUdfQ1JZUFRPX0RSQkdfSEFTSCBpcyBub3Qgc2V0
CiMgQ09ORklHX0NSWVBUT19EUkJHX0NUUiBpcyBub3Qgc2V0CkNPTkZJR19DUllQVE9fRFJC
Rz15CkNPTkZJR19DUllQVE9fSklUVEVSRU5UUk9QWT15CkNPTkZJR19DUllQVE9fSklUVEVS
RU5UUk9QWV9NRU1PUllfQkxPQ0tTPTY0CkNPTkZJR19DUllQVE9fSklUVEVSRU5UUk9QWV9N
RU1PUllfQkxPQ0tTSVpFPTMyCkNPTkZJR19DUllQVE9fSklUVEVSRU5UUk9QWV9PU1I9MQpD
T05GSUdfQ1JZUFRPX0tERjgwMDEwOF9DVFI9eQojIGVuZCBvZiBSYW5kb20gbnVtYmVyIGdl
bmVyYXRpb24KCiMKIyBVc2Vyc3BhY2UgaW50ZXJmYWNlCiMKQ09ORklHX0NSWVBUT19VU0VS
X0FQST15CkNPTkZJR19DUllQVE9fVVNFUl9BUElfSEFTSD15CkNPTkZJR19DUllQVE9fVVNF
Ul9BUElfU0tDSVBIRVI9eQojIENPTkZJR19DUllQVE9fVVNFUl9BUElfUk5HIGlzIG5vdCBz
ZXQKQ09ORklHX0NSWVBUT19VU0VSX0FQSV9BRUFEPXkKIyBDT05GSUdfQ1JZUFRPX1VTRVJf
QVBJX0VOQUJMRV9PQlNPTEVURSBpcyBub3Qgc2V0CiMgZW5kIG9mIFVzZXJzcGFjZSBpbnRl
cmZhY2UKCkNPTkZJR19DUllQVE9fSEFTSF9JTkZPPXkKCiMKIyBBY2NlbGVyYXRlZCBDcnlw
dG9ncmFwaGljIEFsZ29yaXRobXMgZm9yIENQVSAoeDg2KQojCiMgQ09ORklHX0NSWVBUT19B
RVNfTklfSU5URUwgaXMgbm90IHNldAojIENPTkZJR19DUllQVE9fU0VSUEVOVF9TU0UyXzU4
NiBpcyBub3Qgc2V0CkNPTkZJR19DUllQVE9fVFdPRklTSF81ODY9eQpDT05GSUdfQ1JZUFRP
X0NSQzMyQ19JTlRFTD15CkNPTkZJR19DUllQVE9fQ1JDMzJfUENMTVVMPXkKIyBlbmQgb2Yg
QWNjZWxlcmF0ZWQgQ3J5cHRvZ3JhcGhpYyBBbGdvcml0aG1zIGZvciBDUFUgKHg4NikKCiMg
Q09ORklHX0NSWVBUT19IVyBpcyBub3Qgc2V0CkNPTkZJR19BU1lNTUVUUklDX0tFWV9UWVBF
PXkKQ09ORklHX0FTWU1NRVRSSUNfUFVCTElDX0tFWV9TVUJUWVBFPXkKQ09ORklHX1g1MDlf
Q0VSVElGSUNBVEVfUEFSU0VSPXkKQ09ORklHX1BLQ1M4X1BSSVZBVEVfS0VZX1BBUlNFUj15
CkNPTkZJR19QS0NTN19NRVNTQUdFX1BBUlNFUj15CiMgQ09ORklHX1BLQ1M3X1RFU1RfS0VZ
IGlzIG5vdCBzZXQKQ09ORklHX1NJR05FRF9QRV9GSUxFX1ZFUklGSUNBVElPTj15CkNPTkZJ
R19GSVBTX1NJR05BVFVSRV9TRUxGVEVTVD15CkNPTkZJR19GSVBTX1NJR05BVFVSRV9TRUxG
VEVTVF9SU0E9eQpDT05GSUdfRklQU19TSUdOQVRVUkVfU0VMRlRFU1RfRUNEU0E9eQoKIwoj
IENlcnRpZmljYXRlcyBmb3Igc2lnbmF0dXJlIGNoZWNraW5nCiMKQ09ORklHX1NZU1RFTV9U
UlVTVEVEX0tFWVJJTkc9eQpDT05GSUdfU1lTVEVNX1RSVVNURURfS0VZUz0iIgpDT05GSUdf
U1lTVEVNX0VYVFJBX0NFUlRJRklDQVRFPXkKQ09ORklHX1NZU1RFTV9FWFRSQV9DRVJUSUZJ
Q0FURV9TSVpFPTQwOTYKIyBDT05GSUdfU0VDT05EQVJZX1RSVVNURURfS0VZUklORyBpcyBu
b3Qgc2V0CkNPTkZJR19TWVNURU1fQkxBQ0tMSVNUX0tFWVJJTkc9eQpDT05GSUdfU1lTVEVN
X0JMQUNLTElTVF9IQVNIX0xJU1Q9IiIKQ09ORklHX1NZU1RFTV9SRVZPQ0FUSU9OX0xJU1Q9
eQpDT05GSUdfU1lTVEVNX1JFVk9DQVRJT05fS0VZUz0iIgojIENPTkZJR19TWVNURU1fQkxB
Q0tMSVNUX0FVVEhfVVBEQVRFIGlzIG5vdCBzZXQKIyBlbmQgb2YgQ2VydGlmaWNhdGVzIGZv
ciBzaWduYXR1cmUgY2hlY2tpbmcKCkNPTkZJR19CSU5BUllfUFJJTlRGPXkKCiMKIyBMaWJy
YXJ5IHJvdXRpbmVzCiMKQ09ORklHX1JBSUQ2X1BRPXkKQ09ORklHX1JBSUQ2X1BRX0JFTkNI
TUFSSz15CkNPTkZJR19MSU5FQVJfUkFOR0VTPXkKQ09ORklHX1BBQ0tJTkc9eQpDT05GSUdf
QklUUkVWRVJTRT15CkNPTkZJR19HRU5FUklDX1NUUk5DUFlfRlJPTV9VU0VSPXkKQ09ORklH
X0dFTkVSSUNfU1RSTkxFTl9VU0VSPXkKQ09ORklHX0dFTkVSSUNfTkVUX1VUSUxTPXkKIyBD
T05GSUdfQ09SRElDIGlzIG5vdCBzZXQKQ09ORklHX1BSSU1FX05VTUJFUlM9eQpDT05GSUdf
UkFUSU9OQUw9eQpDT05GSUdfR0VORVJJQ19JT01BUD15CkNPTkZJR19BUkNIX0hBU19GQVNU
X01VTFRJUExJRVI9eQpDT05GSUdfQVJDSF9VU0VfU1lNX0FOTk9UQVRJT05TPXkKCiMKIyBD
cnlwdG8gbGlicmFyeSByb3V0aW5lcwojCkNPTkZJR19DUllQVE9fTElCX1VUSUxTPXkKQ09O
RklHX0NSWVBUT19MSUJfQUVTPXkKQ09ORklHX0NSWVBUT19MSUJfQVJDND15CkNPTkZJR19D
UllQVE9fTElCX0dGMTI4TVVMPXkKQ09ORklHX0NSWVBUT19MSUJfQkxBS0UyU19HRU5FUklD
PXkKQ09ORklHX0NSWVBUT19MSUJfQ0hBQ0hBX0dFTkVSSUM9eQojIENPTkZJR19DUllQVE9f
TElCX0NIQUNIQSBpcyBub3Qgc2V0CkNPTkZJR19DUllQVE9fTElCX0NVUlZFMjU1MTlfR0VO
RVJJQz15CkNPTkZJR19DUllQVE9fTElCX0NVUlZFMjU1MTk9eQpDT05GSUdfQ1JZUFRPX0xJ
Ql9ERVM9eQpDT05GSUdfQ1JZUFRPX0xJQl9QT0xZMTMwNV9SU0laRT0xCkNPTkZJR19DUllQ
VE9fTElCX1BPTFkxMzA1X0dFTkVSSUM9eQpDT05GSUdfQ1JZUFRPX0xJQl9QT0xZMTMwNT15
CiMgQ09ORklHX0NSWVBUT19MSUJfQ0hBQ0hBMjBQT0xZMTMwNSBpcyBub3Qgc2V0CkNPTkZJ
R19DUllQVE9fTElCX1NIQTE9eQpDT05GSUdfQ1JZUFRPX0xJQl9TSEEyNTY9eQojIGVuZCBv
ZiBDcnlwdG8gbGlicmFyeSByb3V0aW5lcwoKQ09ORklHX0NSQ19DQ0lUVD15CkNPTkZJR19D
UkMxNj15CkNPTkZJR19DUkNfVDEwRElGPXkKQ09ORklHX0NSQzY0X1JPQ0tTT0ZUPXkKQ09O
RklHX0NSQ19JVFVfVD15CkNPTkZJR19DUkMzMj15CkNPTkZJR19DUkMzMl9TRUxGVEVTVD15
CiMgQ09ORklHX0NSQzMyX1NMSUNFQlk4IGlzIG5vdCBzZXQKIyBDT05GSUdfQ1JDMzJfU0xJ
Q0VCWTQgaXMgbm90IHNldApDT05GSUdfQ1JDMzJfU0FSV0FURT15CiMgQ09ORklHX0NSQzMy
X0JJVCBpcyBub3Qgc2V0CkNPTkZJR19DUkM2ND15CkNPTkZJR19DUkM0PXkKQ09ORklHX0NS
Qzc9eQpDT05GSUdfTElCQ1JDMzJDPXkKQ09ORklHX0NSQzg9eQpDT05GSUdfWFhIQVNIPXkK
Q09ORklHX1JBTkRPTTMyX1NFTEZURVNUPXkKQ09ORklHX1pMSUJfSU5GTEFURT15CkNPTkZJ
R19aTElCX0RFRkxBVEU9eQpDT05GSUdfTFpPX0NPTVBSRVNTPXkKQ09ORklHX0xaT19ERUNP
TVBSRVNTPXkKQ09ORklHX0xaNF9DT01QUkVTUz15CkNPTkZJR19MWjRIQ19DT01QUkVTUz15
CkNPTkZJR19MWjRfREVDT01QUkVTUz15CkNPTkZJR19aU1REX0NPTU1PTj15CkNPTkZJR19a
U1REX0NPTVBSRVNTPXkKQ09ORklHX1pTVERfREVDT01QUkVTUz15CkNPTkZJR19YWl9ERUM9
eQpDT05GSUdfWFpfREVDX1g4Nj15CkNPTkZJR19YWl9ERUNfUE9XRVJQQz15CkNPTkZJR19Y
Wl9ERUNfQVJNPXkKQ09ORklHX1haX0RFQ19BUk1USFVNQj15CkNPTkZJR19YWl9ERUNfU1BB
UkM9eQpDT05GSUdfWFpfREVDX01JQ1JPTFpNQT15CkNPTkZJR19YWl9ERUNfQkNKPXkKIyBD
T05GSUdfWFpfREVDX1RFU1QgaXMgbm90IHNldApDT05GSUdfREVDT01QUkVTU19MWk1BPXkK
Q09ORklHX0RFQ09NUFJFU1NfTFo0PXkKQ09ORklHX0RFQ09NUFJFU1NfWlNURD15CkNPTkZJ
R19HRU5FUklDX0FMTE9DQVRPUj15CkNPTkZJR19SRUVEX1NPTE9NT049eQpDT05GSUdfUkVF
RF9TT0xPTU9OX0VOQzg9eQpDT05GSUdfUkVFRF9TT0xPTU9OX0RFQzg9eQpDT05GSUdfQkNI
PXkKQ09ORklHX0JDSF9DT05TVF9QQVJBTVM9eQpDT05GSUdfSU5URVJWQUxfVFJFRT15CkNP
TkZJR19JTlRFUlZBTF9UUkVFX1NQQU5fSVRFUj15CkNPTkZJR19YQVJSQVlfTVVMVEk9eQpD
T05GSUdfQVNTT0NJQVRJVkVfQVJSQVk9eQpDT05GSUdfQ0xPU1VSRVM9eQpDT05GSUdfSEFT
X0lPTUVNPXkKQ09ORklHX0hBU19JT1BPUlQ9eQpDT05GSUdfSEFTX0lPUE9SVF9NQVA9eQpD
T05GSUdfSEFTX0RNQT15CkNPTkZJR19ETUFfT1BTPXkKQ09ORklHX05FRURfU0dfRE1BX0xF
TkdUSD15CkNPTkZJR19ETUFfREVDTEFSRV9DT0hFUkVOVD15CkNPTkZJR19ETUFfTkVFRF9T
WU5DPXkKQ09ORklHX0RNQV9DTUE9eQoKIwojIERlZmF1bHQgY29udGlndW91cyBtZW1vcnkg
YXJlYSBzaXplOgojCkNPTkZJR19DTUFfU0laRV9QRVJDRU5UQUdFPTAKIyBDT05GSUdfQ01B
X1NJWkVfU0VMX01CWVRFUyBpcyBub3Qgc2V0CkNPTkZJR19DTUFfU0laRV9TRUxfUEVSQ0VO
VEFHRT15CiMgQ09ORklHX0NNQV9TSVpFX1NFTF9NSU4gaXMgbm90IHNldAojIENPTkZJR19D
TUFfU0laRV9TRUxfTUFYIGlzIG5vdCBzZXQKQ09ORklHX0NNQV9BTElHTk1FTlQ9OAojIENP
TkZJR19ETUFfQVBJX0RFQlVHIGlzIG5vdCBzZXQKQ09ORklHX0RNQV9NQVBfQkVOQ0hNQVJL
PXkKQ09ORklHX1NHTF9BTExPQz15CkNPTkZJR19GT1JDRV9OUl9DUFVTPXkKQ09ORklHX0RR
TD15CkNPTkZJR19HTE9CPXkKQ09ORklHX0dMT0JfU0VMRlRFU1Q9eQpDT05GSUdfTkxBVFRS
PXkKQ09ORklHX0NMWl9UQUI9eQojIENPTkZJR19JUlFfUE9MTCBpcyBub3Qgc2V0CkNPTkZJ
R19NUElMSUI9eQpDT05GSUdfRElNTElCPXkKQ09ORklHX0xJQkZEVD15CkNPTkZJR19PSURf
UkVHSVNUUlk9eQpDT05GSUdfSEFWRV9HRU5FUklDX1ZEU089eQpDT05GSUdfR0VORVJJQ19H
RVRUSU1FT0ZEQVk9eQpDT05GSUdfR0VORVJJQ19WRFNPXzMyPXkKQ09ORklHX0dFTkVSSUNf
VkRTT19USU1FX05TPXkKQ09ORklHX0dFTkVSSUNfVkRTT19PVkVSRkxPV19QUk9URUNUPXkK
Q09ORklHX0ZPTlRfU1VQUE9SVD15CkNPTkZJR19GT05UXzh4MTY9eQpDT05GSUdfRk9OVF9B
VVRPU0VMRUNUPXkKQ09ORklHX1NHX1BPT0w9eQpDT05GSUdfQVJDSF9IQVNfQ1BVX0NBQ0hF
X0lOVkFMSURBVEVfTUVNUkVHSU9OPXkKQ09ORklHX0FSQ0hfU1RBQ0tXQUxLPXkKQ09ORklH
X1NUQUNLREVQT1Q9eQpDT05GSUdfU1RBQ0tERVBPVF9BTFdBWVNfSU5JVD15CkNPTkZJR19T
VEFDS0RFUE9UX01BWF9GUkFNRVM9NjQKQ09ORklHX1NCSVRNQVA9eQojIENPTkZJR19MV1Ff
VEVTVCBpcyBub3Qgc2V0CiMgZW5kIG9mIExpYnJhcnkgcm91dGluZXMKCkNPTkZJR19BU04x
X0VOQ09ERVI9eQpDT05GSUdfUE9MWU5PTUlBTD15CgojCiMgS2VybmVsIGhhY2tpbmcKIwoK
IwojIHByaW50ayBhbmQgZG1lc2cgb3B0aW9ucwojCiMgQ09ORklHX1BSSU5US19USU1FIGlz
IG5vdCBzZXQKQ09ORklHX1BSSU5US19DQUxMRVI9eQpDT05GSUdfU1RBQ0tUUkFDRV9CVUlM
RF9JRD15CkNPTkZJR19DT05TT0xFX0xPR0xFVkVMX0RFRkFVTFQ9NwpDT05GSUdfQ09OU09M
RV9MT0dMRVZFTF9RVUlFVD00CkNPTkZJR19NRVNTQUdFX0xPR0xFVkVMX0RFRkFVTFQ9NAoj
IENPTkZJR19EWU5BTUlDX0RFQlVHIGlzIG5vdCBzZXQKIyBDT05GSUdfRFlOQU1JQ19ERUJV
R19DT1JFIGlzIG5vdCBzZXQKQ09ORklHX1NZTUJPTElDX0VSUk5BTUU9eQpDT05GSUdfREVC
VUdfQlVHVkVSQk9TRT15CiMgZW5kIG9mIHByaW50ayBhbmQgZG1lc2cgb3B0aW9ucwoKIyBD
T05GSUdfREVCVUdfS0VSTkVMIGlzIG5vdCBzZXQKCiMKIyBDb21waWxlLXRpbWUgY2hlY2tz
IGFuZCBjb21waWxlciBvcHRpb25zCiMKQ09ORklHX0FTX0hBU19OT05fQ09OU1RfVUxFQjEy
OD15CkNPTkZJR19GUkFNRV9XQVJOPTEwMjQKIyBDT05GSUdfU1RSSVBfQVNNX1NZTVMgaXMg
bm90IHNldApDT05GSUdfSEVBREVSU19JTlNUQUxMPXkKQ09ORklHX0RFQlVHX1NFQ1RJT05f
TUlTTUFUQ0g9eQpDT05GSUdfU0VDVElPTl9NSVNNQVRDSF9XQVJOX09OTFk9eQpDT05GSUdf
QVJDSF9XQU5UX0ZSQU1FX1BPSU5URVJTPXkKQ09ORklHX0ZSQU1FX1BPSU5URVI9eQojIGVu
ZCBvZiBDb21waWxlLXRpbWUgY2hlY2tzIGFuZCBjb21waWxlciBvcHRpb25zCgojCiMgR2Vu
ZXJpYyBLZXJuZWwgRGVidWdnaW5nIEluc3RydW1lbnRzCiMKIyBDT05GSUdfTUFHSUNfU1lT
UlEgaXMgbm90IHNldApDT05GSUdfREVCVUdfRlM9eQojIENPTkZJR19ERUJVR19GU19BTExP
V19BTEwgaXMgbm90IHNldAojIENPTkZJR19ERUJVR19GU19ESVNBTExPV19NT1VOVCBpcyBu
b3Qgc2V0CkNPTkZJR19ERUJVR19GU19BTExPV19OT05FPXkKQ09ORklHX0hBVkVfQVJDSF9L
R0RCPXkKQ09ORklHX0FSQ0hfSEFTX1VCU0FOPXkKIyBDT05GSUdfVUJTQU4gaXMgbm90IHNl
dApDT05GSUdfSEFWRV9LQ1NBTl9DT01QSUxFUj15CiMgZW5kIG9mIEdlbmVyaWMgS2VybmVs
IERlYnVnZ2luZyBJbnN0cnVtZW50cwoKIwojIE5ldHdvcmtpbmcgRGVidWdnaW5nCiMKIyBl
bmQgb2YgTmV0d29ya2luZyBEZWJ1Z2dpbmcKCiMKIyBNZW1vcnkgRGVidWdnaW5nCiMKQ09O
RklHX1BBR0VfRVhURU5TSU9OPXkKQ09ORklHX1NMVUJfREVCVUc9eQpDT05GSUdfU0xVQl9E
RUJVR19PTj15CkNPTkZJR19QQUdFX1BPSVNPTklORz15CiMgQ09ORklHX0RFQlVHX1JPREFU
QV9URVNUIGlzIG5vdCBzZXQKQ09ORklHX0FSQ0hfSEFTX0RFQlVHX1dYPXkKIyBDT05GSUdf
REVCVUdfV1ggaXMgbm90IHNldApDT05GSUdfR0VORVJJQ19QVERVTVA9eQpDT05GSUdfSEFW
RV9ERUJVR19LTUVNTEVBSz15CiMgQ09ORklHX1NIUklOS0VSX0RFQlVHIGlzIG5vdCBzZXQK
Q09ORklHX0FSQ0hfSEFTX0RFQlVHX1ZNX1BHVEFCTEU9eQojIENPTkZJR19ERUJVR19WTV9Q
R1RBQkxFIGlzIG5vdCBzZXQKQ09ORklHX0FSQ0hfSEFTX0RFQlVHX1ZJUlRVQUw9eQpDT05G
SUdfREVCVUdfTUVNT1JZX0lOSVQ9eQpDT05GSUdfQVJDSF9TVVBQT1JUU19LTUFQX0xPQ0FM
X0ZPUkNFX01BUD15CkNPTkZJR19IQVZFX0RFQlVHX1NUQUNLT1ZFUkZMT1c9eQpDT05GSUdf
Q09ERV9UQUdHSU5HPXkKQ09ORklHX01FTV9BTExPQ19QUk9GSUxJTkc9eQpDT05GSUdfTUVN
X0FMTE9DX1BST0ZJTElOR19FTkFCTEVEX0JZX0RFRkFVTFQ9eQpDT05GSUdfTUVNX0FMTE9D
X1BST0ZJTElOR19ERUJVRz15CkNPTkZJR19DQ19IQVNfS0FTQU5fR0VORVJJQz15CkNPTkZJ
R19DQ19IQVNfV09SS0lOR19OT1NBTklUSVpFX0FERFJFU1M9eQpDT05GSUdfSEFWRV9BUkNI
X0tGRU5DRT15CkNPTkZJR19LRkVOQ0U9eQpDT05GSUdfS0ZFTkNFX1NBTVBMRV9JTlRFUlZB
TD0xMDAKQ09ORklHX0tGRU5DRV9OVU1fT0JKRUNUUz0yNTUKIyBDT05GSUdfS0ZFTkNFX0RF
RkVSUkFCTEUgaXMgbm90IHNldApDT05GSUdfS0ZFTkNFX1NUUkVTU19URVNUX0ZBVUxUUz0w
CiMgZW5kIG9mIE1lbW9yeSBEZWJ1Z2dpbmcKCiMKIyBEZWJ1ZyBPb3BzLCBMb2NrdXBzIGFu
ZCBIYW5ncwojCiMgQ09ORklHX1BBTklDX09OX09PUFMgaXMgbm90IHNldApDT05GSUdfUEFO
SUNfT05fT09QU19WQUxVRT0wCkNPTkZJR19QQU5JQ19USU1FT1VUPTAKIyBlbmQgb2YgRGVi
dWcgT29wcywgTG9ja3VwcyBhbmQgSGFuZ3MKCiMKIyBTY2hlZHVsZXIgRGVidWdnaW5nCiMK
IyBDT05GSUdfU0NIRURTVEFUUyBpcyBub3Qgc2V0CiMgZW5kIG9mIFNjaGVkdWxlciBEZWJ1
Z2dpbmcKCkNPTkZJR19ERUJVR19USU1FS0VFUElORz15CgojCiMgTG9jayBEZWJ1Z2dpbmcg
KHNwaW5sb2NrcywgbXV0ZXhlcywgZXRjLi4uKQojCkNPTkZJR19MT0NLX0RFQlVHR0lOR19T
VVBQT1JUPXkKQ09ORklHX1dXX01VVEVYX1NFTEZURVNUPXkKIyBlbmQgb2YgTG9jayBEZWJ1
Z2dpbmcgKHNwaW5sb2NrcywgbXV0ZXhlcywgZXRjLi4uKQoKIyBDT05GSUdfREVCVUdfSVJR
RkxBR1MgaXMgbm90IHNldApDT05GSUdfU1RBQ0tUUkFDRT15CkNPTkZJR19XQVJOX0FMTF9V
TlNFRURFRF9SQU5ET009eQoKIwojIERlYnVnIGtlcm5lbCBkYXRhIHN0cnVjdHVyZXMKIwoj
IENPTkZJR19ERUJVR19DTE9TVVJFUyBpcyBub3Qgc2V0CiMgZW5kIG9mIERlYnVnIGtlcm5l
bCBkYXRhIHN0cnVjdHVyZXMKCiMKIyBSQ1UgRGVidWdnaW5nCiMKQ09ORklHX1JDVV9DUFVf
U1RBTExfVElNRU9VVD0yMQpDT05GSUdfUkNVX0VYUF9DUFVfU1RBTExfVElNRU9VVD0wCiMg
Q09ORklHX1JDVV9DUFVfU1RBTExfQ1BVVElNRSBpcyBub3Qgc2V0CiMgZW5kIG9mIFJDVSBE
ZWJ1Z2dpbmcKCkNPTkZJR19VU0VSX1NUQUNLVFJBQ0VfU1VQUE9SVD15CkNPTkZJR19IQVZF
X1JFVEhPT0s9eQpDT05GSUdfUkVUSE9PSz15CkNPTkZJR19IQVZFX0ZVTkNUSU9OX1RSQUNF
Uj15CkNPTkZJR19IQVZFX0ZVTkNUSU9OX0dSQVBIX1RSQUNFUj15CkNPTkZJR19IQVZFX0ZV
TkNUSU9OX0dSQVBIX1JFVFZBTD15CkNPTkZJR19IQVZFX0RZTkFNSUNfRlRSQUNFPXkKQ09O
RklHX0hBVkVfRFlOQU1JQ19GVFJBQ0VfV0lUSF9SRUdTPXkKQ09ORklHX0hBVkVfRFlOQU1J
Q19GVFJBQ0VfV0lUSF9ESVJFQ1RfQ0FMTFM9eQpDT05GSUdfSEFWRV9EWU5BTUlDX0ZUUkFD
RV9OT19QQVRDSEFCTEU9eQpDT05GSUdfSEFWRV9GVFJBQ0VfTUNPVU5UX1JFQ09SRD15CkNP
TkZJR19IQVZFX1NZU0NBTExfVFJBQ0VQT0lOVFM9eQpDT05GSUdfSEFWRV9DX1JFQ09SRE1D
T1VOVD15CkNPTkZJR19IQVZFX0JVSUxEVElNRV9NQ09VTlRfU09SVD15CkNPTkZJR19UUkFD
SU5HX1NVUFBPUlQ9eQojIENPTkZJR19GVFJBQ0UgaXMgbm90IHNldAojIENPTkZJR19TQU1Q
TEVTIGlzIG5vdCBzZXQKQ09ORklHX0FSQ0hfSEFTX0RFVk1FTV9JU19BTExPV0VEPXkKIyBD
T05GSUdfU1RSSUNUX0RFVk1FTSBpcyBub3Qgc2V0CgojCiMgeDg2IERlYnVnZ2luZwojCkNP
TkZJR19YODZfVkVSQk9TRV9CT09UVVA9eQpDT05GSUdfRUFSTFlfUFJJTlRLPXkKQ09ORklH
X0hBVkVfTU1JT1RSQUNFX1NVUFBPUlQ9eQojIENPTkZJR19JT19ERUxBWV8wWDgwIGlzIG5v
dCBzZXQKIyBDT05GSUdfSU9fREVMQVlfMFhFRCBpcyBub3Qgc2V0CiMgQ09ORklHX0lPX0RF
TEFZX1VERUxBWSBpcyBub3Qgc2V0CkNPTkZJR19JT19ERUxBWV9OT05FPXkKQ09ORklHX1VO
V0lOREVSX0ZSQU1FX1BPSU5URVI9eQojIGVuZCBvZiB4ODYgRGVidWdnaW5nCgojCiMgS2Vy
bmVsIFRlc3RpbmcgYW5kIENvdmVyYWdlCiMKQ09ORklHX0tVTklUPXkKQ09ORklHX0tVTklU
X0RFQlVHRlM9eQojIENPTkZJR19LVU5JVF9GQVVMVF9URVNUIGlzIG5vdCBzZXQKQ09ORklH
X0tVTklUX1RFU1Q9eQpDT05GSUdfS1VOSVRfRVhBTVBMRV9URVNUPXkKQ09ORklHX0tVTklU
X0FMTF9URVNUUz15CkNPTkZJR19LVU5JVF9ERUZBVUxUX0VOQUJMRUQ9eQojIENPTkZJR19G
VU5DVElPTl9FUlJPUl9JTkpFQ1RJT04gaXMgbm90IHNldApDT05GSUdfQ0NfSEFTX1NBTkNP
Vl9UUkFDRV9QQz15CkNPTkZJR19SVU5USU1FX1RFU1RJTkdfTUVOVT15CiMgQ09ORklHX1RF
U1RfREhSWSBpcyBub3Qgc2V0CkNPTkZJR19MS0RUTT15CkNPTkZJR19DUFVNQVNLX0tVTklU
X1RFU1Q9eQpDT05GSUdfVEVTVF9MSVNUX1NPUlQ9eQpDT05GSUdfVEVTVF9TT1JUPXkKQ09O
RklHX1RFU1RfSU9WX0lURVI9eQpDT05GSUdfQVRPTUlDNjRfU0VMRlRFU1Q9eQpDT05GSUdf
QVNZTkNfUkFJRDZfVEVTVD15CkNPTkZJR19URVNUX0hFWERVTVA9eQpDT05GSUdfU1RSSU5H
X0tVTklUX1RFU1Q9eQpDT05GSUdfU1RSSU5HX0hFTFBFUlNfS1VOSVRfVEVTVD15CiMgQ09O
RklHX1RFU1RfS1NUUlRPWCBpcyBub3Qgc2V0CkNPTkZJR19URVNUX1BSSU5URj15CiMgQ09O
RklHX1RFU1RfU0NBTkYgaXMgbm90IHNldApDT05GSUdfVEVTVF9CSVRNQVA9eQojIENPTkZJ
R19URVNUX1VVSUQgaXMgbm90IHNldApDT05GSUdfVEVTVF9YQVJSQVk9eQpDT05GSUdfVEVT
VF9NQVBMRV9UUkVFPXkKQ09ORklHX1RFU1RfUkhBU0hUQUJMRT15CiMgQ09ORklHX1RFU1Rf
SURBIGlzIG5vdCBzZXQKQ09ORklHX1RFU1RfQklUT1BTPXkKIyBDT05GSUdfRklORF9CSVRf
QkVOQ0hNQVJLIGlzIG5vdCBzZXQKIyBDT05GSUdfVEVTVF9GSVJNV0FSRSBpcyBub3Qgc2V0
CiMgQ09ORklHX1RFU1RfU1lTQ1RMIGlzIG5vdCBzZXQKQ09ORklHX0JJVEZJRUxEX0tVTklU
PXkKQ09ORklHX0NIRUNLU1VNX0tVTklUPXkKQ09ORklHX0hBU0hfS1VOSVRfVEVTVD15CkNP
TkZJR19SRVNPVVJDRV9LVU5JVF9URVNUPXkKQ09ORklHX1NZU0NUTF9LVU5JVF9URVNUPXkK
Q09ORklHX0xJU1RfS1VOSVRfVEVTVD15CkNPTkZJR19IQVNIVEFCTEVfS1VOSVRfVEVTVD15
CkNPTkZJR19MSU5FQVJfUkFOR0VTX1RFU1Q9eQpDT05GSUdfQ01ETElORV9LVU5JVF9URVNU
PXkKQ09ORklHX0JJVFNfVEVTVD15CkNPTkZJR19TTFVCX0tVTklUX1RFU1Q9eQpDT05GSUdf
UkFUSU9OQUxfS1VOSVRfVEVTVD15CkNPTkZJR19NRU1DUFlfS1VOSVRfVEVTVD15CkNPTkZJ
R19JU19TSUdORURfVFlQRV9LVU5JVF9URVNUPXkKQ09ORklHX09WRVJGTE9XX0tVTklUX1RF
U1Q9eQpDT05GSUdfU1RBQ0tJTklUX0tVTklUX1RFU1Q9eQpDT05GSUdfRk9SVElGWV9LVU5J
VF9URVNUPXkKQ09ORklHX0hXX0JSRUFLUE9JTlRfS1VOSVRfVEVTVD15CkNPTkZJR19TSVBI
QVNIX0tVTklUX1RFU1Q9eQpDT05GSUdfVEVTVF9VREVMQVk9eQpDT05GSUdfVEVTVF9NRU1D
QVRfUD15CkNPTkZJR19URVNUX01FTUlOSVQ9eQpDT05GSUdfVEVTVF9GUkVFX1BBR0VTPXkK
Q09ORklHX1RFU1RfRlBVPXkKQ09ORklHX1RFU1RfQ0xPQ0tTT1VSQ0VfV0FUQ0hET0c9eQpD
T05GSUdfQVJDSF9VU0VfTUVNVEVTVD15CkNPTkZJR19NRU1URVNUPXkKIyBlbmQgb2YgS2Vy
bmVsIFRlc3RpbmcgYW5kIENvdmVyYWdlCgojCiMgUnVzdCBoYWNraW5nCiMKIyBlbmQgb2Yg
UnVzdCBoYWNraW5nCiMgZW5kIG9mIEtlcm5lbCBoYWNraW5nCg==

--------------nvS90J5jVx9A2eOKCM10GLvN--
.

X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
From: "Rafael J. Wysocki" <rafael@kernel.org>
Date: Thu, 27 Jun 2024 21:12:35 +0200
Message-ID: <CAJZ5v0jM5kFeijcSf+UrCsX9L3mNY-p4FQ880x7theVX-ObCEw@mail.gmail.com>
Subject: [GIT PULL] Thermal control fixes for v6.10-rc6
To: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Linux PM <linux-pm@vger.kernel.org>, 
	Linux Kernel Mailing List <linux-kernel@vger.kernel.org>, Daniel Lezcano <daniel.lezcano@linaro.org>
Content-Type: text/plain; charset="UTF-8"
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1261333
Newsgroups: org.kernel.vger.linux-kernel,org.kernel.vger.linux-pm
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

Hi Linus,

Please pull from the tag

 git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm.git \
 thermal-6.10-rc6

with top-most commit 529038146ba189f7551d64faf4f4871e4ab97538

 thermal: gov_step_wise: Go straight to instance->lower when mitigation is over

on top of commit f2661062f16b2de5d7b6a5c42a9a5c96326b8454

 Linux 6.10-rc5

to receive a thermal control fix for 6.10-rc6.

This replaces an earlier fix for a recent regression in the Step-Wise
thermal governor that was not effective in all of the relevant cases.

Thanks!


---------------

Rafael J. Wysocki (1):
      thermal: gov_step_wise: Go straight to instance->lower when
mitigation is over

---------------

 drivers/thermal/gov_step_wise.c | 23 +++++------------------
 1 file changed, 5 insertions(+), 18 deletions(-)
.

X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
From: "Rafael J. Wysocki" <rafael@kernel.org>
Date: Thu, 27 Jun 2024 21:14:09 +0200
Message-ID: <CAJZ5v0h__X99p9mZLT29_pY3_4Z0wz=EDmaGmo1HntF5SO7HfQ@mail.gmail.com>
Subject: [GIT PULL] Power management fix for v6.10-rc6
To: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Linux PM <linux-pm@vger.kernel.org>, 
	Linux Kernel Mailing List <linux-kernel@vger.kernel.org>, 
	ACPI Devel Maling List <linux-acpi@vger.kernel.org>, 
	Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
Content-Type: text/plain; charset="UTF-8"
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1261335
Newsgroups: org.kernel.vger.linux-kernel,org.kernel.vger.linux-acpi,org.kernel.vger.linux-pm
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

Hi Linus,

Please pull from the tag

 git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm.git \
 pm-6.10-rc6

with top-most commit a1ff59784b277795a613beaa5d3dd9c5595c69a7

 cpufreq: intel_pstate: Use HWP to initialize ITMT if CPPC is missing

on top of commit f2661062f16b2de5d7b6a5c42a9a5c96326b8454

 Linux 6.10-rc5

to receive a power management fix for 6.10-rc6.

This modifies the intel_pstate driver to use HWP to initialize the ITMT
scheduler extension if ACPI CPPC cannot be used for that, which is the
case on some hybrid x86 systems.

Thanks!


---------------

Rafael J. Wysocki (1):
      cpufreq: intel_pstate: Use HWP to initialize ITMT if CPPC is missing

---------------

 drivers/cpufreq/intel_pstate.c | 13 ++++++-------
 1 file changed, 6 insertions(+), 7 deletions(-)
.

Date: Thu, 27 Jun 2024 19:30:30 +0000
To: linux-kernel@vger.kernel.org
From: Raymond Hackley <raymondhackley@protonmail.com>
Cc: Bjorn Andersson <andersson@kernel.org>, Konrad Dybcio <konrad.dybcio@linaro.org>, Rob Herring <robh+dt@kernel.org>, Krzysztof Kozlowski <krzysztof.kozlowski+dt@linaro.org>, Conor Dooley <conor+dt@kernel.org>, linux-arm-msm@vger.kernel.org, devicetree@vger.kernel.org, phone-devel@vger.kernel.org, ~postmarketos/upstreaming@lists.sr.ht
Subject: [PATCH v2 0/2] ARM: dts: qcom-msm8226-samsung-ms013g: Add initial device tree
Message-ID: <20240627193013.1800-1-raymondhackley@protonmail.com>
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1261346
Newsgroups: org.kernel.vger.linux-kernel,org.kernel.vger.linux-arm-msm,org.kernel.vger.linux-devicetree,org.kernel.vger.phone-devel
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

Samsung Galaxy Grand 2 is a phone based on MSM8226. It's similar to the
other Samsung devices based on MSM8226 with only a few minor differences.

The device trees contain initial support with:
 - GPIO keys
 - Regulator haptic
 - SDHCI (internal and external storage)
 - UART (on USB connector via the TI TSU6721 MUIC)
 - Regulators
 - Touchscreen
 - Accelerometer

---
v2: Adjust l3, l15, l22 and l27 regulator voltages. Sort nodes.
    Set regulator-allow-set-load for vqmmc supplies.


.

From: Namhyung Kim <namhyung@kernel.org>
To: Arnaldo Carvalho de Melo <acme@kernel.org>,
	Ian Rogers <irogers@google.com>,
	Kan Liang <kan.liang@linux.intel.com>
Cc: Jiri Olsa <jolsa@kernel.org>,
	Adrian Hunter <adrian.hunter@intel.com>,
	Peter Zijlstra <peterz@infradead.org>,
	Ingo Molnar <mingo@kernel.org>,
	LKML <linux-kernel@vger.kernel.org>,
	linux-perf-users@vger.kernel.org
Subject: [PATCH 1/2] perf stat: Use field separator in the metric header
Date: Thu, 27 Jun 2024 13:03:52 -0700
Message-ID: <20240627200353.1230407-1-namhyung@kernel.org>
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1261370
Newsgroups: org.kernel.vger.linux-kernel,org.kernel.vger.linux-perf-users
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

It didn't use the passed field separator (using -x option) when it
prints the metric headers and always put "," between the fields.

Before:
  $ sudo ./perf stat -a -x : --per-core -M tma_core_bound --metric-only true
  core,cpus,%  tma_core_bound:     <<<--- here: "core,cpus," but ":" expected
  S0-D0-C0:2:10.5:
  S0-D0-C1:2:14.8:
  S0-D0-C2:2:9.9:
  S0-D0-C3:2:13.2:

After:
  $ sudo ./perf stat -a -x : --per-core -M tma_core_bound --metric-only true
  core:cpus:%  tma_core_bound:
  S0-D0-C0:2:10.5:
  S0-D0-C1:2:15.0:
  S0-D0-C2:2:16.5:
  S0-D0-C3:2:12.5:

Signed-off-by: Namhyung Kim <namhyung@kernel.org>
---
 tools/perf/util/stat-display.c | 37 ++++++++++++++++++++++++++--------
 1 file changed, 29 insertions(+), 8 deletions(-)

diff --git a/tools/perf/util/stat-display.c b/tools/perf/util/stat-display.c
index 91d2f7f65df7..e8673c9f6b49 100644
--- a/tools/perf/util/stat-display.c
+++ b/tools/perf/util/stat-display.c
@@ -47,16 +47,27 @@ static int aggr_header_lens[] = {
 };
 
 static const char *aggr_header_csv[] = {
-	[AGGR_CORE] 	= 	"core,cpus,",
-	[AGGR_CACHE]	= 	"cache,cpus,",
-	[AGGR_DIE] 	= 	"die,cpus,",
-	[AGGR_SOCKET] 	= 	"socket,cpus,",
-	[AGGR_NONE] 	= 	"cpu,",
-	[AGGR_THREAD] 	= 	"comm-pid,",
-	[AGGR_NODE] 	= 	"node,",
+	[AGGR_CORE] 	= 	"core%scpus%s",
+	[AGGR_CACHE]	= 	"cache%scpus%s",
+	[AGGR_DIE] 	= 	"die%scpus%s",
+	[AGGR_SOCKET] 	= 	"socket%scpus%s",
+	[AGGR_NONE] 	= 	"cpu%s",
+	[AGGR_THREAD] 	= 	"comm-pid%s",
+	[AGGR_NODE] 	= 	"node%s",
 	[AGGR_GLOBAL] 	=	""
 };
 
+static int aggr_header_num[] = {
+	[AGGR_CORE] 	= 	2,
+	[AGGR_CACHE]	= 	2,
+	[AGGR_DIE] 	= 	2,
+	[AGGR_SOCKET] 	= 	2,
+	[AGGR_NONE] 	= 	1,
+	[AGGR_THREAD] 	= 	1,
+	[AGGR_NODE] 	= 	1,
+	[AGGR_GLOBAL] 	=	0,
+};
+
 static const char *aggr_header_std[] = {
 	[AGGR_CORE] 	= 	"core",
 	[AGGR_CACHE] 	= 	"cache",
@@ -1185,8 +1196,18 @@ static void print_metric_headers_csv(struct perf_stat_config *config,
 {
 	if (config->interval)
 		fputs("time,", config->output);
-	if (!config->iostat_run)
+	if (config->iostat_run)
+		return;
+
+	if (aggr_header_num[config->aggr_mode] == 1) {
+		fprintf(config->output, aggr_header_csv[config->aggr_mode],
+			config->csv_sep);
+	} else if (aggr_header_num[config->aggr_mode] == 2) {
+		fprintf(config->output, aggr_header_csv[config->aggr_mode],
+			config->csv_sep, config->csv_sep);
+	} else {
 		fputs(aggr_header_csv[config->aggr_mode], config->output);
+	}
 }
 
 static void print_metric_headers_json(struct perf_stat_config *config __maybe_unused,
-- 
2.45.2.803.g4e1b14247a-goog

.

From: Frank Li <Frank.Li@nxp.com>
To: Linus Walleij <linus.walleij@linaro.org>,
	Bartosz Golaszewski <brgl@bgdev.pl>,
	Rob Herring <robh@kernel.org>,
	Krzysztof Kozlowski <krzk+dt@kernel.org>,
	Conor Dooley <conor+dt@kernel.org>,
	linux-gpio@vger.kernel.org (open list:GPIO SUBSYSTEM),
	devicetree@vger.kernel.org (open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS),
	linux-kernel@vger.kernel.org (open list)
Cc: imx@lists.linux.dev
Subject: [PATCH 1/1] dt-bindings: gpio: fsl,qoriq-gpio: add common property gpio-line-names
Date: Thu, 27 Jun 2024 16:21:51 -0400
Message-Id: <20240627202151.456812-1-Frank.Li@nxp.com>
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1261380
Newsgroups: org.kernel.vger.linux-kernel,dev.linux.lists.imx,org.kernel.vger.linux-devicetree,org.kernel.vger.linux-gpio
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

Add common gpio-line-names property for fsl,qoriq-gpio to fix below
warning.

arch/arm64/boot/dts/freescale/fsl-ls1028a-kontron-kbox-a-230-ls.dtb: gpio@2300000: 'gpio-line-names' does not match any of the regexes: 'pinctrl-[0-9]+'
        from schema $id: http://devicetree.org/schemas/gpio/fsl,qoriq-gpio.yaml

Signed-off-by: Frank Li <Frank.Li@nxp.com>
---
 Documentation/devicetree/bindings/gpio/fsl,qoriq-gpio.yaml | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/Documentation/devicetree/bindings/gpio/fsl,qoriq-gpio.yaml b/Documentation/devicetree/bindings/gpio/fsl,qoriq-gpio.yaml
index d5f056b35d805..84fd82291ee40 100644
--- a/Documentation/devicetree/bindings/gpio/fsl,qoriq-gpio.yaml
+++ b/Documentation/devicetree/bindings/gpio/fsl,qoriq-gpio.yaml
@@ -45,6 +45,10 @@ properties:
   "#interrupt-cells":
     const: 2
 
+  gpio-line-names:
+    minItems: 1
+    maxItems: 32
+
   little-endian:
     $ref: /schemas/types.yaml#/definitions/flag
     description:
-- 
2.34.1

.

From: Frank Li <Frank.Li@nxp.com>
To: Vladimir Oltean <olteanv@gmail.com>,
	Mark Brown <broonie@kernel.org>,
	Rob Herring <robh@kernel.org>,
	Krzysztof Kozlowski <krzk+dt@kernel.org>,
	Conor Dooley <conor+dt@kernel.org>,
	linux-spi@vger.kernel.org (open list:FREESCALE DSPI DRIVER),
	devicetree@vger.kernel.org (open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS),
	linux-kernel@vger.kernel.org (open list)
Cc: imx@lists.linux.dev
Subject: [PATCH 1/1] spi: dt-bindings: fsl-dspi: add dmas and dma-names properties
Date: Thu, 27 Jun 2024 16:33:08 -0400
Message-Id: <20240627203308.476437-1-Frank.Li@nxp.com>
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1261390
Newsgroups: org.kernel.vger.linux-kernel,dev.linux.lists.imx,org.kernel.vger.linux-devicetree,org.kernel.vger.linux-spi
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

Add dmas and dma-names properties because dspi support dma transfer.
Fix below warnings:
arch/arm64/boot/dts/freescale/fsl-ls1028a-kontron-sl28-var1.dtb: spi@2120000: Unevaluated properties are not allowed ('dma-names', 'dmas', 'little-endian' were unexpected)
        from schema $id: http://devicetree.org/schemas/spi/fsl,dspi.yaml#

Signed-off-by: Frank Li <Frank.Li@nxp.com>
---
 Documentation/devicetree/bindings/spi/fsl,dspi.yaml | 10 ++++++++++
 1 file changed, 10 insertions(+)

diff --git a/Documentation/devicetree/bindings/spi/fsl,dspi.yaml b/Documentation/devicetree/bindings/spi/fsl,dspi.yaml
index eb3deac49bb1a..7ca8fceda7179 100644
--- a/Documentation/devicetree/bindings/spi/fsl,dspi.yaml
+++ b/Documentation/devicetree/bindings/spi/fsl,dspi.yaml
@@ -51,6 +51,16 @@ properties:
     items:
       - const: dspi
 
+  dmas:
+    items:
+      - description: DMA controller phandle and request line for TX
+      - description: DMA controller phandle and request line for RX
+
+  dma-names:
+    items:
+      - const: tx
+      - const: rx
+
   spi-num-chipselects:
     $ref: /schemas/types.yaml#/definitions/uint32
     description:
-- 
2.34.1

.

From: Tony Luck <tony.luck@intel.com>
To: Fenghua Yu <fenghua.yu@intel.com>,
	Reinette Chatre <reinette.chatre@intel.com>,
	Maciej Wieczor-Retman <maciej.wieczor-retman@intel.com>,
	Peter Newman <peternewman@google.com>,
	James Morse <james.morse@arm.com>,
	Babu Moger <babu.moger@amd.com>,
	Drew Fustini <dfustini@baylibre.com>,
	Dave Martin <Dave.Martin@arm.com>
Cc: x86@kernel.org,
	linux-kernel@vger.kernel.org,
	patches@lists.linux.dev,
	Tony Luck <tony.luck@intel.com>
Subject: [PATCH v22 00/18] Add support for Sub-NUMA cluster (SNC) systems
Date: Thu, 27 Jun 2024 13:38:38 -0700
Message-ID: <20240627203856.66628-1-tony.luck@intel.com>
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1261392
Newsgroups: org.kernel.vger.linux-kernel,dev.linux.lists.patches
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

This series based on top of tip x86/cache commit f385f0246394
("x86/resctrl: Replace open coded cacheinfo searches")

The Sub-NUMA cluster feature on some Intel processors partitions the CPUs
that share an L3 cache into two or more sets. This plays havoc with the
Resource Director Technology (RDT) monitoring features.  Prior to this
patch Intel has advised that SNC and RDT are incompatible.

Some of these CPUs support an MSR that can partition the RMID counters
in the same way. This allows monitoring features to be used. Legacy
monitoring files provide the sum of counters from each SNC node for
backwards compatibility. Additional  files per SNC node provide details
per node.

Memory bandwidth allocation features continue to operate at
the scope of the L3 cache.

L3 cache occupancy and allocation operate on the portion of
L3 cache available for each SNC node.

Signed-off-by: Tony Luck <tony.luck@intel.com>

---
Changes since v21: https://lore.kernel.org/all/20240621223859.43471-1-tony.luck@intel.com/

1-6	No change
7-8	Added Reinette reviewed-by tag
9	s/contains the sum/includes the sum/ in struct rmid_read kerneldoc
	Add initializer = {0} to all on-stack declarations of struct
	rmid_read (Reinette comment against patch 14, but applied here
	when new field added that causes the ambguity about which fields
	will be consumed). Drop redundant assignmnets of 0/NULL/false
	to members of the structure.
10	Trivial refactor casued by addition of "= {0}" in part 9.
11	No change
12	Added Reinette reviewed-by tag
13	Replaced comment referencing SNC mode with more generic text
	suggested by Reinette.
	Added Reinette reviewed-by tag.
14	s/across all SNC domains/across all SNC domains/ in comment
	in rdtgroup_mondata_show()
	Dropped "rr.ci = NULL;". Not needed as struct is cleared by compiler.
15	Fix comment on return value from __mon_event_count()
16	Added Reinette reviewed-by tag
17-18	No change

Tony Luck (18):
  x86/resctrl: Prepare for new domain scope
  x86/resctrl: Prepare to split rdt_domain structure
  x86/resctrl: Prepare for different scope for control/monitor
    operations
  x86/resctrl: Split the rdt_domain and rdt_hw_domain structures
  x86/resctrl: Add node-scope to the options for feature scope
  x86/resctrl: Introduce snc_nodes_per_l3_cache
  x86/resctrl: Block use of mba_MBps mount option on Sub-NUMA Cluster
    (SNC) systems
  x86/resctrl: Prepare for new Sub-NUMA Cluster (SNC) monitor files
  x86/resctrl: Add a new field to struct rmid_read for summation of
    domains
  x86/resctrl: Refactor mkdir_mondata_subdir() with a helper function
  x86/resctrl: Allocate a new field in union mon_data_bits
  x86/resctrl: Create Sub-NUMA Cluster (SNC) monitor files
  x86/resctrl: Handle removing directories in Sub-NUMA Cluster (SNC)
    mode
  x86/resctrl: Fill out rmid_read structure for smp_call*() to read a
    counter
  x86/resctrl: Make __mon_event_count() handle sum domains
  x86/resctrl: Enable shared RMID mode on Sub-NUMA Cluster (SNC) systems
  x86/resctrl: Sub-NUMA Cluster (SNC) detection
  x86/resctrl: Update documentation with Sub-NUMA cluster changes

 Documentation/arch/x86/resctrl.rst        |  27 ++
 include/linux/resctrl.h                   |  88 ++++--
 arch/x86/include/asm/msr-index.h          |   1 +
 arch/x86/kernel/cpu/resctrl/internal.h    | 108 +++++---
 arch/x86/kernel/cpu/resctrl/core.c        | 312 ++++++++++++++++------
 arch/x86/kernel/cpu/resctrl/ctrlmondata.c |  89 +++---
 arch/x86/kernel/cpu/resctrl/monitor.c     | 256 +++++++++++++++---
 arch/x86/kernel/cpu/resctrl/pseudo_lock.c |  27 +-
 arch/x86/kernel/cpu/resctrl/rdtgroup.c    | 281 ++++++++++++-------
 9 files changed, 865 insertions(+), 324 deletions(-)


base-commit: f385f024639431bec3e70c33cdbc9563894b3ee5
-- 
2.45.2

.

Date: Thu, 27 Jun 2024 13:44:00 -0700
From: Pawan Gupta <pawan.kumar.gupta@linux.intel.com>
To: Thomas Gleixner <tglx@linutronix.de>, Ingo Molnar <mingo@redhat.com>,
	Borislav Petkov <bp@alien8.de>,
	Dave Hansen <dave.hansen@linux.intel.com>, x86@kernel.org
Cc: daniel.sneddon@linux.intel.com, tony.luck@intel.com,
	linux-kernel@vger.kernel.org, linux-pm@vger.kernel.org,
	linux-perf-users@vger.kernel.org,
	Josh Poimboeuf <jpoimboe@kernel.org>,
	Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>,
	"Rafael J. Wysocki" <rafael@kernel.org>,
	Ricardo Neri <ricardo.neri-calderon@linux.intel.com>,
	"Liang, Kan" <kan.liang@linux.intel.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Brice Goglin <brice.goglin@gmail.com>,
	Mario Limonciello <mario.limonciello@amd.com>,
	Perry Yuan <Perry.Yuan@amd.com>,
	Dapeng Mi <dapeng1.mi@linux.intel.com>
Subject: [PATCH v2 0/9] Add CPU-type to topology
Message-ID: <20240627-add-cpu-type-v2-0-f927bde83ad0@linux.intel.com>
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1261414
Newsgroups: org.kernel.vger.linux-kernel,org.kernel.vger.linux-perf-users,org.kernel.vger.linux-pm
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

v2:
- Move CPU-type to the end of the CPU topology structure (Andrew).
- Use c->cpuid_level instead of cpuid_eax(0) (Andrew).
- Move CPU-type enum out of ifdef CONFIG_NUMA (kernel test robot).
- Rename cpu_type to hw_cpu_type (Borislav).
- Explain replacing get_this_hybrid_cpu_type() with topology_hw_cpu_type()
  in the commit message (Dave).
- Fix the alignment in cpu_vuln_whitelist (Andrew).
- Add the obj compare note in the commit message (Dave/Tony).
- s/X86_CPU_TYPE_INTEL_ATOM/ATOM/ in cpu_vuln_whitelist (Dave).

v1: https://lore.kernel.org/r/20240617-add-cpu-type-v1-0-b88998c01e76@linux.intel.com

Hi,

This series adds support for CPU-type (CPUID.1A.EAX[31-24] on Intel) to
differentiate between hybrid variants P+E, P-only, E-only that share the
same Family/Model/Stepping. One of the use case for CPU-type is the
affected CPU table for CPU vulnerabilities, which can now use the CPU-type
to filter the unaffected variants.

* Patch 1 adds hardware cpu-type to CPU topology structure and introduces
  topology_hw_cpu_type().

* Patch 2-4 replaces usages of get_this_hybrid_cpu_type() with
  topology_hw_cpu_type().

* Patch 5-7 Updates CPU-matching infrastructure to use CPU-type.

* Patch 8 cleans up the affected CPU list.

* Patch 9 uses the CPU-type to exclude P-only parts from the RFDS affected
  list.

Signed-off-by: Pawan Gupta <pawan.kumar.gupta@linux.intel.com>
---
Pawan Gupta (9):
      x86/cpu/topology: Add CPU type to struct cpuinfo_topology
      cpufreq: intel_pstate: Use topology_cpu_type()
      perf/x86/intel: Use topology_hw_cpu_type()
      x86/cpu: Remove get_this_hybrid_cpu_type()
      x86/cpu: Name CPU matching macro more generically (and shorten)
      x86/cpu: Add cpu_type to struct x86_cpu_id
      x86/cpu: Update x86_match_cpu() to also use cpu-type
      x86/bugs: Declutter vulnerable CPU list
      x86/rfds: Exclude P-only parts from the RFDS affected list

 .../admin-guide/hw-vuln/reg-file-data-sampling.rst |   8 --
 arch/x86/events/intel/core.c                       |   2 +-
 arch/x86/include/asm/cpu.h                         |   6 -
 arch/x86/include/asm/cpu_device_id.h               | 117 +++++++----------
 arch/x86/include/asm/processor.h                   |   3 +
 arch/x86/include/asm/topology.h                    |   9 ++
 arch/x86/kernel/cpu/common.c                       | 138 +++++++++++----------
 arch/x86/kernel/cpu/debugfs.c                      |   1 +
 arch/x86/kernel/cpu/intel.c                        |  16 ---
 arch/x86/kernel/cpu/match.c                        |  22 ++++
 arch/x86/kernel/cpu/topology_common.c              |   9 ++
 drivers/cpufreq/intel_pstate.c                     |  14 +--
 include/linux/mod_devicetable.h                    |   2 +
 13 files changed, 168 insertions(+), 179 deletions(-)
---
base-commit: f2661062f16b2de5d7b6a5c42a9a5c96326b8454
change-id: 20240617-add-cpu-type-4d5e47efc117

Best regards,
-- 
Thanks,
Pawan


.

Date: Thu, 27 Jun 2024 21:49:38 +0100
From: Daniel Golle <daniel@makrotopia.org>
To: Rob Herring <robh@kernel.org>, Krzysztof Kozlowski <krzk+dt@kernel.org>,
	Conor Dooley <conor+dt@kernel.org>,
	Ulf Hansson <ulf.hansson@linaro.org>, Jens Axboe <axboe@kernel.dk>,
	Hauke Mehrtens <hauke@hauke-m.de>, Felix Fietkau <nbd@nbd.name>,
	Srinivas Kandagatla <srinivas.kandagatla@linaro.org>,
	Daniel Golle <daniel@makrotopia.org>,
	Dave Chinner <dchinner@redhat.com>, Jan Kara <jack@suse.cz>,
	Christian Brauner <brauner@kernel.org>,
	Thomas =?iso-8859-1?Q?Wei=DFschuh?= <linux@weissschuh.net>,
	Al Viro <viro@zeniv.linux.org.uk>,
	Li Lingfeng <lilingfeng3@huawei.com>,
	Christian Heusel <christian@heusel.eu>,
	Min Li <min15.li@samsung.com>, Avri Altman <avri.altman@wdc.com>,
	Adrian Hunter <adrian.hunter@intel.com>,
	Hannes Reinecke <hare@suse.de>,
	Mikko Rapeli <mikko.rapeli@linaro.org>, Yeqi Fu <asuk4.q@gmail.com>,
	Victor Shih <victor.shih@genesyslogic.com.tw>,
	Christophe JAILLET <christophe.jaillet@wanadoo.fr>,
	Li Zhijian <lizhijian@fujitsu.com>,
	"Ricardo B. Marliere" <ricardo@marliere.net>,
	devicetree@vger.kernel.org, linux-kernel@vger.kernel.org,
	linux-mmc@vger.kernel.org, linux-block@vger.kernel.org
Subject: [PATCH v4 0/4] block: preparations for NVMEM provider
Message-ID: <cover.1719520771.git.daniel@makrotopia.org>
X-Mailing-List: linux-block@vger.kernel.org
List-Id: <linux-block.vger.kernel.org>
List-Subscribe: <mailto:linux-block+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-block+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
Xref: photonic.trudheim.com org.kernel.vger.linux-block:93592 org.kernel.vger.linux-kernel:1261427
Newsgroups: org.kernel.vger.linux-block,org.kernel.vger.linux-devicetree,org.kernel.vger.linux-kernel,org.kernel.vger.linux-mmc
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

On embedded devices using an eMMC it is common that one or more (hw/sw)
partitions on the eMMC are used to store MAC addresses and Wi-Fi
calibration EEPROM data.

Typically the NVMEM framework is used to have kernel drivers read and
use binary data from EEPROMs, efuses, flash memory (MTD), ...

Using references to NVMEM bits in Device Tree allows the kernel to
access and apply e.g. the Ethernet MAC address, which can be a requirement
for userland to come up (e.g. for nfsroot).

The goal of this series is to prepare the block subsystem to allow for
the implementation of an NVMEM provider similar to other types of
non-volatile storage, so the same approach already used for EEPROMs, MTD
(raw flashes) and UBI-managed NAND can also be used for devices storing
those bits on an eMMC.

Define a device tree schema for block devices and partitions on them,
which (similar to how it now works also for UBI volumes) can be matched
by one or more properties.

Also add a simple notification API for other subsystems to be notified
about additions and removals of block devices, which is going to be used
by the block-backed NVMEM provider.

Overall, this enables uniform handling across practially all flash
storage types used for this purpose (MTD, UBI, and soon also MMC or and
in future maybe also other block devices).
---
Changes since v3 sent on Jun 26th, addressing comments from Jens Axboe:
 - improve readability and error-handling in fwnode-matching code
 - remove forgotten code from earlier development accessing ddev->parent
 - use '#if defined' instead of '#ifdef' in header
 - provide inline dummies in case of CONFIG_BLOCK_NOTIFIERS not being set

Changes since v2 sent on May 30th 2024 [1] addressing comments from
Hauke Mehrtens (https://patchwork.kernel.org/comment/25892133/)
 - Check length of UUID and PARTNAME.
 - Remove forgotten fallback to get 'partitions' subnode from parent.
   It is no longer needed and was a left over from earlier development.
 - Split series into 3 parts, one for each affected subsystem. This is
   the first part covering only the changes needed in the block
   subsystem. The second part adds the actual nvmem provider to
   drivers/nvmem/, the third part is going to make use of it for MMC
   block devices and cover changes in drivers/mmc.

Changes since v1 sent on March 21st 2024 [2]:
 - introduce notifications for block device addition and removal for
   in-kernel users. This allows the nvmem driver to be built as a module
   and avoids using class_interface and block subsystem internals as
   suggested in https://patchwork.kernel.org/comment/25771998/ and
   https://patchwork.kernel.org/comment/25770441/

This series has previously been submitted as RFC on July 19th 2023[3]
and most of the basic idea did not change since. Another round of RFC
was submitted on March 5th 2024[4].

[1]: https://patchwork.kernel.org/project/linux-block/list/?series=857192
[2]: https://patchwork.kernel.org/project/linux-block/list/?series=837150&archive=both
[3]: https://patchwork.kernel.org/project/linux-block/list/?series=767565
[4]: https://patchwork.kernel.org/project/linux-block/list/?series=832705


Daniel Golle (4):
  dt-bindings: block: add basic bindings for block devices
  block: partitions: populate fwnode
  block: add support for notifications
  block: add new genhd flag GENHD_FL_NVMEM

 .../bindings/block/block-device.yaml          | 22 +++++
 .../devicetree/bindings/block/partition.yaml  | 51 +++++++++++
 .../devicetree/bindings/block/partitions.yaml | 20 +++++
 block/Kconfig                                 |  6 ++
 block/Makefile                                |  1 +
 block/blk-notify.c                            | 87 +++++++++++++++++++
 block/partitions/core.c                       | 70 +++++++++++++++
 include/linux/blkdev.h                        | 13 +++
 8 files changed, 270 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/block/block-device.yaml
 create mode 100644 Documentation/devicetree/bindings/block/partition.yaml
 create mode 100644 Documentation/devicetree/bindings/block/partitions.yaml
 create mode 100644 block/blk-notify.c

-- 
2.45.2
.

From: Christian Marangi <ansuelsmth@gmail.com>
To: Michael Turquette <mturquette@baylibre.com>,
	Stephen Boyd <sboyd@kernel.org>,
	Rob Herring <robh@kernel.org>,
	Krzysztof Kozlowski <krzk+dt@kernel.org>,
	Conor Dooley <conor+dt@kernel.org>,
	Matthias Brugger <matthias.bgg@gmail.com>,
	AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>,
	=?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= <rafal@milecki.pl>,
	linux-clk@vger.kernel.org,
	devicetree@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	linux-arm-kernel@lists.infradead.org,
	linux-mediatek@lists.infradead.org
Cc: Christian Marangi <ansuelsmth@gmail.com>,
	Frank Wunderlich <frank-w@public-files.de>,
	stable@vger.kernel.org
Subject: [PATCH 1/2] arm64: dts: mediatek: mt7622: readd syscon to pciesys node
Date: Thu, 27 Jun 2024 22:52:56 +0200
Message-ID: <20240627205309.28742-1-ansuelsmth@gmail.com>
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1261437
Newsgroups: org.kernel.vger.linux-kernel,org.infradead.lists.linux-arm-kernel,org.infradead.lists.linux-mediatek,org.kernel.vger.linux-clk,org.kernel.vger.linux-devicetree,org.kernel.vger.stable
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

Sata node reference the pciesys with the property mediatek,phy-node
and that is used as a syscon to access the pciesys regs.

Readd the syscon compatible to pciesys node to restore correct
functionality of the SATA interface.

Fixes: 3ba5a6159434 ("arm64: dts: mediatek: mt7622: fix clock controllers")
Reported-by: Frank Wunderlich <frank-w@public-files.de>
Co-developed-by: Frank Wunderlich <frank-w@public-files.de>
Signed-off-by: Frank Wunderlich <frank-w@public-files.de>
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
Cc: stable@vger.kernel.org
---
 arch/arm64/boot/dts/mediatek/mt7622.dtsi | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/arch/arm64/boot/dts/mediatek/mt7622.dtsi b/arch/arm64/boot/dts/mediatek/mt7622.dtsi
index 917fa39a74f8..bb0ec1edbe5b 100644
--- a/arch/arm64/boot/dts/mediatek/mt7622.dtsi
+++ b/arch/arm64/boot/dts/mediatek/mt7622.dtsi
@@ -790,7 +790,7 @@ u2port1: usb-phy@1a0c5000 {
 	};
 
 	pciesys: clock-controller@1a100800 {
-		compatible = "mediatek,mt7622-pciesys";
+		compatible = "mediatek,mt7622-pciesys", "syscon";
 		reg = <0 0x1a100800 0 0x1000>;
 		#clock-cells = <1>;
 		#reset-cells = <1>;
-- 
2.45.1

.

From: Abhinav Kumar <quic_abhinavk@quicinc.com>
To: <freedreno@lists.freedesktop.org>, Rob Clark <robdclark@gmail.com>,
        Abhinav Kumar <quic_abhinavk@quicinc.com>,
        Dmitry Baryshkov
	<dmitry.baryshkov@linaro.org>,
        Sean Paul <sean@poorly.run>,
        Marijn Suijten
	<marijn.suijten@somainline.org>,
        David Airlie <airlied@gmail.com>, "Daniel
 Vetter" <daniel@ffwll.ch>
CC: <dri-devel@lists.freedesktop.org>, <quic_jesszhan@quicinc.com>,
        <konrad.dybcio@linaro.org>, <linux-arm-msm@vger.kernel.org>,
        <linux-kernel@vger.kernel.org>
Subject: [RFC PATCH] drm/msm/dpu: check ubwc support before adding compressed formats
Date: Thu, 27 Jun 2024 13:53:27 -0700
Message-ID: <20240627205328.2912859-1-quic_abhinavk@quicinc.com>
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1261439
Newsgroups: org.kernel.vger.linux-kernel,org.freedesktop.lists.dri-devel,org.kernel.vger.linux-arm-msm
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

On QCM2290 chipset DPU does not support UBWC.

Add a dpu cap to indicate this and do not expose compressed formats
in this case.

Signed-off-by: Abhinav Kumar <quic_abhinavk@quicinc.com>
---
 drivers/gpu/drm/msm/disp/dpu1/catalog/dpu_6_5_qcm2290.h | 1 +
 drivers/gpu/drm/msm/disp/dpu1/dpu_hw_catalog.h          | 2 ++
 drivers/gpu/drm/msm/disp/dpu1/dpu_plane.c               | 5 ++++-
 3 files changed, 7 insertions(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/msm/disp/dpu1/catalog/dpu_6_5_qcm2290.h b/drivers/gpu/drm/msm/disp/dpu1/catalog/dpu_6_5_qcm2290.h
index 3cbb2fe8aba2..6671f798bacc 100644
--- a/drivers/gpu/drm/msm/disp/dpu1/catalog/dpu_6_5_qcm2290.h
+++ b/drivers/gpu/drm/msm/disp/dpu1/catalog/dpu_6_5_qcm2290.h
@@ -12,6 +12,7 @@ static const struct dpu_caps qcm2290_dpu_caps = {
 	.max_mixer_blendstages = 0x4,
 	.has_dim_layer = true,
 	.has_idle_pc = true,
+	.has_no_ubwc = true,
 	.max_linewidth = 2160,
 	.pixel_ram_size = DEFAULT_PIXEL_RAM_SIZE,
 };
diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_catalog.h b/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_catalog.h
index af2ead1c4886..676d0a283922 100644
--- a/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_catalog.h
+++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_catalog.h
@@ -342,6 +342,7 @@ struct dpu_rotation_cfg {
  * @has_dim_layer      dim layer feature status
  * @has_idle_pc        indicate if idle power collapse feature is supported
  * @has_3d_merge       indicate if 3D merge is supported
+ * @has_no_ubwc        indicate if UBWC is supported
  * @max_linewidth      max linewidth for sspp
  * @pixel_ram_size     size of latency hiding and de-tiling buffer in bytes
  * @max_hdeci_exp      max horizontal decimation supported (max is 2^value)
@@ -354,6 +355,7 @@ struct dpu_caps {
 	bool has_dim_layer;
 	bool has_idle_pc;
 	bool has_3d_merge;
+	bool has_no_ubwc;
 	/* SSPP limits */
 	u32 max_linewidth;
 	u32 pixel_ram_size;
diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_plane.c b/drivers/gpu/drm/msm/disp/dpu1/dpu_plane.c
index 6000e84598c2..31fe0fc4c02e 100644
--- a/drivers/gpu/drm/msm/disp/dpu1/dpu_plane.c
+++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_plane.c
@@ -1341,10 +1341,13 @@ void dpu_plane_danger_signal_ctrl(struct drm_plane *plane, bool enable)
 static bool dpu_plane_format_mod_supported(struct drm_plane *plane,
 		uint32_t format, uint64_t modifier)
 {
+	struct dpu_plane *pdpu = to_dpu_plane(plane);
+	const struct dpu_caps *caps = pdpu->catalog->caps;
+
 	if (modifier == DRM_FORMAT_MOD_LINEAR)
 		return true;
 
-	if (modifier == DRM_FORMAT_MOD_QCOM_COMPRESSED)
+	if (modifier == DRM_FORMAT_MOD_QCOM_COMPRESSED && !caps->has_no_ubwc)
 		return dpu_find_format(format, qcom_compressed_supported_formats,
 				ARRAY_SIZE(qcom_compressed_supported_formats));
 
-- 
2.44.0

.

From: Tomer Maimon <tmaimon77@gmail.com>
To: <linus.walleij@linaro.org>, <robh+dt@kernel.org>,
	<krzysztof.kozlowski+dt@linaro.org>, <tali.perry1@gmail.com>,
	<joel@jms.id.au>, <venture@google.com>, <yuenn@google.com>,
	<benjaminfair@google.com>
CC: <openbmc@lists.ozlabs.org>, <linux-clk@vger.kernel.org>,
	<linux-kernel@vger.kernel.org>, <devicetree@vger.kernel.org>, Tomer Maimon
	<tmaimon77@gmail.com>
Subject: [PATCH v1] dt-bindings: pinctrl: npcm8xx: add missing pin group and mux function
Date: Thu, 27 Jun 2024 21:23:12 +0300
Message-ID: <20240627182312.86382-1-tmaimon77@gmail.com>
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-NotSetDelaration: True
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1261440
Newsgroups: org.kernel.vger.linux-kernel,org.kernel.vger.linux-clk,org.kernel.vger.linux-devicetree,org.ozlabs.lists.openbmc
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

Add the following missing pin group and mux function:
smb6b, smb6c, smb6d, smb7b, smb7c, smb7d, bu4, bu4b, bu5, bu5b, bu6,
gpo187.

Signed-off-by: Tomer Maimon <tmaimon77@gmail.com>
---
 .../pinctrl/nuvoton,npcm845-pinctrl.yaml      | 22 ++++++++++---------
 1 file changed, 12 insertions(+), 10 deletions(-)

diff --git a/Documentation/devicetree/bindings/pinctrl/nuvoton,npcm845-pinctrl.yaml b/Documentation/devicetree/bindings/pinctrl/nuvoton,npcm845-pinctrl.yaml
index b55d9c316659..f3c3f910a51f 100644
--- a/Documentation/devicetree/bindings/pinctrl/nuvoton,npcm845-pinctrl.yaml
+++ b/Documentation/devicetree/bindings/pinctrl/nuvoton,npcm845-pinctrl.yaml
@@ -85,11 +85,12 @@ patternProperties:
                   smb2c, smb2b, smb1c, smb1b, smb8, smb9, smb10, smb11, sd1,
                   sd1pwr, pwm4, pwm5, pwm6, pwm7, pwm8, pwm9, pwm10, pwm11,
                   mmc8, mmc, mmcwp, mmccd, mmcrst, clkout, serirq, lpcclk,
-                  scipme, smi, smb6, smb7, spi1, faninx, r1, spi3, spi3cs1,
-                  spi3quad, spi3cs2, spi3cs3, nprd_smi, smb0b, smb0c, smb0den,
-                  smb0d, ddc, rg2mdio, wdog1, wdog2, smb12, smb13, spix,
-                  spixcs1, clkreq, hgpio0, hgpio1, hgpio2, hgpio3, hgpio4,
-                  hgpio5, hgpio6, hgpio7 ]
+                  scipme, smi, smb6, smb6b, smb6c, smb6d, smb7, smb7b, smb7c,
+                  smb7d, spi1, faninx, r1, spi3, spi3cs1, spi3quad, spi3cs2,
+	  	  spi3cs3, nprd_smi, smb0b, smb0c, smb0den, smb0d, ddc, rg2mdio,
+		  wdog1, wdog2, smb12, smb13, spix, spixcs1, clkreq, hgpio0,
+		  hgpio1, hgpio2, hgpio3, hgpio4, hgpio5, hgpio6, hgpio7, bu4,
+		  bu4b, bu5, bu5b, bu6, gpo187 ]
 
       function:
         description:
@@ -109,11 +110,12 @@ patternProperties:
                 smb2c, smb2b, smb1c, smb1b, smb8, smb9, smb10, smb11, sd1,
                 sd1pwr, pwm4, pwm5, pwm6, pwm7, pwm8, pwm9, pwm10, pwm11,
                 mmc8, mmc, mmcwp, mmccd, mmcrst, clkout, serirq, lpcclk,
-                scipme, smi, smb6, smb7, spi1, faninx, r1, spi3, spi3cs1,
-                spi3quad, spi3cs2, spi3cs3, nprd_smi, smb0b, smb0c, smb0den,
-                smb0d, ddc, rg2mdio, wdog1, wdog2, smb12, smb13, spix,
-                spixcs1, clkreq, hgpio0, hgpio1, hgpio2, hgpio3, hgpio4,
-                hgpio5, hgpio6, hgpio7 ]
+                scipme, smi, smb6, smb6b, smb6c, smb6d, smb7, smb7b, smb7c,
+                smb7d, spi1, faninx, r1, spi3, spi3cs1, spi3quad, spi3cs2,
+	  	spi3cs3, nprd_smi, smb0b, smb0c, smb0den, smb0d, ddc, rg2mdio,
+		wdog1, wdog2, smb12, smb13, spix, spixcs1, clkreq, hgpio0,
+		hgpio1, hgpio2, hgpio3, hgpio4, hgpio5, hgpio6, hgpio7, bu4,
+		bu4b, bu5, bu5b, bu6, gpo187 ]
 
     dependencies:
       groups: [ function ]
-- 
2.34.1

.

Message-ID: <6f21c09b-e8d2-4749-aca6-572c79df775d@gmail.com>
Date: Thu, 27 Jun 2024 23:17:45 +0200
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
From: Johan Jonker <jbx6244@gmail.com>
Subject: [PATCH v1] dt-bindings: clock: rk3188-cru-common: remove CLK_NR_CLKS
To: heiko@sntech.de
Cc: mturquette@baylibre.com, sboyd@kernel.org, robh@kernel.org,
 krzk+dt@kernel.org, conor+dt@kernel.org, linux-clk@vger.kernel.org,
 devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org,
 linux-rockchip@lists.infradead.org, linux-kernel@vger.kernel.org
Content-Language: en-US
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1261451
Newsgroups: org.kernel.vger.linux-kernel,org.infradead.lists.linux-arm-kernel,org.infradead.lists.linux-rockchip,org.kernel.vger.linux-clk,org.kernel.vger.linux-devicetree
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

CLK_NR_CLKS should not be part of the binding.
Remove since the kernel code no longer uses it.

Signed-off-by: Johan Jonker <jbx6244@gmail.com>
---
 include/dt-bindings/clock/rk3188-cru-common.h | 2 --
 1 file changed, 2 deletions(-)

diff --git a/include/dt-bindings/clock/rk3188-cru-common.h b/include/dt-bindings/clock/rk3188-cru-common.h
index afad90680fce..01e14ab252a7 100644
--- a/include/dt-bindings/clock/rk3188-cru-common.h
+++ b/include/dt-bindings/clock/rk3188-cru-common.h
@@ -132,8 +132,6 @@
 #define HCLK_VDPU		472
 #define HCLK_HDMI		473

-#define CLK_NR_CLKS		(HCLK_HDMI + 1)
-
 /* soft-reset indices */
 #define SRST_MCORE		2
 #define SRST_CORE0		3
--
2.39.2

.

From: Jonas Karlman <jonas@kwiboo.se>
To: Heiko Stuebner <heiko@sntech.de>, Rob Herring <robh@kernel.org>,
 Krzysztof Kozlowski <krzk+dt@kernel.org>, Conor Dooley
 <conor+dt@kernel.org>
Cc: FUKAUMI Naoki <naoki@radxa.com>, devicetree@vger.kernel.org,
 linux-arm-kernel@lists.infradead.org, linux-rockchip@lists.infradead.org,
 linux-kernel@vger.kernel.org, Jonas Karlman <jonas@kwiboo.se>
Subject: [PATCH v3 0/2] arm64: dts: rockchip: Add Radxa ROCK 3B
Date: Thu, 27 Jun 2024 21:17:29 +0000
Message-ID: <20240627211737.1985549-1-jonas@kwiboo.se>
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Report-Abuse-To: abuse@forwardemail.net
X-Complaints-To: abuse@forwardemail.net
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1261452
Newsgroups: org.kernel.vger.linux-kernel,org.infradead.lists.linux-arm-kernel,org.infradead.lists.linux-rockchip,org.kernel.vger.linux-devicetree
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

This series adds initial support for the Radxa ROCK 3B board.

The Radxa ROCK 3B is a single-board computer based on the Pico-ITX form
factor (100mm x 75mm). Two versions of the ROCK 3B exists, a community
version based on the RK3568 SoC and an industrial version based on the
RK3568J SoC.

Schematic for ROCK 3B can be found at:
https://dl.radxa.com/rock3/docs/hw/3b/Radxa_ROCK_3B_V1.51_SCH.pdf

Changes in v3:
- Rename led node and move led pinctrl
- Add cap-mmc-highspeed to sdhci node

Changes in v2:
- Drop rk809 dt-bindings patches, replaced by series at [1]
- Use regulator-.* nodename for fixed regulators
- Drop rockchip,mic-in-differential prop
- Shorten Ethernet phy reset-deassert-us to 50 ms
- Fix pcie pinctrl
- Add keep-power-in-suspend to sdmmc2
- Collect a-b tag

[1] https://lore.kernel.org/all/20240622-rk809-fixes-v2-0-c0db420d3639@collabora.com/

Jonas Karlman (2):
  dt-bindings: arm: rockchip: Add Radxa ROCK 3B
  arm64: dts: rockchip: Add Radxa ROCK 3B

 .../devicetree/bindings/arm/rockchip.yaml     |   5 +
 arch/arm64/boot/dts/rockchip/Makefile         |   1 +
 .../boot/dts/rockchip/rk3568-rock-3b.dts      | 781 ++++++++++++++++++
 3 files changed, 787 insertions(+)
 create mode 100644 arch/arm64/boot/dts/rockchip/rk3568-rock-3b.dts

-- 
2.45.2

.

Subject: [PATCH V4 1/2] cgroup/rstat: Helper functions for locking expose
 trylock
From: Jesper Dangaard Brouer <hawk@kernel.org>
To: tj@kernel.org, cgroups@vger.kernel.org, yosryahmed@google.com,
 shakeel.butt@linux.dev
Cc: Jesper Dangaard Brouer <hawk@kernel.org>, hannes@cmpxchg.org,
 lizefan.x@bytedance.com, longman@redhat.com, kernel-team@cloudflare.com,
 linux-mm@kvack.org, linux-kernel@vger.kernel.org
Date: Thu, 27 Jun 2024 23:18:37 +0200
Message-ID: <171952310959.1810550.17003659816794335660.stgit@firesoul>
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1261455 org.kvack.linux-mm:201703
Newsgroups: org.kernel.vger.linux-kernel,org.kernel.vger.cgroups,org.kvack.linux-mm
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

Signed-off-by: Jesper Dangaard Brouer <hawk@kernel.org>
---
 kernel/cgroup/rstat.c |   40 ++++++++++++++++++++++++++++++----------
 1 file changed, 30 insertions(+), 10 deletions(-)

diff --git a/kernel/cgroup/rstat.c b/kernel/cgroup/rstat.c
index fb8b49437573..2a42be3a9bb3 100644
--- a/kernel/cgroup/rstat.c
+++ b/kernel/cgroup/rstat.c
@@ -279,17 +279,30 @@ __bpf_hook_end();
  * value -1 is used when obtaining the main lock else this is the CPU
  * number processed last.
  */
-static inline void __cgroup_rstat_lock(struct cgroup *cgrp, int cpu_in_loop)
+static inline bool __cgroup_rstat_trylock(struct cgroup *cgrp, int cpu_in_loop)
+{
+	bool locked;
+
+	locked = spin_trylock_irq(&cgroup_rstat_lock);
+	if (!locked)
+		trace_cgroup_rstat_lock_contended(cgrp, cpu_in_loop, !locked);
+
+	return locked;
+}
+
+static inline void __cgroup_rstat_lock(struct cgroup *cgrp, int cpu_in_loop,
+				       bool check_contention)
 	__acquires(&cgroup_rstat_lock)
 {
-	bool contended;
+	bool locked = false;
 
-	contended = !spin_trylock_irq(&cgroup_rstat_lock);
-	if (contended) {
-		trace_cgroup_rstat_lock_contended(cgrp, cpu_in_loop, contended);
+	if (check_contention)
+		locked = __cgroup_rstat_trylock(cgrp, cpu_in_loop);
+
+	if (!locked)
 		spin_lock_irq(&cgroup_rstat_lock);
-	}
-	trace_cgroup_rstat_locked(cgrp, cpu_in_loop, contended);
+
+	trace_cgroup_rstat_locked(cgrp, cpu_in_loop, !locked);
 }
 
 static inline void __cgroup_rstat_unlock(struct cgroup *cgrp, int cpu_in_loop)
@@ -328,7 +341,7 @@ static void cgroup_rstat_flush_locked(struct cgroup *cgrp)
 			__cgroup_rstat_unlock(cgrp, cpu);
 			if (!cond_resched())
 				cpu_relax();
-			__cgroup_rstat_lock(cgrp, cpu);
+			__cgroup_rstat_lock(cgrp, cpu, true);
 		}
 	}
 }
@@ -348,9 +361,16 @@ static void cgroup_rstat_flush_locked(struct cgroup *cgrp)
  */
 __bpf_kfunc void cgroup_rstat_flush(struct cgroup *cgrp)
 {
+	bool locked;
+
 	might_sleep();
 
-	__cgroup_rstat_lock(cgrp, -1);
+	locked = __cgroup_rstat_trylock(cgrp, -1);
+	if (!locked) {
+		/* Opportunity to ongoing flush detection */
+		__cgroup_rstat_lock(cgrp, -1, false);
+	}
+
 	cgroup_rstat_flush_locked(cgrp);
 	__cgroup_rstat_unlock(cgrp, -1);
 }
@@ -368,7 +388,7 @@ void cgroup_rstat_flush_hold(struct cgroup *cgrp)
 	__acquires(&cgroup_rstat_lock)
 {
 	might_sleep();
-	__cgroup_rstat_lock(cgrp, -1);
+	__cgroup_rstat_lock(cgrp, -1, true);
 	cgroup_rstat_flush_locked(cgrp);
 }
 


.

From: =?utf-8?q?N=C3=ADcolas_F=2E_R=2E_A=2E_Prado?= <nfraprado@collabora.com>
Date: Thu, 27 Jun 2024 17:20:55 -0400
Subject: [PATCH] remoteproc: mediatek: Don't attempt to remap l1tcm memory
 if missing
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 8bit
Message-Id: <20240627-scp-invalid-resource-l1tcm-v1-1-7d221e6c495a@collabora.com>
To: Bjorn Andersson <andersson@kernel.org>, 
 Mathieu Poirier <mathieu.poirier@linaro.org>, 
 Matthias Brugger <matthias.bgg@gmail.com>, 
 AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>, 
 Tzung-Bi Shih <tzungbi@kernel.org>
Cc: kernel@collabora.com, linux-remoteproc@vger.kernel.org, 
 linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, 
 linux-mediatek@lists.infradead.org, 
 =?utf-8?q?N=C3=ADcolas_F=2E_R=2E_A=2E_Prado?= <nfraprado@collabora.com>
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1261459
Newsgroups: org.kernel.vger.linux-kernel,org.infradead.lists.linux-arm-kernel,org.infradead.lists.linux-mediatek,org.kernel.vger.linux-remoteproc
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

The current code doesn't check whether platform_get_resource_byname()
succeeded to get the l1tcm memory, which is optional, before attempting
to map it. This results in the following error message when it is
missing:

  mtk-scp 10500000.scp: error -EINVAL: invalid resource (null)

Add a check so that the remapping is only attempted if the memory region
exists. This also allows to simplify the logic handling failure to
remap, since a failure then is always a failure.

Fixes: ca23ecfdbd44 ("remoteproc/mediatek: support L1TCM")
Signed-off-by: Nícolas F. R. A. Prado <nfraprado@collabora.com>
---
 drivers/remoteproc/mtk_scp.c | 12 +++++-------
 1 file changed, 5 insertions(+), 7 deletions(-)

diff --git a/drivers/remoteproc/mtk_scp.c b/drivers/remoteproc/mtk_scp.c
index b885a9a041e4..b17757900cd7 100644
--- a/drivers/remoteproc/mtk_scp.c
+++ b/drivers/remoteproc/mtk_scp.c
@@ -1344,14 +1344,12 @@ static int scp_probe(struct platform_device *pdev)
 
 	/* l1tcm is an optional memory region */
 	res = platform_get_resource_byname(pdev, IORESOURCE_MEM, "l1tcm");
-	scp_cluster->l1tcm_base = devm_ioremap_resource(dev, res);
-	if (IS_ERR(scp_cluster->l1tcm_base)) {
-		ret = PTR_ERR(scp_cluster->l1tcm_base);
-		if (ret != -EINVAL)
-			return dev_err_probe(dev, ret, "Failed to map l1tcm memory\n");
+	if (res) {
+		scp_cluster->l1tcm_base = devm_ioremap_resource(dev, res);
+		if (IS_ERR(scp_cluster->l1tcm_base))
+			return dev_err_probe(dev, PTR_ERR(scp_cluster->l1tcm_base),
+					     "Failed to map l1tcm memory\n");
 
-		scp_cluster->l1tcm_base = NULL;
-	} else {
 		scp_cluster->l1tcm_size = resource_size(res);
 		scp_cluster->l1tcm_phys = res->start;
 	}

---
base-commit: 0fc4bfab2cd45f9acb86c4f04b5191e114e901ed
change-id: 20240627-scp-invalid-resource-l1tcm-9f7cf45c17e6

Best regards,
-- 
Nícolas F. R. A. Prado <nfraprado@collabora.com>

.

From: Casey Chen <cachen@purestorage.com>
To: linux-perf-users@vger.kernel.org,
	linux-kernel@vger.kernel.org
Cc: yzhong@purestorage.com,
	Casey Chen <cachen@purestorage.com>
Subject: [PATCH 0/1] perf report: fix missing references to maps and map in thread__find_map
Date: Thu, 27 Jun 2024 15:36:17 -0600
Message-ID: <20240627213619.718-1-cachen@purestorage.com>
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1261468
Newsgroups: org.kernel.vger.linux-kernel,org.kernel.vger.linux-perf-users
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

We found a segfault when run perf report on raw perf_data from perf record.
Basically with 0dd5041c9a0e ("perf addr_location: Add init/exit/copy functions"),
thread__find_map() would return with al->maps being NULL when cpumode is 3
(macro PERF_RECORD_MISC_HYPERVISOR). Later dereferencing maps->machine would crash.

The fix is to add back references to struct maps/map in thread__find_map(),
please see 0001-perf-probe-fix-missing-references-to-maps-and-map-in.patch,
which is made and tested on afcd48134c58 ("Merge tag
'mm-hotfixes-stable-2024-06-26-17-28' of
git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm")

Debug diffs made on 0dd5041c9a0e is attached as
0002-debug-patch-for-perf-report-segfault.patch

Steps to reproduce and what are observed:
1. Run 'gdb ./perf'
2. Initial gdb output. cpumode is 3 and address of node->ms is 0x55555684aee8.

(gdb) run report --stdio -v -i ~/perf_data
...
add_callchain_ip: i'm here! al.map (nil) al.sym (nil) ip >= PERF_CONTEXT_MAX: 0 cpumode 3 ip 0x8348fb8948535441
callchain_cursor_append addr of node->ms 0x55555684aee8 ms 0x7fffffff9e70 has no maps map (nil) symbol (nil)
Failed to open /tmp/perf-31239.map, continuing without symbols
callchain_cursor_commit: cursor 0x7ffff7a17b98 curr 0x55555684aee0 ms 0x55555684aee8
callchain_cursor_commit: cursor 0x7ffff7a17b98 curr 0x55555684aee0 ms 0x55555684aee8
callchain_cursor_commit: cursor 0x7ffff7a17b98 curr 0x55555684aee0 ms 0x55555684aee8

Program received signal SIGSEGV, Segmentation fault.
fill_callchain_info (al=0x7fffffffa120, node=0x55555684aee0, hide_unresolved=false) at util/callchain.c:1119
1119            struct machine *machine = maps__machine(node->ms.maps);

3. Backtrace from gdb
(gdb) bt
#0  fill_callchain_info (al=0x7fffffffa120, node=0x55555684aee0, hide_unresolved=false) at util/callchain.c:1119
#1  0x00005555556bdbc6 in hist_entry_iter__add (iter=iter@entry=0x7fffffffa160, al=al@entry=0x7fffffffa120, max_stack_depth=<optimized out>, arg=arg@entry=0x7fffffffb570) at util/hist.c:1245
#2  0x00005555555cd098 in process_sample_event (tool=0x7fffffffb570, event=0x7fffeb58be78, sample=0x7fffffffa210, evsel=<optimized out>, machine=0x55555585b8e0) at builtin-report.c:332
#3  0x00005555556958e3 in perf_session__deliver_event (session=0x55555585b730, event=0x7fffeb58be78, tool=0x7fffffffb570, file_offset=12656248, file_path=0x55555585ade0 "/root/perf_data/1/ct1/perf_data") at util/session.c:1645
#4  0x000055555569a5c1 in do_flush (show_progress=false, oe=0x555555862268) at util/ordered-events.c:245
#5  __ordered_events__flush (oe=0x555555862268, how=OE_FLUSH__ROUND, timestamp=<optimized out>) at util/ordered-events.c:324
#6  0x0000555555695cf5 in perf_session__process_user_event (session=0x55555585b730, event=0x7fffec19f7f8, file_offset=25319416, file_path=<optimized out>) at util/session.c:1698
#7  0x00005555556962a8 in reader__read_event (rd=rd@entry=0x7fffffffaef0, session=session@entry=0x55555585b730, prog=prog@entry=0x7fffffffaec0) at util/session.c:2371
#8  0x0000555555697e41 in reader__process_events (prog=0x7fffffffaec0, session=0x55555585b730, rd=0x7fffffffaef0) at util/session.c:2420
#9  __perf_session__process_events (session=0x55555585b730) at util/session.c:2467
#10 perf_session__process_events (session=session@entry=0x55555585b730) at util/session.c:2633
#11 0x00005555555cffcd in __cmd_report (rep=0x7fffffffb570) at builtin-report.c:991
#12 cmd_report (argc=<optimized out>, argv=<optimized out>) at builtin-report.c:1711
#13 0x0000555555631250 in run_builtin (p=p@entry=0x555555840d40 <commands+288>, argc=argc@entry=5, argv=argv@entry=0x7fffffffddd0) at perf.c:323
#14 0x00005555555b6179 in handle_internal_command (argv=0x7fffffffddd0, argc=5) at perf.c:377
#15 run_argv (argv=<synthetic pointer>, argcp=<synthetic pointer>) at perf.c:421
#16 main (argc=5, argv=0x7fffffffddd0) at perf.c:537

4. The line of code at fault. We can see that deferencing maps->machine caused segfault.
(gdb) disas
Dump of assembler code for function fill_callchain_info:
   0x0000555555684100 <+0>:     endbr64
   0x0000555555684104 <+4>:     push   %rbp
   0x0000555555684105 <+5>:     mov    %rsp,%rbp
   0x0000555555684108 <+8>:     push   %r14
   0x000055555568410a <+10>:    push   %r13
   0x000055555568410c <+12>:    mov    %rsi,%r13
   0x000055555568410f <+15>:    push   %r12
   0x0000555555684111 <+17>:    mov    %rdi,%r12
   0x0000555555684114 <+20>:    push   %rbx
   0x0000555555684115 <+21>:    mov    %edx,%ebx
   0x0000555555684117 <+23>:    sub    $0x10,%rsp
   0x000055555568411b <+27>:    mov    %fs:0x28,%rax
   0x0000555555684124 <+36>:    mov    %rax,-0x28(%rbp)
   0x0000555555684128 <+40>:    mov    0x8(%rsi),%rax
=> 0x000055555568412c <+44>:    mov    0x40(%rax),%r14

...
(gdb) list *0x000055555568412c
0x55555568412c is in fill_callchain_info (util/maps.h:81).
76              return &RC_CHK_ACCESS(maps)->entries;
77      }
78
79      static inline struct machine *maps__machine(struct maps *maps)
80      {
81              return RC_CHK_ACCESS(maps)->machine;
82      }
83
84      static inline struct rw_semaphore *maps__lock(struct maps *maps)
85      {

(gdb) p/x &(((struct maps *)0)->machine)
$1 = 0x40

5. Data structure in trouble. struct maps from node->ms are empty. The address of node->ms is 0x55555684aee8.
(gdb) p/x *node
$2 = {ip = 0x8348fb8948535441, ms = {maps = 0x0, map = 0x0, sym = 0x0}, srcline = 0x0, valid = 0x0, branch = 0x0, branch_flags = {{value = 0x0, {mispred = 0x0, predicted = 0x0, in_tx = 0x0, abort = 0x0, cycles = 0x0, type = 0x0, spec = 0x0, new_type = 0x0, priv = 0x0,
        reserved = 0x0}}}, branch_from = 0x0, nr_loop_iter = 0x0, iter_cycles = 0x0, next = 0x555556813730}
(gdb) p/x &(node->ms)
$3 = 0x55555684aee8

Casey Chen (1):
  perf probe: fix missing references to maps and map in thread__find_map

 tools/perf/util/event.c | 2 ++
 1 file changed, 2 insertions(+)

-- 
2.45.2

.

