Part of making an upstream patch involves collapsing those ifdefs to match the current kernel version. That by itself should considerably simplify that function.
- Jonathan Morton