Index: drv_dsl_cpe_api-3.24.4.4/src/common/drv_dsl_cpe_os_linux.c =================================================================== --- drv_dsl_cpe_api-3.24.4.4.orig/src/common/drv_dsl_cpe_os_linux.c 2013-03-14 11:44:50.318326078 +0100 +++ drv_dsl_cpe_api-3.24.4.4/src/common/drv_dsl_cpe_os_linux.c 2013-03-14 11:46:08.562329425 +0100 @@ -11,6 +11,7 @@ #ifdef __LINUX__ #define DSL_INTERN +#include #include #include @@ -40,7 +41,7 @@ static DSL_int_t DSL_DRV_Ioctls(DSL_DRV_inode_t * pINode, DSL_DRV_file_t * pFile, DSL_uint_t nCommand, unsigned long nArg); #else -static DSL_int_t DSL_DRV_Ioctls(DSL_DRV_file_t * pFile, +static long DSL_DRV_Ioctls(DSL_DRV_file_t * pFile, DSL_uint_t nCommand, unsigned long nArg); #endif static int DSL_DRV_Open(DSL_DRV_inode_t * ino, DSL_DRV_file_t * fil); @@ -184,7 +185,7 @@ DSL_uint_t nCommand, unsigned long nArg) #else -static DSL_int_t DSL_DRV_Ioctls( +static long DSL_DRV_Ioctls( DSL_DRV_file_t * pFile, DSL_uint_t nCommand, unsigned long nArg) @@ -521,9 +522,9 @@ - IFX_SUCCESS on success - IFX_ERROR on error */ -DSL_DRV_STATIC DSL_int32_t DSL_DRV_KernelThreadStartup( - DSL_DRV_ThreadCtrl_t *pThrCntrl) +static int DSL_DRV_KernelThreadStartup(void *data) { + DSL_DRV_ThreadCtrl_t *pThrCntrl = (DSL_DRV_ThreadCtrl_t*) data; DSL_int32_t retVal = -1; #ifndef _lint @@ -546,30 +547,6 @@ (DSL_NULL, "ENTER - Kernel Thread Startup <%s>" DSL_DRV_CRLF, pThrCntrl->thrParams.pName)); - /* do LINUX specific setup */ -#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,0)) - daemonize(); - reparent_to_init(); - - /* lock the kernel. A new kernel thread starts without - the big kernel lock, regardless of the lock state - of the creator (the lock level is *not* inheritated) - */ - lock_kernel(); - - /* Don't care about any signals. */ - siginitsetinv(¤t->blocked, 0); - - /* set name of this process */ - strcpy(kthread->comm, pThrCntrl->thrParams.pName); - - /* let others run */ - unlock_kernel(); -#else - daemonize(pThrCntrl->thrParams.pName); - -#endif - /*DSL_DRV_ThreadPriorityModify(pThrCntrl->nPriority);*/ pThrCntrl->thrParams.bRunning = 1; @@ -629,7 +606,7 @@ if (DSL_DRV_THREAD_INIT_VALID(pThrCntrl) == DSL_FALSE) { /* set thread function arguments */ - strcpy(pThrCntrl->thrParams.pName, pName); + snprintf(pThrCntrl->thrParams.pName, DSL_DRV_THREAD_NAME_LEN, "adsl - %s", pName); pThrCntrl->nPriority = nPriority; pThrCntrl->thrParams.nArg1 = nArg1; pThrCntrl->thrParams.nArg2 = nArg2; @@ -639,9 +616,7 @@ init_completion(&pThrCntrl->thrCompletion); /* start kernel thread via the wrapper function */ - pThrCntrl->pid = kernel_thread( (DSL_DRV_KERNEL_THREAD_StartRoutine)DSL_DRV_KernelThreadStartup, - (void *)pThrCntrl, - DSL_DRV_DRV_THREAD_OPTIONS); + pThrCntrl->pid = kthread_run(DSL_DRV_KernelThreadStartup, (void *)pThrCntrl, pThrCntrl->thrParams.pName); pThrCntrl->bValid = DSL_TRUE; @@ -1064,12 +1039,12 @@ #endif /* Entry point of driver */ -static int __devinit ltq_adsl_probe(struct platform_device *pdev) +static int ltq_adsl_probe(struct platform_device *pdev) { struct class *dsl_class; DSL_int_t i; - printk(DSL_DRV_CRLF DSL_DRV_CRLF "Infineon CPE API Driver version: %s" DSL_DRV_CRLF, + printk("Infineon CPE API Driver version: %s" DSL_DRV_CRLF, &(dsl_cpe_api_version[4])); DSL_DRV_MemSet( ifxDevices, 0, sizeof(DSL_devCtx_t) * DSL_DRV_MAX_DEVICE_NUMBER ); @@ -1118,7 +1093,7 @@ return 0; } -static int __devexit ltq_adsl_remove(struct platform_device *pdev) +static int ltq_adsl_remove(struct platform_device *pdev) { printk("Module will be unloaded"DSL_DRV_CRLF); @@ -1163,7 +1138,7 @@ static struct platform_driver ltq_adsl_driver = { .probe = ltq_adsl_probe, - .remove = __devexit_p(ltq_adsl_remove), + .remove = ltq_adsl_remove, .driver = { .name = "adsl", .owner = THIS_MODULE, Index: drv_dsl_cpe_api-3.24.4.4/src/include/drv_dsl_cpe_os_lint_map.h =================================================================== --- drv_dsl_cpe_api-3.24.4.4.orig/src/include/drv_dsl_cpe_os_lint_map.h 2009-02-24 21:44:54.000000000 +0100 +++ drv_dsl_cpe_api-3.24.4.4/src/include/drv_dsl_cpe_os_lint_map.h 2013-03-14 11:44:50.330326079 +0100 @@ -247,7 +247,7 @@ DSL_DRV_ThreadFunction_t pThrFct; /** Kernel thread process ID */ - DSL_int32_t pid; + struct task_struct *pid; /** requested kernel thread priority */ DSL_int32_t nPriority; Index: drv_dsl_cpe_api-3.24.4.4/src/include/drv_dsl_cpe_os_linux.h =================================================================== --- drv_dsl_cpe_api-3.24.4.4.orig/src/include/drv_dsl_cpe_os_linux.h 2013-03-14 11:44:50.298326077 +0100 +++ drv_dsl_cpe_api-3.24.4.4/src/include/drv_dsl_cpe_os_linux.h 2013-03-14 11:44:50.330326079 +0100 @@ -288,7 +288,7 @@ DSL_DRV_ThreadFunction_t pThrFct; /** Kernel thread process ID */ - DSL_int32_t pid; + struct task_struct *pid; /** requested kernel thread priority */ DSL_int32_t nPriority;