From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1161071AbbE2Uxu (ORCPT ); Fri, 29 May 2015 16:53:50 -0400 Received: from mout.kundenserver.de ([212.227.126.187]:58479 "EHLO mout.kundenserver.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1756906AbbE2Uwx (ORCPT ); Fri, 29 May 2015 16:52:53 -0400 From: Arnd Bergmann To: Greg KH Cc: Rachel Kim , Dean Lee , Chris Park , devel@driverdev.osuosl.org, nicolas.ferre@atmel.com, Johnny Kim , linux-kernel@vger.kernel.org, Arnd Bergmann Subject: [PATCH 03/16] staging: wilc1000: remove thread wrapper Date: Fri, 29 May 2015 22:52:14 +0200 Message-Id: <1432932747-3739705-4-git-send-email-arnd@arndb.de> X-Mailer: git-send-email 2.1.0.rc2 In-Reply-To: <1432932747-3739705-1-git-send-email-arnd@arndb.de> References: <1432932747-3739705-1-git-send-email-arnd@arndb.de> X-Provags-ID: V03:K0:OpwGXzul6rBrdzf33YzdaHaua9HcYkA8q4rt9mF7aXsj947t4QQ tpwx3NsSDVKSPBmD6p3Xjcl7c6VWdKkD04f/onSM7525FMwJLalT0SFDW/f3BvK3UbAdVgj L/OPOxjl5+G1C+uTITVgGOv2ffSc6k1IXIt1+aSVaT1bYsH5hPJ5LuXBVe9SXh3+RC17Z3M 6bOoP/bcipYVCMROfox1A== X-UI-Out-Filterresults: notjunk:1;V01:K0:3GEw52bjxYs=:37/7m3msGbKniq4OW1uEKN ZjhSIxdOF+YjDZFYgjURD64EohFDpD6LerqVAQhO9eNdzJLhXoAHk2hMv4oiacXKXWHCUQOAG SMTTn2apw0B4QAIU1q5D3XlNZcnH7BySCsgWxX0K6ntI+3AzFI8WIo+Tt4ZT4d25Aur8p6k/c fbPWUrnObJMlzrakJttmAUT7Jv0QUMA2seIafe7Z/oAev3xDclSNM61oTAqDdEyOJCYobbCOi TPGYNpcSrSKMSOe9uhHkv6vvsL9sqyUqzwCSDXgGfazN8pmxGKGoowK7HoCcbyNztqODx+yYq sbI0tv8bjzVSQD5SBrmdvQwWSipsm/0cx417lYkaDqA5hlpk5zAlsO2p3wSM8/UvB6RbX1Mse Kv+4pS8v28gAlL6FNmIHTs/ex/gbQDk1fa+pKsLDWuBqiDtJAu5DKL3pepPe+z9cyVIiaJWHm eIgMO4Zs1q+CeJvWUU+48UbsFTrYE7vWCrGexLK/ctGDzh++A3PGzmoC6zu+ftyOPuqTKH6E9 PUQ4n2j1YFZIJOycV4u/NpoSy13rYMHgiAjHWyZaNNqUMbm7Dl0L/21kF0hkJhWxwacjizWA5 AuERMWQC0/tkR8Xxw+EPRiapbmacfF31/Qby8Nz9Y2Z9fqHXvvuyOv9FVSFcdLUqZXpj0QJIM so15wRGDBdrwoD/rjwolyeVHk Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org The wilc_thread code is a very thin wrapper around kthread, so just remove it and use kthread directly. Signed-off-by: Arnd Bergmann --- drivers/staging/wilc1000/Makefile | 2 +- drivers/staging/wilc1000/host_interface.c | 16 ++-- drivers/staging/wilc1000/wilc_osconfig.h | 3 - drivers/staging/wilc1000/wilc_oswrapper.h | 5 - drivers/staging/wilc1000/wilc_platform.h | 14 --- drivers/staging/wilc1000/wilc_thread.c | 35 ------- drivers/staging/wilc1000/wilc_thread.h | 153 ------------------------------ 7 files changed, 8 insertions(+), 220 deletions(-) delete mode 100644 drivers/staging/wilc1000/wilc_thread.c delete mode 100644 drivers/staging/wilc1000/wilc_thread.h diff --git a/drivers/staging/wilc1000/Makefile b/drivers/staging/wilc1000/Makefile index 4aa0d84ba8da..4aa5f6764df4 100644 --- a/drivers/staging/wilc1000/Makefile +++ b/drivers/staging/wilc1000/Makefile @@ -27,7 +27,7 @@ ccflags-$(CONFIG_WILC1000_DYNAMICALLY_ALLOCATE_MEMROY) += -DWILC_NORMAL_ALLOC wilc1000-objs := wilc_wfi_netdevice.o wilc_wfi_cfgoperations.o linux_wlan.o linux_mon.o \ wilc_memory.o wilc_msgqueue.o wilc_semaphore.o wilc_sleep.o wilc_strutils.o \ - wilc_thread.o wilc_time.o wilc_timer.o coreconfigurator.o host_interface.o \ + wilc_time.o wilc_timer.o coreconfigurator.o host_interface.o \ fifo_buffer.o wilc_sdio.o wilc_spi.o wilc_wlan_cfg.o wilc_debugfs.o wilc1000-$(CONFIG_WILC1000_SDIO) += linux_wlan_sdio.o diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index fcbadd1885de..7c764a2ba573 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -543,7 +543,7 @@ tstrWILC_WFIDrv *gWFiDrvHandle = WILC_NULL; WILC_Bool g_obtainingIP = WILC_FALSE; #endif WILC_Uint8 P2P_LISTEN_STATE; -static WILC_ThreadHandle HostIFthreadHandler; +static struct task_struct *HostIFthreadHandler; static WILC_MsgQueueHandle gMsgQHostIF; static WILC_SemaphoreHandle hSemHostIFthrdEnd; @@ -4370,7 +4370,7 @@ static WILC_Sint32 Handle_DelAllRxBASessions(void *drvHandler, tstrHostIfBASessi * @date * @version 1.0 */ -static void hostIFthread(void *pvArg) +static int hostIFthread(void *pvArg) { WILC_Uint32 u32Ret; tstrHostIFmsg strHostIFmsg; @@ -4591,10 +4591,7 @@ static void hostIFthread(void *pvArg) PRINT_D(HOSTINF_DBG, "Releasing thread exit semaphore\n"); WILC_SemaphoreRelease(&hSemHostIFthrdEnd, WILC_NULL); - return; - /* do_exit(error); */ - /* PRINT_D(HOSTINF_DBG,"do_exit error code %d\n",error); */ - + return 0; } static void TimerCB_Scan(void *pvArg) @@ -6683,9 +6680,10 @@ WILC_Sint32 host_int_init(WILC_WFIDrvHandle *phWFIDrv) goto _fail_; } msgQ_created = 1; - s32Error = WILC_ThreadCreate(&HostIFthreadHandler, hostIFthread, WILC_NULL, WILC_NULL); - if (s32Error < 0) { + HostIFthreadHandler = kthread_run(hostIFthread, NULL, "WILC_kthread"); + if (IS_ERR(HostIFthreadHandler)) { PRINT_ER("Failed to creat Thread\n"); + s32Error = WILC_FAIL; goto _fail_mq_; } s32Error = WILC_TimerCreate(&(g_hPeriodicRSSI), GetPeriodicRSSI, WILC_NULL); @@ -6788,7 +6786,7 @@ _fail_timer_2: _fail_timer_1: WILC_TimerDestroy(&(pstrWFIDrv->hScanTimer), WILC_NULL); _fail_thread_: - WILC_ThreadDestroy(&HostIFthreadHandler, WILC_NULL); + kthread_stop(HostIFthreadHandler); _fail_mq_: WILC_MsgQueueDestroy(&gMsgQHostIF, WILC_NULL); _fail_: diff --git a/drivers/staging/wilc1000/wilc_osconfig.h b/drivers/staging/wilc1000/wilc_osconfig.h index 2e3700e2c1ad..aa98ea5b423f 100644 --- a/drivers/staging/wilc1000/wilc_osconfig.h +++ b/drivers/staging/wilc1000/wilc_osconfig.h @@ -10,9 +10,6 @@ /* OS features supported */ -#define CONFIG_WILC_THREAD_FEATURE 1 -/* #define CONFIG_WILC_THREAD_SUSPEND_CONTROL 1 */ -/* #define CONFIG_WILC_THREAD_STRICT_PRIORITY 1 */ #define CONFIG_WILC_SEMAPHORE_FEATURE 1 /* #define CONFIG_WILC_SEMAPHORE_TIMEOUT 1 */ #define CONFIG_WILC_SLEEP_FEATURE 1 diff --git a/drivers/staging/wilc1000/wilc_oswrapper.h b/drivers/staging/wilc1000/wilc_oswrapper.h index df288c8be626..03a1ecf90625 100644 --- a/drivers/staging/wilc1000/wilc_oswrapper.h +++ b/drivers/staging/wilc1000/wilc_oswrapper.h @@ -54,11 +54,6 @@ typedef WILC_Uint16 WILC_WideChar; /* Error reporting and handling support */ #include "wilc_errorsupport.h" -/* Thread support */ -#ifdef CONFIG_WILC_THREAD_FEATURE -#include "wilc_thread.h" -#endif - /* Semaphore support */ #ifdef CONFIG_WILC_SEMAPHORE_FEATURE #include "wilc_semaphore.h" diff --git a/drivers/staging/wilc1000/wilc_platform.h b/drivers/staging/wilc1000/wilc_platform.h index 31d5034cb7fa..87e4eedcc914 100644 --- a/drivers/staging/wilc1000/wilc_platform.h +++ b/drivers/staging/wilc1000/wilc_platform.h @@ -15,18 +15,6 @@ * Feature support checks *******************************************************************/ -/* CONFIG_WILC_THREAD_FEATURE is implemented */ - -/* remove the following block when implementing its feature */ -#ifdef CONFIG_WILC_THREAD_SUSPEND_CONTROL -#error This feature is not supported by this OS -#endif - -/* remove the following block when implementing its feature */ -#ifdef CONFIG_WILC_THREAD_STRICT_PRIORITY -#error This feature is not supported by this OS -#endif - /* CONFIG_WILC_SEMAPHORE_FEATURE is implemented */ /* remove the following block when implementing its feature @@ -140,8 +128,6 @@ * OS specific types *******************************************************************/ -typedef struct task_struct *WILC_ThreadHandle; - typedef void *WILC_MemoryPoolHandle; typedef struct semaphore WILC_SemaphoreHandle; diff --git a/drivers/staging/wilc1000/wilc_thread.c b/drivers/staging/wilc1000/wilc_thread.c deleted file mode 100644 index 5eb04e839309..000000000000 --- a/drivers/staging/wilc1000/wilc_thread.c +++ /dev/null @@ -1,35 +0,0 @@ - -#include "wilc_oswrapper.h" - -#ifdef CONFIG_WILC_THREAD_FEATURE - - - -WILC_ErrNo WILC_ThreadCreate(WILC_ThreadHandle *pHandle, tpfWILC_ThreadFunction pfEntry, - void *pvArg, tstrWILC_ThreadAttrs *pstrAttrs) -{ - - - *pHandle = kthread_run((int (*)(void *))pfEntry, pvArg, "WILC_kthread"); - - - if (IS_ERR(*pHandle)) { - return WILC_FAIL; - } else { - return WILC_SUCCESS; - } - -} - -WILC_ErrNo WILC_ThreadDestroy(WILC_ThreadHandle *pHandle, - tstrWILC_ThreadAttrs *pstrAttrs) -{ - WILC_ErrNo s32RetStatus = WILC_SUCCESS; - - kthread_stop(*pHandle); - return s32RetStatus; -} - - - -#endif diff --git a/drivers/staging/wilc1000/wilc_thread.h b/drivers/staging/wilc1000/wilc_thread.h deleted file mode 100644 index c862cd544dd4..000000000000 --- a/drivers/staging/wilc1000/wilc_thread.h +++ /dev/null @@ -1,153 +0,0 @@ -#ifndef __WILC_THREAD_H__ -#define __WILC_THREAD_H__ - -/*! - * @file wilc_thread.h - * @brief Thread OS Wrapper functionality - * @author syounan - * @sa wilc_oswrapper.h top level OS wrapper file - * @date 10 Aug 2010 - * @version 1.0 - */ - -#ifndef CONFIG_WILC_THREAD_FEATURE -#error the feature WILC_OS_FEATURE_THREAD must be supported to include this file -#endif - -typedef void (*tpfWILC_ThreadFunction)(void *); - -typedef enum { - #ifdef CONFIG_WILC_THREAD_STRICT_PRIORITY - WILC_OS_THREAD_PIORITY_0 = 0, - WILC_OS_THREAD_PIORITY_1 = 1, - WILC_OS_THREAD_PIORITY_2 = 2, - WILC_OS_THREAD_PIORITY_3 = 3, - WILC_OS_THREAD_PIORITY_4 = 4, - #endif - - WILC_OS_THREAD_PIORITY_HIGH = 0, - WILC_OS_THREAD_PIORITY_NORMAL = 2, - WILC_OS_THREAD_PIORITY_LOW = 4 -} tenuWILC_ThreadPiority; - -/*! - * @struct WILC_ThreadAttrs - * @brief Thread API options - * @author syounan - * @date 10 Aug 2010 - * @version 1.0 - */ -typedef struct { - /*!< - * stack size for use with WILC_ThreadCreate, default is WILC_OS_THREAD_DEFAULT_STACK - */ - WILC_Uint32 u32StackSize; - - /*!< - * piority for the thread, if WILC_OS_FEATURE_THREAD_STRICT_PIORITY is defined - * this value is strictly observed and can take a larger resolution - */ - tenuWILC_ThreadPiority enuPiority; - - #ifdef CONFIG_WILC_THREAD_SUSPEND_CONTROL - /*! - * if true the thread will be created suspended - */ - WILC_Bool bStartSuspended; - #endif - -} tstrWILC_ThreadAttrs; - -#define WILC_OS_THREAD_DEFAULT_STACK (10 * 1024) - -/*! - * @brief Fills the WILC_ThreadAttrs with default parameters - * @param[out] pstrAttrs structure to be filled - * @sa WILC_ThreadAttrs - * @author syounan - * @date 10 Aug 2010 - * @version 1.0 - */ - -static void WILC_ThreadFillDefault(tstrWILC_ThreadAttrs *pstrAttrs) -{ - pstrAttrs->u32StackSize = WILC_OS_THREAD_DEFAULT_STACK; - pstrAttrs->enuPiority = WILC_OS_THREAD_PIORITY_NORMAL; - - #ifdef CONFIG_WILC_THREAD_SUSPEND_CONTROL - pstrAttrs->bStartSuspended = WILC_FALSE; - #endif -} - -/*! - * @brief Creates a new thread - * @details if the feature WILC_OS_FEATURE_THREAD_SUSPEND_CONTROL is - * defined and tstrWILC_ThreadAttrs.bStartSuspended is set to true - * the new thread will be created in suspended state, otherwise - * it will start executing immeadiately - * if the feature WILC_OS_FEATURE_THREAD_STRICT_PIORITY is defined - * piorities are strictly observed, otherwise the underlaying OS - * may not observe piorities - * @param[out] pHandle handle to the newly created thread object - * @param[in] pfEntry pointer to the entry point of the new thread - * @param[in] pstrAttrs Optional attributes, NULL for default - * @return Error code indicating sucess/failure - * @sa WILC_ThreadAttrs - * @author syounan - * @date 10 Aug 2010 - * @version 1.0 - */ -WILC_ErrNo WILC_ThreadCreate(WILC_ThreadHandle *pHandle, tpfWILC_ThreadFunction pfEntry, - void *pvArg, tstrWILC_ThreadAttrs *pstrAttrs); - -/*! - * @brief Destroys the Thread object - * @details This function is used for clean up and freeing any used resources - * This function will block until the destroyed thread exits cleanely, - * so, the thread code thould handle an exit case before this calling - * this function - * @param[in] pHandle handle to the thread object - * @param[in] pstrAttrs Optional attributes, NULL for default - * @return Error code indicating sucess/failure - * @sa WILC_ThreadAttrs - * @author syounan - * @date 10 Aug 2010 - * @version 1.0 - */ -WILC_ErrNo WILC_ThreadDestroy(WILC_ThreadHandle *pHandle, - tstrWILC_ThreadAttrs *pstrAttrs); - -#ifdef CONFIG_WILC_THREAD_SUSPEND_CONTROL - -/*! - * @brief Suspends an executing Thread object - * @param[in] pHandle handle to the thread object - * @param[in] pstrAttrs Optional attributes, NULL for default - * @return Error code indicating sucess/failure - * @sa WILC_ThreadAttrs - * @note Optional part, WILC_OS_FEATURE_THREAD_SUSPEND_CONTROL must be enabled - * @author syounan - * @date 10 Aug 2010 - * @version 1.0 - */ -WILC_ErrNo WILC_ThreadSuspend(WILC_ThreadHandle *pHandle, - tstrWILC_ThreadAttrs *pstrAttrs); - -/*! - * @brief Resumes a suspened Thread object - * @param[in] pHandle handle to the thread object - * @param[in] pstrAttrs Optional attributes, NULL for default - * @return Error code indicating sucess/failure - * @sa WILC_ThreadAttrs - * @note Optional part, WILC_OS_FEATURE_THREAD_SUSPEND_CONTROL must be enabled - * @author syounan - * @date 10 Aug 2010 - * @version 1.0 - */ -WILC_ErrNo WILC_ThreadResume(WILC_ThreadHandle *pHandle, - tstrWILC_ThreadAttrs *pstrAttrs); - -#endif - - -#endif -- 2.1.0.rc2