В связи с полным исключением в серии 3.х глобальных блокировок драйвер паралльного порта не собирается; не найден linux/smp_lock.h [1] [1]http://git.etersoft.ru/projects/?p=haspd.git;a=blob;f=aksparlnx/aksparpub.c;h=b85d0b5ac8fc1416eac498e1eb73c6bc621f7791;hb=1531a00f081f992ba4009ced8e71a049f313fcbc
Существует патч ( качество неизвестно) - http://code.google.com/p/slepnoga/source/detail?r=a205151be0ca923bf143663293a8a08a1cdcdb14
Я как автор данного патча могу сказать, что у меня LPT-шный HardLock работает с ядрами вплоть до 3.0.4. Насколько критично просто удалить lock_kernel/unlock_kernel — сказать не могу (квалификации не хватает).
Есть ещё один баг на эту же тему *** This bug has been marked as a duplicate of bug 7813 ***
Эта задача открыта ранее.
*** Bug 7813 has been marked as a duplicate of this bug. ***
Рассмотрел проблему удаления BLK из ядра и какие проблемы при этом происходят. Выяснил, что главная проблема состоит в том, что BLK можно захватить второй раз в рекурсивном вызове, поэтому просто так заменить его на mutex нельзя. В нашем случае, рекурсивных вызовов быть не должно. Поэтому заменил BLK локальной блокировкой в драйвере для 64 битных систем (лишь их затронуло удаление BLK из ядра): http://git.etersoft.ru/people/piastry/packages?p=haspd.git;a=commitdiff;h=58855f3f0c692d19f474c6cb952dde902ddfc215 Функция hl_compat_ioctl предназначена для вызова ioctl 32 битным приложением на 64 битной ядре. Нужно протестировать новый функционал (на 64 битной ОС).
Спасибо за разъяснение и за патч. Завтра проверю на 64-битном 3.1.
Если что, новая сборка haspd-3.3 с патчем лежит в ftp://ftp.etersoft.ru/pub/Etersoft/HASP/testing/
Скажите, а почему патч #c6 не смержен в git://git.etersoft.ru/projects/haspd.git ? Извините, что задаю вопрос в закрытой задаче. Спасибо.