А что, разве существует какое-то ограничение на длину статического массива, который можно определить внутри функции в ядре?
Например, static ssize_t ldevpcib_read(struct file *file, char *buf, size_t count, loff_t *offset) .... char zz[count]; ....
сопровождается oops-ами и руганью на pageing, если count>4096 (размер страницы). В таком случае приходится выделять память через kmalloc.
Вот я и интересуюсь, какова фундаментальная причина такого поведения? Че-то нигде в руководствах об этом особо не распространяются.
char a[1000] в ядреной функции?
А что, разве существует какое-то ограничение на длину статического массива, который можно определить внутри функции в ядре?
Например, static ssize_t ldevpcib_read(struct file *file, char *buf, size_t count, loff_t *offset) .... char zz[count]; ....
сопровождается oops-ами и руганью на pageing, если count>4096 (размер страницы). В таком случае приходится выделять память через kmalloc.
Вот я и интересуюсь, какова фундаментальная причина такого поведения? Че-то нигде в руководствах об этом особо не распространяются.
Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.1.4) Gecko/20070601 SeaMonkey/1.1.2