>
> Here goes the first candidate for 2.4.21.
>
> Please test it extensively.
2.4.20 needs these patches to compile with gcc3.3. It does still apply
to 2.4.21-rc1.
The extern inline -> static inline is only a workaround and must not go
in, I hope a more recent gcc-3.3 has a fix for the inline bugs.
Please review:
drivers/net/irda/ma600.c | 2 +-
drivers/net/tokenring/olympic.c | 4 ++--
drivers/sound/cs46xx.c | 4 ++--
include/asm-ppc/io.h | 34 +++++++++++++++++-----------------
include/asm-ppc/pgalloc.h | 12 ++++++------
include/asm-ppc/semaphore.h | 8 ++++----
include/asm-ppc/uaccess.h | 10 +++++-----
net/decnet/dn_table.c | 3 +--
8 files changed, 38 insertions(+), 39 deletions(-)
diff -purNX /kernel_exclude.txt linux_ppc/drivers/net/irda/ma600.c linux_ppc/drivers/net/irda/ma600.c
--- linux_ppc/drivers/net/irda/ma600.c 2002-11-28 23:53:13.000000000 +0000
+++ linux_ppc/drivers/net/irda/ma600.c 2003-02-03 12:51:14.000000000 +0000
@@ -53,7 +53,7 @@
if(!(expr)) { \
printk( "Assertion failed! %s,%s,%s,line=%d\n",\
#expr,__FILE__,__FUNCTION__,__LINE__); \
- ##func}
+ func}
#endif
/* convert hex value to ascii hex */
diff -purNX /kernel_exclude.txt linux_ppc/drivers/net/tokenring/olympic.c linux_ppc/drivers/net/tokenring/olympic.c
--- linux_ppc/drivers/net/tokenring/olympic.c 2002-11-28 23:53:14.000000000 +0000
+++ linux_ppc/drivers/net/tokenring/olympic.c 2003-02-03 12:46:04.000000000 +0000
@@ -655,8 +655,8 @@ static int olympic_open(struct net_devic
printk(" stat_ring[7]: %p\n", &(olympic_priv->olympic_rx_status_ring[7]) );
printk("RXCDA: %x, rx_ring[0]: %p\n",readl(olympic_mmio+RXCDA),&olympic_priv->olympic_rx_ring[0]);
- printk("Rx_ring_dma_addr = %08x, rx_status_dma_addr =
-%08x\n",olympic_priv->rx_ring_dma_addr,olympic_priv->rx_status_ring_dma_addr) ;
+ printk("Rx_ring_dma_addr = %08x, rx_status_dma_addr ="
+"%08x\n",olympic_priv->rx_ring_dma_addr,olympic_priv->rx_status_ring_dma_addr) ;
#endif
writew((((readw(olympic_mmio+RXENQ)) & 0x8000) ^ 0x8000) | i,olympic_mmio+RXENQ);
diff -purNX /kernel_exclude.txt linux_ppc/drivers/sound/cs46xx.c linux_ppc/drivers/sound/cs46xx.c
--- linux_ppc/drivers/sound/cs46xx.c 2002-08-03 00:39:44.000000000 +0000
+++ linux_ppc/drivers/sound/cs46xx.c 2003-02-03 12:51:14.000000000 +0000
@@ -947,8 +947,8 @@ static void cs_play_setup(struct cs_stat
struct InitStruct
{
- u32 long off;
- u32 long val;
+ u32 off;
+ u32 val;
} InitArray[] = { {0x00000040, 0x3fc0000f},
{0x0000004c, 0x04800000},
diff -purNX /kernel_exclude.txt linux_ppc/include/asm-ppc/io.h linux_ppc/include/asm-ppc/io.h
--- linux_ppc/include/asm-ppc/io.h 2001-11-03 01:43:54.000000000 +0000
+++ linux_ppc/include/asm-ppc/io.h 2003-02-03 12:29:32.000000000 +0000
@@ -84,7 +84,7 @@ extern unsigned long pci_dram_offset;
* and potentially some CHRPs -- paulus.
*/
#define __do_in_asm(name, op) \
-extern __inline__ unsigned int name(unsigned int port) \
+static __inline__ unsigned int name(unsigned int port) \
{ \
unsigned int x; \
__asm__ __volatile__( \
@@ -109,7 +109,7 @@ extern __inline__ unsigned int name(unsi
}
#define __do_out_asm(name, op) \
-extern __inline__ void name(unsigned int val, unsigned int port) \
+static __inline__ void name(unsigned int val, unsigned int port) \
{ \
__asm__ __volatile__( \
op " %0,0,%1\n" \
@@ -203,7 +203,7 @@ extern void io_block_mapping(unsigned lo
* address from the PCI point of view, thus buffer addresses also
* have to be modified [mapped] appropriately.
*/
-extern inline unsigned long virt_to_bus(volatile void * address)
+static inline unsigned long virt_to_bus(volatile void * address)
{
#ifndef CONFIG_APUS
if (address == (void *)0)
@@ -214,7 +214,7 @@ extern inline unsigned long virt_to_bus(
#endif
}
-extern inline void * bus_to_virt(unsigned long address)
+static inline void * bus_to_virt(unsigned long address)
{
#ifndef CONFIG_APUS
if (address == 0)
@@ -229,7 +229,7 @@ extern inline void * bus_to_virt(unsigne
* Change virtual addresses to physical addresses and vv, for
* addresses in the area where the kernel has the RAM mapped.
*/
-extern inline unsigned long virt_to_phys(volatile void * address)
+static inline unsigned long virt_to_phys(volatile void * address)
{
#ifndef CONFIG_APUS
return (unsigned long) address - KERNELBASE;
@@ -238,7 +238,7 @@ extern inline unsigned long virt_to_phys
#endif
}
-extern inline void * phys_to_virt(unsigned long address)
+static inline void * phys_to_virt(unsigned long address)
{
#ifndef CONFIG_APUS
return (void *) (address + KERNELBASE);
@@ -260,7 +260,7 @@ extern inline void * phys_to_virt(unsign
* Acts as a barrier to ensure all previous I/O accesses have
* completed before any further ones are issued.
*/
-extern inline void eieio(void)
+static inline void eieio(void)
{
__asm__ __volatile__ ("eieio" : : : "memory");
}
@@ -275,7 +275,7 @@ extern inline void eieio(void)
/*
* 8, 16 and 32 bit, big and little endian I/O operations, with barrier.
*/
-extern inline int in_8(volatile unsigned char *addr)
+static inline int in_8(volatile unsigned char *addr)
{
int ret;
@@ -283,12 +283,12 @@ extern inline int in_8(volatile unsigned
return ret;
}
-extern inline void out_8(volatile unsigned char *addr, int val)
+static inline void out_8(volatile unsigned char *addr, int val)
{
__asm__ __volatile__("stb%U0%X0 %1,%0; eieio" : "=m" (*addr) : "r" (val));
}
-extern inline int in_le16(volatile unsigned short *addr)
+static inline int in_le16(volatile unsigned short *addr)
{
int ret;
@@ -297,7 +297,7 @@ extern inline int in_le16(volatile unsig
return ret;
}
-extern inline int in_be16(volatile unsigned short *addr)
+static inline int in_be16(volatile unsigned short *addr)
{
int ret;
@@ -305,18 +305,18 @@ extern inline int in_be16(volatile unsig
return ret;
}
-extern inline void out_le16(volatile unsigned short *addr, int val)
+static inline void out_le16(volatile unsigned short *addr, int val)
{
__asm__ __volatile__("sthbrx %1,0,%2; eieio" : "=m" (*addr) :
"r" (val), "r" (addr));
}
-extern inline void out_be16(volatile unsigned short *addr, int val)
+static inline void out_be16(volatile unsigned short *addr, int val)
{
__asm__ __volatile__("sth%U0%X0 %1,%0; eieio" : "=m" (*addr) : "r" (val));
}
-extern inline unsigned in_le32(volatile unsigned *addr)
+static inline unsigned in_le32(volatile unsigned *addr)
{
unsigned ret;
@@ -325,7 +325,7 @@ extern inline unsigned in_le32(volatile
return ret;
}
-extern inline unsigned in_be32(volatile unsigned *addr)
+static inline unsigned in_be32(volatile unsigned *addr)
{
unsigned ret;
@@ -333,13 +333,13 @@ extern inline unsigned in_be32(volatile
return ret;
}
-extern inline void out_le32(volatile unsigned *addr, int val)
+static inline void out_le32(volatile unsigned *addr, int val)
{
__asm__ __volatile__("stwbrx %1,0,%2; eieio" : "=m" (*addr) :
"r" (val), "r" (addr));
}
-extern inline void out_be32(volatile unsigned *addr, int val)
+static inline void out_be32(volatile unsigned *addr, int val)
{
__asm__ __volatile__("stw%U0%X0 %1,%0; eieio" : "=m" (*addr) : "r" (val));
}
diff -purNX /kernel_exclude.txt linux_ppc/include/asm-ppc/pgalloc.h linux_ppc/include/asm-ppc/pgalloc.h
--- linux_ppc/include/asm-ppc/pgalloc.h 2001-05-21 22:02:06.000000000 +0000
+++ linux_ppc/include/asm-ppc/pgalloc.h 2003-02-03 12:12:37.000000000 +0000
@@ -55,7 +55,7 @@ extern unsigned long get_zero_page_fast(
extern void __bad_pte(pmd_t *pmd);
-extern __inline__ pgd_t *get_pgd_slow(void)
+static __inline__ pgd_t *get_pgd_slow(void)
{
pgd_t *ret;
@@ -64,7 +64,7 @@ extern __inline__ pgd_t *get_pgd_slow(vo
return ret;
}
-extern __inline__ pgd_t *get_pgd_fast(void)
+static __inline__ pgd_t *get_pgd_fast(void)
{
unsigned long *ret;
@@ -77,14 +77,14 @@ extern __inline__ pgd_t *get_pgd_fast(vo
return (pgd_t *)ret;
}
-extern __inline__ void free_pgd_fast(pgd_t *pgd)
+static __inline__ void free_pgd_fast(pgd_t *pgd)
{
*(unsigned long **)pgd = pgd_quicklist;
pgd_quicklist = (unsigned long *) pgd;
pgtable_cache_size++;
}
-extern __inline__ void free_pgd_slow(pgd_t *pgd)
+static __inline__ void free_pgd_slow(pgd_t *pgd)
{
free_page((unsigned long)pgd);
}
@@ -128,14 +128,14 @@ static inline pte_t *pte_alloc_one_fast(
return (pte_t *)ret;
}
-extern __inline__ void pte_free_fast(pte_t *pte)
+static __inline__ void pte_free_fast(pte_t *pte)
{
*(unsigned long **)pte = pte_quicklist;
pte_quicklist = (unsigned long *) pte;
pgtable_cache_size++;
}
-extern __inline__ void pte_free_slow(pte_t *pte)
+static __inline__ void pte_free_slow(pte_t *pte)
{
free_page((unsigned long)pte);
}
diff -purNX /kernel_exclude.txt linux_ppc/include/asm-ppc/semaphore.h linux_ppc/include/asm-ppc/semaphore.h
--- linux_ppc/include/asm-ppc/semaphore.h 2002-11-28 23:53:15.000000000 +0000
+++ linux_ppc/include/asm-ppc/semaphore.h 2003-02-03 13:14:38.000000000 +0000
@@ -81,7 +81,7 @@ extern void __down(struct semaphore * se
extern int __down_interruptible(struct semaphore * sem);
extern void __up(struct semaphore * sem);
-extern inline void down(struct semaphore * sem)
+static inline void down(struct semaphore * sem)
{
#if WAITQUEUE_DEBUG
CHECK_MAGIC(sem->__magic);
@@ -95,7 +95,7 @@ extern inline void down(struct semaphore
smp_wmb();
}
-extern inline int down_interruptible(struct semaphore * sem)
+static inline int down_interruptible(struct semaphore * sem)
{
int ret = 0;
@@ -109,7 +109,7 @@ extern inline int down_interruptible(str
return ret;
}
-extern inline int down_trylock(struct semaphore * sem)
+static inline int down_trylock(struct semaphore * sem)
{
int ret;
@@ -122,7 +122,7 @@ extern inline int down_trylock(struct se
return ret;
}
-extern inline void up(struct semaphore * sem)
+static inline void up(struct semaphore * sem)
{
#if WAITQUEUE_DEBUG
CHECK_MAGIC(sem->__magic);
diff -purNX /kernel_exclude.txt linux_ppc/include/asm-ppc/uaccess.h linux_ppc/include/asm-ppc/uaccess.h
--- linux_ppc/include/asm-ppc/uaccess.h 2002-08-03 00:39:45.000000000 +0000
+++ linux_ppc/include/asm-ppc/uaccess.h 2003-02-03 13:14:50.000000000 +0000
@@ -35,7 +35,7 @@
#define __access_ok(addr,size) (__kernel_ok || __user_ok((addr),(size)))
#define access_ok(type,addr,size) __access_ok((unsigned long)(addr),(size))
-extern inline int verify_area(int type, const void * addr, unsigned long size)
+static inline int verify_area(int type, const void * addr, unsigned long size)
{
return access_ok(type,addr,size) ? 0 : -EFAULT;
}
@@ -232,7 +232,7 @@ do { \
extern int __copy_tofrom_user(void *to, const void *from, unsigned long size);
-extern inline unsigned long
+static inline unsigned long
copy_from_user(void *to, const void *from, unsigned long n)
{
unsigned long over;
@@ -246,7 +246,7 @@ copy_from_user(void *to, const void *fro
return n;
}
-extern inline unsigned long
+static inline unsigned long
copy_to_user(void *to, const void *from, unsigned long n)
{
unsigned long over;
@@ -267,7 +267,7 @@ copy_to_user(void *to, const void *from,
extern unsigned long __clear_user(void *addr, unsigned long size);
-extern inline unsigned long
+static inline unsigned long
clear_user(void *addr, unsigned long size)
{
if (access_ok(VERIFY_WRITE, addr, size))
@@ -281,7 +281,7 @@ clear_user(void *addr, unsigned long siz
extern int __strncpy_from_user(char *dst, const char *src, long count);
-extern inline long
+static inline long
strncpy_from_user(char *dst, const char *src, long count)
{
if (access_ok(VERIFY_READ, src, 1))
diff -purNX linux/kernel_exclude.txt linux_ppc.orig/net/decnet/dn_table.c linux_ppc/net/decnet/dn_table.c
--- linux_ppc.orig/net/decnet/dn_table.c 2001-12-21 17:42:05.000000000 +0000
+++ linux_ppc/net/decnet/dn_table.c 2003-02-06 08:24:01.000000000 +0000
@@ -836,8 +836,7 @@ struct dn_fib_table *dn_fib_get_table(in
return NULL;
if (in_interrupt() && net_ratelimit()) {
- printk(KERN_DEBUG "DECnet: BUG! Attempt to create routing table
-from interrupt\n");
+ printk(KERN_DEBUG "DECnet: BUG! Attempt to create routing table from interrupt\n");
return NULL;
}
if ((t = kmalloc(sizeof(struct dn_fib_table), GFP_KERNEL)) == NULL)
-- USB is for mice, FireWire is for men! - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/