Você está basicamente no caminho certo, mas não há necessidade de compilar um kernel completo, o que seria um exagero. Normalmente, o dkms é usado para construir automaticamente um ou mais módulos do kernel para kernels recém-inicializados.
Assim, você precisaria criar uma configuração dkms apenas para o módulo do kernel que deseja corrigir e, em seguida, colocar o código-fonte do módulo do kernel que deve ser corrigido em /usr/src/modulename-version
juntamente com o patch e a configuração dkms.
Se você quiser seguir esse caminho, dê uma olhada na página de manual do dkms ou talvez a * documentação do dkms específica do buntu e veja alguns dos pacotes dkms existentes e adapte-se à sua situação.
Mas você não precisa reinventar a roda, por favor, verifique se essa correção se aplica no seu caso: link que também é mencionado em link e link e via link