2.5.4 Kernel Out
Saint Aardvark writes: "Just in time for my 30th birthday, the new kernel is out...how did he know? Thanks, Linus! Change log here. I usually stick to stable stuff, but I think I'll try this for fun." Reader Scooby Snacks writes: "Be sure to use the patches and pick from the fine list of mirrors."
There was a change to the API in this kernel release which breaks a bunch of drivers for the moment. Specifically, all drivers that allocate buffers using the kmalloc/__get_free_pages and virt_to_bus will not link. Right now, I can see atleast two groups of drivers affected: some USB, and the PCI sound drivers.
/* Copy and release all segment info associated with a VM */
/*
Even if you don't see the above problem, this kernel will not compile (atleast on most i386 systems) without the following patch:
--- linux-2.5.4/include/asm-i386/processor.h Sun Feb 10 22:00:29 2002
+++ 25/include/asm-i386/processor.h Sun Feb 10 22:21:53 2002
@@ -435,14 +435,7 @@ extern int kernel_thread(int (*fn)(void
extern void copy_segments(struct task_struct *p, struct mm_struct * mm);
extern void release_segments(struct mm_struct * mm);
-
-/*
- * Return saved PC of a blocked thread.
- */
-static inline unsigned long thread_saved_pc(struct task_struct *tsk)
-{
- return ((unsigned long *)tsk->thread->esp)[3];
-}
+extern unsigned long thread_saved_pc(struct task_struct *tsk);
unsigned long get_wchan(struct task_struct *p);
#define KSTK_EIP(tsk) (((unsigned long *)(4096+(unsigned long)(tsk)->thread_info))[1019])
--- linux-2.5.4/arch/i386/kernel/process.c Sun Feb 10 22:00:28 2002
+++ 25/arch/i386/kernel/process.c Sun Feb 10 22:26:35 2002
@@ -55,6 +55,14 @@ asmlinkage void ret_from_fork(void) __as
int hlt_counter;
+ * Return saved PC of a blocked thread.
+ */
+unsigned long thread_saved_pc(struct task_struct *tsk)
+{
+ return ((unsigned long *)tsk->thread.esp)[3];
+}
+
+/*
* Powermanagement idle function, if any..
*/
void (*pm_idle)(void);
-
-
w o r l d w i d e w e b e r