Понятие нижней половины полезно только тогда, когда вы обслуживаете аппаратное прерывание в вашем драйвере. Маршрутизация службы аппаратных прерываний будет маскировать прерывания с более низким приоритетом, поэтому вы хотите выйти из аппаратного isr как можно быстрее. Нижние половины, будь то тасклеты или рабочие очереди, обрабатываются как мягкое прерывание, поэтому они обычно ничего не маскируют.
Что касается разделения задач, вы не хотите делать какие-либо вызовы, которые могут быть заблокированы, в аппаратном isr. Лучше всего сохранять данные в верхней половине, а затем выполнять обработку / системные вызовы / kmalloc / etc в нижней части.