|
Форум cronyx.ru (архив)
Частично патч для realtime-ядер | mithraen  :: 2006-03-13 18:14 |
diff -ur clinux.orig/async.c clinux/async.c --- clinux.orig/async.c 2005-09-13 14:47:54 +0400 +++ clinux/async.c 2006-03-13 18:12:38 +0300 @@ -241,7 +241,7 @@ #else INIT_WORK(&p->tqueue, asy_offintr, p); #endif - p->lock = SPIN_LOCK_UNLOCKED; + spin_lock_init(&p->lock); h->sw = p; h->proto = &asy_tab; diff -ur clinux.orig/packet.c clinux/packet.c --- clinux.orig/packet.c 2005-04-24 16:14:29 +0400 +++ clinux/packet.c 2006-03-13 18:12:38 +0300 @@ -127,8 +127,8 @@ if (p->num_open) return -EBUSY; - p->rx_queue_lock = SPIN_LOCK_UNLOCKED; - p->tx_queue_lock = SPIN_LOCK_UNLOCKED; + spin_lock_init (&p->rx_queue_lock); + spin_lock_init (&p->tx_queue_lock); err = h->up (h); if (err) diff -ur clinux.orig/raw.c clinux/raw.c --- clinux.orig/raw.c 2005-04-24 16:14:29 +0400 +++ clinux/raw.c 2006-03-13 18:12:38 +0300 @@ -103,8 +103,8 @@ if (p->num_open) return -EBUSY; - p->rx_queue_lock = SPIN_LOCK_UNLOCKED; - p->tx_queue_lock = SPIN_LOCK_UNLOCKED; + spin_lock_init (&p->rx_queue_lock); + spin_lock_init (&p->tx_queue_lock); err = h->up (h); if (err) diff -ur clinux.orig/sigma.c clinux/sigma.c --- clinux.orig/sigma.c 2005-10-11 18:42:19 +0400 +++ clinux/sigma.c 2006-03-13 18:12:38 +0300 @@ -58,9 +58,15 @@ static cx_buf_t *buffer [NBRD] [NCHAN]; static struct timer_list led_timer [NBRD]; -spinlock_t cx_locks [NBRD] = { - SPIN_LOCK_UNLOCKED, SPIN_LOCK_UNLOCKED, SPIN_LOCK_UNLOCKED, -}; +spinlock_t cx_locks [NBRD]; + +static inline void init_cx_locks(void) +{ + int i; + + for (i = 0; i < NBRD; i++) + spin_lock_init(&cx_locks[i]); +} #define LCK(b,f) spin_lock_irqsave (cx_locks + (b)->num, f) #define UNLCK(b,f) spin_unlock_irqrestore (cx_locks + (b)->num, f) @@ -765,6 +771,8 @@ int unit, ndev, i; unsigned long flags; + init_cx_locks(); + #if LINUX_VERSION_CODE < 0x020600 EXPORT_NO_SYMBOLS; #endif Только в clinux: sigma.c.orig diff -ur clinux.orig/sync.c clinux/sync.c --- clinux.orig/sync.c 2005-09-13 14:47:54 +0400 +++ clinux/sync.c 2006-03-13 18:12:38 +0300 @@ -307,7 +307,7 @@ #else INIT_WORK(&p->tqueue, syn_offintr, p); #endif - p->lock = SPIN_LOCK_UNLOCKED; + spin_lock_init (&p->lock); init_MUTEX (&p->sem); h->sw = p; diff -ur clinux.orig/tau32.c clinux/tau32.c --- clinux.orig/tau32.c 2005-09-13 14:47:55 +0400 +++ clinux/tau32.c 2006-03-13 18:12:38 +0300 @@ -234,7 +234,7 @@ static tau32_board_t *adapters [NBRD]; static struct timer_list second_timer; -spinlock_t tau32_lock_driver = SPIN_LOCK_UNLOCKED; +DEFINE_SPINLOCK(tau32_lock_driver); static int tau32_init_adapter(tau32_board_t *b, int hard_reset); static void tau32_halt_adapter(tau32_board_t *b); diff -ur clinux.orig/tau.c clinux/tau.c --- clinux.orig/tau.c 2005-10-11 18:42:19 +0400 +++ clinux/tau.c 2006-03-13 18:12:42 +0300 @@ -59,11 +59,17 @@ static struct timer_list g_timer; static struct timer_list led_timer [NBRD]; -spinlock_t ct_locks [NBRD] = { - SPIN_LOCK_UNLOCKED, SPIN_LOCK_UNLOCKED, SPIN_LOCK_UNLOCKED, -}; +spinlock_t ct_locks [NBRD]; -spinlock_t ct_lock_driver = SPIN_LOCK_UNLOCKED; +static inline void init_ct_locks(void) +{ + int i; + + for (i = 0; i < NBRD; i++) + spin_lock_init(&ct_locks[i]); +} + +DEFINE_SPINLOCK(ct_lock_driver); #define LCK(b,f) spin_lock_irqsave (ct_locks + (b)->num, f) #define UNLCK(b,f) spin_unlock_irqrestore (ct_locks + (b)->num, f) @@ -948,6 +954,8 @@ int unit, ndev, i; unsigned long flags; + init_ct_locks(); + #if LINUX_VERSION_CODE < 0x020600 EXPORT_NO_SYMBOLS; #endif Только в clinux: tau.c.orig diff -ur clinux.orig/taupci.c clinux/taupci.c --- clinux.orig/taupci.c 2005-09-13 14:47:55 +0400 +++ clinux/taupci.c 2006-03-13 18:12:42 +0300 @@ -76,11 +76,17 @@ static int cp_irq_enabled; static int cp_irq_notignore [NBRD]; -spinlock_t cp_locks [NBRD] = { - SPIN_LOCK_UNLOCKED, SPIN_LOCK_UNLOCKED, SPIN_LOCK_UNLOCKED, - SPIN_LOCK_UNLOCKED, SPIN_LOCK_UNLOCKED, SPIN_LOCK_UNLOCKED, -}; -spinlock_t cp_lock_driver = SPIN_LOCK_UNLOCKED; +spinlock_t cp_locks [NBRD]; + +static inline void init_cp_locks(void) +{ + int i; + + for (i = 0; i < NBRD; i++) + spin_lock_init(&cp_locks[i]); +} + +DEFINE_SPINLOCK(cp_lock_driver); #define LCK(b,f) spin_lock_irqsave (cp_locks + b->num, f) #define UNLCK(b,f) spin_unlock_irqrestore (cp_locks + b->num, f) @@ -1409,6 +1415,8 @@ unsigned short res; struct pci_dev *dev; + init_cp_locks(); + #if LINUX_VERSION_CODE < 0x020600 EXPORT_NO_SYMBOLS; #endif
|