Driver Developer queries for Linux 3.1

Hello chaps!

As a new-to-Linux developer, I'm trying to get to grips with the Linux
Driver system and am chugging my way through various books and

Along the way I've generated a few questions that I'm unable to find
answers for, mostly relating to more recent changes that are not yet
documented and would appreciate the help and advise of any Kernel
experts out there. I will be forming everything I learn into
documentation, that when finished I will make publicly available.

As the latest stable release of Linux is in the 3.1 branch and that
this is where the new BeagleBone starts at this seems like the
appropriate version to align documentation.

My questions are as follows:

- In interrupts, IRQF_DISABLED has been depreciated in favour of
disabling interrupts in all scenarios. My question is, are there ANY
exceptions? Has the role of fast interrupts been made mute? How does
this change work with the ARM hardware interrupt system, which also
has support for FIQs? i.e. are all interrupts given equal priority or
are all interrupts now FIQs etc.

- The new concurrency-managed workqueues have been introduced, these
are intended to replace existing workqueues and tasklets but are they
also intended to replace softirqs or is it still accepted that these
have a relevant role in new development?

Any help in answering these questions is much appreciated.

Many thanks,