Bug#328707: partial patch

2005-09-22 Thread Joey Hess
Here's the best patch I've been able to find for this so far.

-- 
see shy jo
--- linux/arch/i386/kernel/apm.c.seg2005-03-27 13:10:45.0 -0800
+++ linux/arch/i386/kernel/apm.c2005-03-28 10:30:24.0 -0800
@@ -327,7 +327,7 @@ extern int (*console_blank_hook)(int);
  * Save a segment register away
  */
 #define savesegment(seg, where) \
-   __asm__ __volatile__(movl %% #seg ,%0 : =m (where))
+   __asm__ __volatile__(mov %% #seg ,%0 : =m (where))
 
 /*
  * Maximum number of events stored
@@ -553,7 +553,7 @@ static inline void apm_restore_cpus(unsi
 
 #ifdef APM_ZERO_SEGS
 #  define APM_DECL_SEGS \
-   unsigned int saved_fs; unsigned int saved_gs;
+   unsigned short saved_fs; unsigned short saved_gs;
 #  define APM_DO_SAVE_SEGS \
savesegment(fs, saved_fs); savesegment(gs, saved_gs)
 #  define APM_DO_ZERO_SEGS \
--- linux/arch/i386/kernel/process.c.seg2005-03-27 13:10:45.0 
-0800
+++ linux/arch/i386/kernel/process.c2005-03-28 10:30:24.0 -0800
@@ -544,7 +544,7 @@ void release_thread(struct task_struct *
  * Save a segment.
  */
 #define savesegment(seg,value) \
-   asm volatile(movl %% #seg ,%0:=m (*(int *)(value)))
+   asm volatile(mov %% #seg ,%0:=m (value))
 
 int copy_thread(int nr, unsigned long clone_flags, unsigned long esp,
unsigned long unused,
@@ -661,8 +661,8 @@ void fastcall __switch_to(struct task_st
 * Save away %fs and %gs. No need to save %es and %ds, as
 * those are always kernel segments while inside the kernel.
 */
-   asm volatile(movl %%fs,%0:=m (*(int *)prev-fs));
-   asm volatile(movl %%gs,%0:=m (*(int *)prev-gs));
+   asm volatile(mov %%fs,%0:=m (prev-fs));
+   asm volatile(mov %%gs,%0:=m (prev-gs));
 
/*
 * Restore %fs and %gs.
--- linux/arch/x86_64/kernel/process.c.seg  2005-03-27 13:10:51.0 
-0800
+++ linux/arch/x86_64/kernel/process.c  2005-03-28 11:16:57.0 -0800
@@ -527,10 +527,10 @@ int copy_thread(int nr, unsigned long cl
p-thread.fs = me-thread.fs;
p-thread.gs = me-thread.gs;
 
-   asm(movl %%gs,%0 : =m (p-thread.gsindex));
-   asm(movl %%fs,%0 : =m (p-thread.fsindex));
-   asm(movl %%es,%0 : =m (p-thread.es));
-   asm(movl %%ds,%0 : =m (p-thread.ds));
+   asm(mov %%gs,%0 : =m (p-thread.gsindex));
+   asm(mov %%fs,%0 : =m (p-thread.fsindex));
+   asm(mov %%es,%0 : =m (p-thread.es));
+   asm(mov %%ds,%0 : =m (p-thread.ds));
 
unlazy_fpu(current);
p-thread.i387 = current-thread.i387;
@@ -575,11 +575,11 @@ struct task_struct *__switch_to(struct t
/* 
 * Switch DS and ES. 
 */
-   asm volatile(movl %%es,%0 : =m (prev-es)); 
+   asm volatile(mov %%es,%0 : =m (prev-es)); 
if (unlikely(next-es | prev-es))
loadsegment(es, next-es); 

-   asm volatile (movl %%ds,%0 : =m (prev-ds)); 
+   asm volatile (mov %%ds,%0 : =m (prev-ds)); 
if (unlikely(next-ds | prev-ds))
loadsegment(ds, next-ds);
 
@@ -588,7 +588,7 @@ struct task_struct *__switch_to(struct t
 */
{ 
unsigned fsindex;
-   asm volatile(movl %%fs,%0 : =g (fsindex)); 
+   asm volatile(movl %%fs,%0 : =r (fsindex)); 
/* segment register != 0 always requires a reload. 
   also reload when it has changed. 
   when prev process used 64bit base always reload
@@ -609,7 +609,7 @@ struct task_struct *__switch_to(struct t
}
{
unsigned gsindex;
-   asm volatile(movl %%gs,%0 : =g (gsindex)); 
+   asm volatile(movl %%gs,%0 : =r (gsindex)); 
if (unlikely((gsindex | next-gsindex) || prev-gs)) {
load_gs_index(next-gsindex);
if (gsindex)
--- linux/include/asm-i386/system.h.seg 2005-03-27 15:33:12.0 -0800
+++ linux/include/asm-i386/system.h 2005-03-28 10:30:24.0 -0800
@@ -84,7 +84,7 @@ static inline unsigned long _get_base(ch
 #define loadsegment(seg,value) \
asm volatile(\n   \
1:\t  \
-   movl %0,%% #seg \n  \
+   mov %0,%% #seg \n   \
2:\n  \
.section .fixup,\ax\\n  \
3:\t  \
@@ -96,7 +96,7 @@ static inline unsigned long _get_base(ch
.align 4\n\t  \
.long 1b,3b\n \
.previous \
-   : :m (*(unsigned int *)(value)))
+   : :m (value))
 
 /*
  * Clear and set 'TS' bit respectively


signature.asc
Description: Digital signature


Bug#328707: partial patch

2005-09-22 Thread Horms
On Thu, Sep 22, 2005 at 08:10:10AM +0200, Joey Hess wrote:
 Here's the best patch I've been able to find for this so far.

This is completely weird, any ideas why this hasn't shown up before?

-- 
Horms


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



Bug#328707: partial patch

2005-09-22 Thread Joey Hess
Horms wrote:
 On Thu, Sep 22, 2005 at 08:10:10AM +0200, Joey Hess wrote:
  Here's the best patch I've been able to find for this so far.
 
 This is completely weird, any ideas why this hasn't shown up before?

Apparently it's known breakage caused by the new binutils that I guess
only just reached Debian in the past couple weeks. If you google for the
error message you get several variants of the patch and a little bit of
explanation.

The patch isn't as partial as I thought, I'm a good way through a 2.4.27
compile now.

-- 
see shy jo


signature.asc
Description: Digital signature


Bug#328707: partial patch

2005-09-22 Thread Horms
On Thu, Sep 22, 2005 at 09:55:24AM +0200, Joey Hess wrote:
 Horms wrote:
  On Thu, Sep 22, 2005 at 08:10:10AM +0200, Joey Hess wrote:
   Here's the best patch I've been able to find for this so far.
  
  This is completely weird, any ideas why this hasn't shown up before?
 
 Apparently it's known breakage caused by the new binutils that I guess
 only just reached Debian in the past couple weeks. If you google for the
 error message you get several variants of the patch and a little bit of
 explanation.
 
 The patch isn't as partial as I thought, I'm a good way through a 2.4.27
 compile now.

Ok, that makes sense. Let me know if the build completes and if so
I'll add it to the tree.



-- 
Horms


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



Bug#328707: partial patch

2005-09-22 Thread Joey Hess
Horms wrote:
 Ok, that makes sense. Let me know if the build completes and if so
 I'll add it to the tree.

Build completed. Kernel seems ok.

-- 
see shy jo


signature.asc
Description: Digital signature