linux-kernel - how - update kernel linux
La lectura ARM Cortex A8 PMNC da 0 después de habilitar también... ¿Alguna idea/sugerencia? (0)
MODULE_LICENSE("GPL");
MODULE_DESCRIPTION("user-mode access to performance registers");
int __init arm_init(void)
{
unsigned int value;
/* enable user-mode access */
printk(KERN_INFO "enable user-mode access/n");
asm ("MCR p15, 0, %0, C9, C14, 0/n/t" :: "r"(1));
/* Reading the value here--just to check */
asm ("MRC p15, 0, %0, c9, c14, 0/t/n": "=r"(value));
printk("value: %d/n", value);
/* disable counter overflow interrupts (just in case)*/
printk(KERN_INFO "disable counter overflow interrupts (just in case)/n");
asm ("MCR p15, 0, %0, C9, C14, 2/n/t" :: "r"(0x8000000f));
printk(KERN_INFO "user-mode access to performance registers enabled/n");
return 0;
}
void arm_exit(void)
{
unsigned int value;
asm ("MRC p15, 0, %0, c9, c14, 0/t/n": "=r"(value));
printk("value: %d/n", value);
printk(KERN_INFO "user-mode access to performance registers disabled/n");
}
module_init(arm_init);
module_exit(arm_exit);
En el módulo init la lectura da 1, pero en la lectura del módulo de limpieza la variable da 0. ¿Alguna idea de cómo se actualiza?