From: Christoph Hellwig These are defined like the normal ISO C mem* routines although x86 happens to return void by accident. Fix isdn to not assume a return value. Sent to the isdn list, but as usual I didn't get any reply. The patch is from the Debian kernel package and really old. Signed-off-by: Andrew Morton --- 25-akpm/drivers/isdn/sc/message.c | 1 - 25-akpm/drivers/isdn/sc/packet.c | 4 ++-- 25-akpm/drivers/isdn/sc/shmem.c | 33 ++++++++++++--------------------- 3 files changed, 14 insertions(+), 24 deletions(-) diff -puN drivers/isdn/sc/message.c~fix-isdn-to-not-assume-memio-return-values drivers/isdn/sc/message.c --- 25/drivers/isdn/sc/message.c~fix-isdn-to-not-assume-memio-return-values 2004-06-19 14:00:03.925978264 -0700 +++ 25-akpm/drivers/isdn/sc/message.c 2004-06-19 14:00:03.932977200 -0700 @@ -30,7 +30,6 @@ extern unsigned int cinst; */ extern int indicate_status(int,ulong,char*); extern int scm_command(isdn_ctrl *); -extern void *memcpy_fromshmem(int, void *, const void *, size_t); /* diff -puN drivers/isdn/sc/packet.c~fix-isdn-to-not-assume-memio-return-values drivers/isdn/sc/packet.c --- 25/drivers/isdn/sc/packet.c~fix-isdn-to-not-assume-memio-return-values 2004-06-19 14:00:03.927977960 -0700 +++ 25-akpm/drivers/isdn/sc/packet.c 2004-06-19 14:00:03.932977200 -0700 @@ -25,8 +25,8 @@ extern unsigned int cinst; extern int get_card_from_id(int); extern int indicate_status(int, int,ulong, char*); -extern void *memcpy_toshmem(int, void *, const void *, size_t); -extern void *memcpy_fromshmem(int, void *, const void *, size_t); +extern void memcpy_toshmem(int, void *, const void *, size_t); +extern void memcpy_fromshmem(int, void *, const void *, size_t); extern int sendmessage(int, unsigned int, unsigned int, unsigned int, unsigned int, unsigned int, unsigned int, unsigned int *); diff -puN drivers/isdn/sc/shmem.c~fix-isdn-to-not-assume-memio-return-values drivers/isdn/sc/shmem.c --- 25/drivers/isdn/sc/shmem.c~fix-isdn-to-not-assume-memio-return-values 2004-06-19 14:00:03.928977808 -0700 +++ 25-akpm/drivers/isdn/sc/shmem.c 2004-06-19 14:00:03.933977048 -0700 @@ -30,19 +30,18 @@ extern int cinst; /* * */ -void *memcpy_toshmem(int card, void *dest, const void *src, size_t n) +void memcpy_toshmem(int card, void *dest, const void *src, size_t n) { unsigned long flags; - void *ret; unsigned char ch; if(!IS_VALID_CARD(card)) { pr_debug("Invalid param: %d is not a valid card id\n", card); - return NULL; + return; } if(n > SRAM_PAGESIZE) { - return NULL; + return; } /* @@ -57,7 +56,7 @@ void *memcpy_toshmem(int card, void *des outb(((sc_adapter[card]->shmem_magic + ch * SRAM_PAGESIZE) >> 14) | 0x80, sc_adapter[card]->ioport[sc_adapter[card]->shmem_pgport]); - ret = memcpy_toio(sc_adapter[card]->rambase + + memcpy_toio(sc_adapter[card]->rambase + ((unsigned long) dest % 0x4000), src, n); spin_unlock_irqrestore(&sc_adapter[card]->lock, flags); pr_debug("%s: set page to %#x\n",sc_adapter[card]->devicename, @@ -66,26 +65,23 @@ void *memcpy_toshmem(int card, void *des sc_adapter[card]->devicename, n, (unsigned long) src, sc_adapter[card]->rambase + ((unsigned long) dest %0x4000)); - - return ret; } /* * Reverse of above */ -void *memcpy_fromshmem(int card, void *dest, const void *src, size_t n) +void memcpy_fromshmem(int card, void *dest, const void *src, size_t n) { unsigned long flags; - void *ret; unsigned char ch; if(!IS_VALID_CARD(card)) { pr_debug("Invalid param: %d is not a valid card id\n", card); - return NULL; + return; } if(n > SRAM_PAGESIZE) { - return NULL; + return; } /* @@ -102,7 +98,7 @@ void *memcpy_fromshmem(int card, void *d outb(((sc_adapter[card]->shmem_magic + ch * SRAM_PAGESIZE) >> 14) | 0x80, sc_adapter[card]->ioport[sc_adapter[card]->shmem_pgport]); - ret = memcpy_fromio(dest,(void *)(sc_adapter[card]->rambase + + memcpy_fromio(dest,(void *)(sc_adapter[card]->rambase + ((unsigned long) src % 0x4000)), n); spin_unlock_irqrestore(&sc_adapter[card]->lock, flags); pr_debug("%s: set page to %#x\n",sc_adapter[card]->devicename, @@ -110,23 +106,20 @@ void *memcpy_fromshmem(int card, void *d /* pr_debug("%s: copying %d bytes from %#x to %#x\n", sc_adapter[card]->devicename, n, sc_adapter[card]->rambase + ((unsigned long) src %0x4000), (unsigned long) dest); */ - - return ret; } -void *memset_shmem(int card, void *dest, int c, size_t n) +void memset_shmem(int card, void *dest, int c, size_t n) { unsigned long flags; unsigned char ch; - void *ret; if(!IS_VALID_CARD(card)) { pr_debug("Invalid param: %d is not a valid card id\n", card); - return NULL; + return; } if(n > SRAM_PAGESIZE) { - return NULL; + return; } /* @@ -142,11 +135,9 @@ void *memset_shmem(int card, void *dest, outb(((sc_adapter[card]->shmem_magic + ch * SRAM_PAGESIZE) >> 14) | 0x80, sc_adapter[card]->ioport[sc_adapter[card]->shmem_pgport]); - ret = memset_io(sc_adapter[card]->rambase + + memset_io(sc_adapter[card]->rambase + ((unsigned long) dest % 0x4000), c, n); pr_debug("%s: set page to %#x\n",sc_adapter[card]->devicename, ((sc_adapter[card]->shmem_magic + ch * SRAM_PAGESIZE)>>14)|0x80); spin_unlock_irqrestore(&sc_adapter[card]->lock, flags); - - return ret; } _