Does your patch should be applied using a 'clean' source (without Marvin's patch) or not? I'm a bit confused. Using a source with Marvin's patch applied I get this: :~/Desktop/agrsm$ patch < patch2619 patching file 8250.h Hunk #1 FAILED at 15. 1 out of 1 hunk FAILED -- saving rejects to file 8250.h.rej patching file agrsoftmodem.c Hunk #1 FAILED at 18. 1 out of 1 hunk FAILED -- saving rejects to file agrsoftmodem.c.rej patching file serial26.c Hunk #1 FAILED at 70. 1 out of 1 hunk FAILED -- saving rejects to file serial26.c.rej Make gives me the following: :~/Desktop/agrsm$ make make -C /lib/modules/2.6.20-16-generic/build SUBDIRS=/home/desktop/Desktop/agrsm modules make[1]: Entrando no diretório `/usr/src/linux-headers-2.6.20-16-generic' CC [M] /home/desktop/Desktop/agrsm/serial26.o /home/desktop/Desktop/agrsm/serial26.c: In function ‘serial8250_get_mctrl’: /home/desktop/Desktop/agrsm/serial26.c:1371: warning: unused variable ‘flags’ /home/desktop/Desktop/agrsm/serial26.c: In function ‘serial8250_config_port’: /home/desktop/Desktop/agrsm/serial26.c:2045: error: ‘UPF_BOOT_ONLYMCA’ undeclared (first use in this function) /home/desktop/Desktop/agrsm/serial26.c:2045: error: (Each undeclared identifier is reported only once /home/desktop/Desktop/agrsm/serial26.c:2045: error: for each function it appears in.) /home/desktop/Desktop/agrsm/serial26.c:2039: warning: unused variable ‘ret’ /home/desktop/Desktop/agrsm/serial26.c: At top level: /home/desktop/Desktop/agrsm/serial26.c:2131: warning: initialization from incompatible pointer type /home/desktop/Desktop/agrsm/serial26.c:2132: warning: initialization from incompatible pointer type make[2]: ** [/home/desktop/Desktop/agrsm/serial26.o] Erro 1 make[1]: ** [_module_/home/desktop/Desktop/agrsm] Erro 2 make[1]: Saindo do diretório `/usr/src/linux-headers-2.6.20-16-generic' make: ** [modules] Erro 2 Using a 'clean' source your patch works just fine: :~/Desktop/agrsm$ patch < patch2619 patching file 8250.h patching file agrsoftmodem.c patching file serial26.c The 'Make': :~/Desktop/agrsm$ make make -C /lib/modules/`uname -r`/build SUBDIRS=/home/desktop/Desktop/agrsm modules make[1]: Entrando no diretório `/usr/src/linux-headers-2.6.20-16-generic' CC [M] /home/desktop/Desktop/agrsm/agrsoftmodem.o /home/desktop/Desktop/agrsm/agrsoftmodem.c: In function ‘SetAgrModemInterface’: /home/desktop/Desktop/agrsm/agrsoftmodem.c:106: warning: implicit declaration of function ‘inter_module_get_request’ /home/desktop/Desktop/agrsm/agrsoftmodem.c:106: warning: assignment makes pointer from integer without a cast /home/desktop/Desktop/agrsm/agrsoftmodem.c:109: warning: implicit declaration of function ‘inter_module_put’ /home/desktop/Desktop/agrsm/agrsoftmodem.c: In function ‘modem_init_module’: /home/desktop/Desktop/agrsm/agrsoftmodem.c:139: warning: implicit declaration of function ‘inter_module_register’ /home/desktop/Desktop/agrsm/agrsoftmodem.c: In function ‘modem_cleanup_module’: /home/desktop/Desktop/agrsm/agrsoftmodem.c:151: warning: implicit declaration of function ‘inter_module_unregister’ /home/desktop/Desktop/agrsm/agrsoftmodem.c: In function ‘x_request_irq’: /home/desktop/Desktop/agrsm/agrsoftmodem.c:226: warning: passing argument 2 of ‘request_irq’ from incompatible pointer type /home/desktop/Desktop/agrsm/agrsoftmodem.c:370:53: error: macro "INIT_WORK" passed 3 arguments, but takes just 2 /home/desktop/Desktop/agrsm/agrsoftmodem.c: In function ‘x_task_queue_init’: /home/desktop/Desktop/agrsm/agrsoftmodem.c:370: error: ‘INIT_WORK’ undeclared (first use in this function) /home/desktop/Desktop/agrsm/agrsoftmodem.c:370: error: (Each undeclared identifier is reported only once /home/desktop/Desktop/agrsm/agrsoftmodem.c:370: error: for each function it appears in.) /home/desktop/Desktop/agrsm/agrsoftmodem.c:369: warning: unused variable ‘x_tqueue’ make[2]: ** [/home/desktop/Desktop/agrsm/agrsoftmodem.o] Erro 1 make[1]: ** [_module_/home/desktop/Desktop/agrsm] Erro 2 make[1]: Saindo do diretório `/usr/src/linux-headers-2.6.20-16-generic' make: ** [module] Erro 2 Stan