Slashdot Mirror


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."

1 of 206 comments (clear)

  1. Major breakage in this kernel. by worldwideweber · · Score: 5, Informative

    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.

    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
    /* Copy and release all segment info associated with a VM */
    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