Mis atributos son demasiado picantes, ¿qué debo hacer?


En un controlador de dispositivo linux, crear atributos sysfs en probe es demasiado picante specifically específicamente, experimenta una condición de carrera con el espacio de usuario. La solución recomendada es agregar sus atributos a varios grupos de atributos predeterminados para que se puedan crear automáticamente antes de probar. Para un controlador de dispositivo, struct device_driver contiene const struct attribute_group **groups para este propósito.

Sin embargo, struct attribute_group solo tenemos un campo para atributos binarios en Linux 3.11. Con mayor kernels (específicamente, 3.4), ¿cómo debería un controlador de dispositivo crear atributos binarios sysfs antes de probe?

Author: g.rocket, 2016-07-27

1 answers

Citando (énfasis mío) Greg Kroah-Hartman de su comentario a una solicitud de fusión (que se fusionó por Linus como parte del ciclo de desarrollo 3.11):{[9]]}

Aquí hay algunos parches del núcleo del controlador para 3.11-rc2. No son realmente correcciones de errores, pero un montón de nuevas macros de ayuda para que los controladores crear grupos de atributos, que los controladores y subsistemas necesitan para toneladas de problemas de raza con la creación incorrecta de archivos sysfs (binarios y normal) después de que se le haya dicho al espacio de usuario que el dispositivo está presente.

También aquí está la capacidad de crear archivos binarios como grupos de atributos, para resolver esa condición de carrera, que era imposible hacer antes de esto, por lo que es mi culpa que los conductores se rompieran.

Así que parece que realmente no hay manera de resolver este problema en núcleos antiguos.

 5
Author: Roman Khimov,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-08-16 10:29:07