mirror of
git://projects.qi-hardware.com/openwrt-xburst.git
synced 2025-04-21 12:27:27 +03:00
ocf-linux: version bump to 20110720
Fixes problem with TFM allocation in cryptosoft.c Signed-off-by: Philip Prindeville <philipp@redfish-solutions.com> Hauke: * remove ubsec_ssb package and take it from ocf-linux * use patches from ocf-linux package * refresh all patches * readd some build fixes for OpenWrt. * readd CRYPTO_MANAGER dependency git-svn-id: svn://svn.openwrt.org/openwrt/trunk@27753 3c298f89-4303-0410-b956-a3cf2f4a3e73
This commit is contained in:
@@ -34,6 +34,11 @@
|
||||
*/
|
||||
/****************************************************************************/
|
||||
#ifdef __KERNEL__
|
||||
#include <linux/version.h>
|
||||
#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,38) && !defined(AUTOCONF_INCLUDED)
|
||||
#include <linux/config.h>
|
||||
#endif
|
||||
|
||||
/*
|
||||
* fake some BSD driver interface stuff specifically for OCF use
|
||||
*/
|
||||
@@ -288,6 +293,72 @@ static inline void *sg_virt(struct scatterlist *sg)
|
||||
#define late_initcall(init) module_init(init)
|
||||
#endif
|
||||
|
||||
#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,4) || !defined(CONFIG_SMP)
|
||||
#define ocf_for_each_cpu(cpu) for ((cpu) = 0; (cpu) == 0; (cpu)++)
|
||||
#else
|
||||
#define ocf_for_each_cpu(cpu) for_each_present_cpu(cpu)
|
||||
#endif
|
||||
|
||||
#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,27)
|
||||
#include <linux/sched.h>
|
||||
#define kill_proc(p,s,v) send_sig(s,find_task_by_vpid(p),0)
|
||||
#endif
|
||||
|
||||
#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,4)
|
||||
|
||||
struct ocf_thread {
|
||||
struct task_struct *task;
|
||||
int (*func)(void *arg);
|
||||
void *arg;
|
||||
};
|
||||
|
||||
/* thread startup helper func */
|
||||
static inline int ocf_run_thread(void *arg)
|
||||
{
|
||||
struct ocf_thread *t = (struct ocf_thread *) arg;
|
||||
if (!t)
|
||||
return -1; /* very bad */
|
||||
t->task = current;
|
||||
daemonize();
|
||||
spin_lock_irq(¤t->sigmask_lock);
|
||||
sigemptyset(¤t->blocked);
|
||||
recalc_sigpending(current);
|
||||
spin_unlock_irq(¤t->sigmask_lock);
|
||||
return (*t->func)(t->arg);
|
||||
}
|
||||
|
||||
#define kthread_create(f,a,fmt...) \
|
||||
({ \
|
||||
struct ocf_thread t; \
|
||||
pid_t p; \
|
||||
t.task = NULL; \
|
||||
t.func = (f); \
|
||||
t.arg = (a); \
|
||||
p = kernel_thread(ocf_run_thread, &t, CLONE_FS|CLONE_FILES); \
|
||||
while (p != (pid_t) -1 && t.task == NULL) \
|
||||
schedule(); \
|
||||
if (t.task) \
|
||||
snprintf(t.task->comm, sizeof(t.task->comm), fmt); \
|
||||
(t.task); \
|
||||
})
|
||||
|
||||
#define kthread_bind(t,cpu) /**/
|
||||
|
||||
#define kthread_should_stop() (strcmp(current->comm, "stopping") == 0)
|
||||
|
||||
#define kthread_stop(t) \
|
||||
({ \
|
||||
strcpy((t)->comm, "stopping"); \
|
||||
kill_proc((t)->pid, SIGTERM, 1); \
|
||||
do { \
|
||||
schedule(); \
|
||||
} while (kill_proc((t)->pid, SIGTERM, 1) == 0); \
|
||||
})
|
||||
|
||||
#else
|
||||
#include <linux/kthread.h>
|
||||
#endif
|
||||
|
||||
#endif /* __KERNEL__ */
|
||||
|
||||
/****************************************************************************/
|
||||
|
||||
Reference in New Issue
Block a user