История изменений
Исправление tailgunner, (текущая версия) :
Это препроцессору легко развернуть __SPIN_LOCK_UNLOCKED(s3c24xx_serial_ports[2].port.lock), чтобы название лока стало текстовой константой, а «стрелку в задней полусфере» без интроспекции придется туго.
В моем варианте у спинлоков после второго не будет отличающихся имен для диагностики дедлока - т.е. дедлок будет отслежен до драйвера, но не до устройства. Неаккуратненько, но не смертельно - драйверы, поддерживающие неопределенное количество устройств, вполне живут с этим. И выделять ничего не надо - spin_lock_init сам выделит.
Исходная версия tailgunner, :
Это препроцессору легко развернуть __SPIN_LOCK_UNLOCKED(s3c24xx_serial_ports[2].port.lock), чтобы название лока стало текстовой константой, а «стрелку в задней полусфере» без интроспекции придется туго.
В моем варианте у спинлоков после второго не будет отличающихся имен для диагностики дедлока - т.е. дедлок будет отслежен до драйвера, но не до устройства. Неаккурратненько, но не смертельно - драйверы, поддерживающие неопределенное количество устройств, вполне живут с этим. И выделять ничего не надо - spin_lock_init сам выделит.