diff options
Diffstat (limited to 'net-dialup/fcpci/files/fcpci-kernel-2.6.39-amd64.patch')
-rw-r--r-- | net-dialup/fcpci/files/fcpci-kernel-2.6.39-amd64.patch | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/net-dialup/fcpci/files/fcpci-kernel-2.6.39-amd64.patch b/net-dialup/fcpci/files/fcpci-kernel-2.6.39-amd64.patch new file mode 100644 index 00000000000..10e36e2d01b --- /dev/null +++ b/net-dialup/fcpci/files/fcpci-kernel-2.6.39-amd64.patch @@ -0,0 +1,53 @@ +--- fritz/src/driver.c_orig 2011-09-04 16:54:30.000000000 +0200 ++++ fritz/src/driver.c 2011-09-04 16:55:02.000000000 +0200 +@@ -101,7 +101,8 @@ + static unsigned long crit_flags; + static atomic_t scheduler_enabled = ATOMIC_INIT (0); + static atomic_t scheduler_id = ATOMIC_INIT (-1); +-static spinlock_t stack_lock = SPIN_LOCK_UNLOCKED; ++//static spinlock_t stack_lock = SPIN_LOCK_UNLOCKED; ++static DEFINE_SPINLOCK(sched_lock); + #if !defined (__fcclassic__) + static int card_id = 0; + #endif +@@ -815,7 +816,7 @@ + + UNUSED_ARG (data); + atomic_set (&scheduler_id, smp_processor_id ()); +- if (spin_trylock (&stack_lock)) { ++ if (spin_trylock (&sched_lock)) { + while (!atomic_read (&dont_sched)) { + atomic_set (&dont_sched, 1); + os_timer_poll (); +@@ -823,7 +824,7 @@ + scheduler_control (TRUE); + } + } +- spin_unlock (&stack_lock); ++ spin_unlock (&sched_lock); + } + atomic_set (&scheduler_id, -1); + } /* scheduler */ +@@ -839,9 +840,9 @@ + if (atomic_read (&scheduler_id) == smp_processor_id ()) { + res = IRQ_RETVAL ((*capi_lib->cm_handle_events) ()); + } else { +- spin_lock (&stack_lock); ++ spin_lock (&sched_lock); + res = IRQ_RETVAL ((*capi_lib->cm_handle_events) ()); +- spin_unlock (&stack_lock); ++ spin_unlock (&sched_lock); + } + if (res == IRQ_HANDLED) { + atomic_set (&dont_sched, 0); +--- fritz/src/tools.c_orig 2011-09-04 16:54:36.000000000 +0200 ++++ fritz/src/tools.c 2011-09-04 16:55:06.000000000 +0200 +@@ -529,7 +529,7 @@ + ERROR("Could not allocate lock structure!!!\n"); + return 0; + } +- tmp->lock = SPIN_LOCK_UNLOCKED; ++ spin_lock_init(&tmp->lock); + *plock = tmp; + return 1; + } /* lock_init */ |