Я создал модуль ядра со следующей функцией для целей тестирования:
ssize_t sysfs_store(struct device *dev, struct device_attribute *attr,
const char *buffer, size_t count)
{
printk(KERN_ERR "test" );
return -EINVAL;
}
Однако «test» печатается 3 раза.
Из документации ядра:
- show () или store () всегда могут возвращать ошибки.Если получено неверное значение, обязательно верните ошибку.
Как убедиться, что функция больше не вызывается при возврате ошибки?