Commit a800faec authored by Linus Torvalds's avatar Linus Torvalds

Merge branch 'for-linus' of git://www.jni.nu/cris

* 'for-linus' of git://www.jni.nu/cris:
  CRISv10: remove redundant tests on unsigned
  CRISv32: irq.c - Move end brace outside #endif
  CRISv32: Fix potential null reference in cryptocop driver.
  CRISv32: Add arch optimized strcmp.
  CRIS: assignment/is equal confusion
parents c488eef8 7b994836
...@@ -24,7 +24,7 @@ int cris_request_dma(unsigned int dmanr, const char * device_id, ...@@ -24,7 +24,7 @@ int cris_request_dma(unsigned int dmanr, const char * device_id,
unsigned long int gens; unsigned long int gens;
int fail = -EINVAL; int fail = -EINVAL;
if ((dmanr < 0) || (dmanr >= MAX_DMA_CHANNELS)) { if (dmanr >= MAX_DMA_CHANNELS) {
printk(KERN_CRIT "cris_request_dma: invalid DMA channel %u\n", dmanr); printk(KERN_CRIT "cris_request_dma: invalid DMA channel %u\n", dmanr);
return -EINVAL; return -EINVAL;
} }
...@@ -213,7 +213,7 @@ int cris_request_dma(unsigned int dmanr, const char * device_id, ...@@ -213,7 +213,7 @@ int cris_request_dma(unsigned int dmanr, const char * device_id,
void cris_free_dma(unsigned int dmanr, const char * device_id) void cris_free_dma(unsigned int dmanr, const char * device_id)
{ {
unsigned long flags; unsigned long flags;
if ((dmanr < 0) || (dmanr >= MAX_DMA_CHANNELS)) { if (dmanr >= MAX_DMA_CHANNELS) {
printk(KERN_CRIT "cris_free_dma: invalid DMA channel %u\n", dmanr); printk(KERN_CRIT "cris_free_dma: invalid DMA channel %u\n", dmanr);
return; return;
} }
......
...@@ -1395,7 +1395,7 @@ static int create_md5_pad(int alloc_flag, unsigned long long hashed_length, char ...@@ -1395,7 +1395,7 @@ static int create_md5_pad(int alloc_flag, unsigned long long hashed_length, char
if (padlen < MD5_MIN_PAD_LENGTH) padlen += MD5_BLOCK_LENGTH; if (padlen < MD5_MIN_PAD_LENGTH) padlen += MD5_BLOCK_LENGTH;
p = kmalloc(padlen, alloc_flag); p = kmalloc(padlen, alloc_flag);
if (!pad) return -ENOMEM; if (!p) return -ENOMEM;
*p = 0x80; *p = 0x80;
memset(p+1, 0, padlen - 1); memset(p+1, 0, padlen - 1);
...@@ -1427,7 +1427,7 @@ static int create_sha1_pad(int alloc_flag, unsigned long long hashed_length, cha ...@@ -1427,7 +1427,7 @@ static int create_sha1_pad(int alloc_flag, unsigned long long hashed_length, cha
if (padlen < SHA1_MIN_PAD_LENGTH) padlen += SHA1_BLOCK_LENGTH; if (padlen < SHA1_MIN_PAD_LENGTH) padlen += SHA1_BLOCK_LENGTH;
p = kmalloc(padlen, alloc_flag); p = kmalloc(padlen, alloc_flag);
if (!pad) return -ENOMEM; if (!p) return -ENOMEM;
*p = 0x80; *p = 0x80;
memset(p+1, 0, padlen - 1); memset(p+1, 0, padlen - 1);
......
...@@ -430,8 +430,8 @@ crisv32_do_multiple(struct pt_regs* regs) ...@@ -430,8 +430,8 @@ crisv32_do_multiple(struct pt_regs* regs)
masked[i] &= ~TIMER_MASK; masked[i] &= ~TIMER_MASK;
do_IRQ(TIMER0_INTR_VECT, regs); do_IRQ(TIMER0_INTR_VECT, regs);
} }
}
#endif #endif
}
#ifdef IGNORE_MASK #ifdef IGNORE_MASK
/* Remove IRQs that can't be handled as multiple. */ /* Remove IRQs that can't be handled as multiple. */
......
...@@ -3,5 +3,5 @@ ...@@ -3,5 +3,5 @@
# #
lib-y = checksum.o checksumcopy.o string.o usercopy.o memset.o \ lib-y = checksum.o checksumcopy.o string.o usercopy.o memset.o \
csumcpfruser.o spinlock.o delay.o csumcpfruser.o spinlock.o delay.o strcmp.o
; strcmp.S -- CRISv32 version.
; Copyright (C) 2008 AXIS Communications AB
; Written by Edgar E. Iglesias
;
; This source code is licensed under the GNU General Public License,
; Version 2. See the file COPYING for more details.
.global strcmp
.type strcmp,@function
strcmp:
1:
move.b [$r10+], $r12
seq $r13
sub.b [$r11+], $r12
or.b $r12, $r13
beq 1b
nop
ret
movs.b $r12, $r10
.size strcmp, . - strcmp
...@@ -78,7 +78,7 @@ static inline void __raw_write_lock(raw_rwlock_t *rw) ...@@ -78,7 +78,7 @@ static inline void __raw_write_lock(raw_rwlock_t *rw)
{ {
__raw_spin_lock(&rw->slock); __raw_spin_lock(&rw->slock);
while (rw->lock != RW_LOCK_BIAS); while (rw->lock != RW_LOCK_BIAS);
rw->lock == 0; rw->lock = 0;
__raw_spin_unlock(&rw->slock); __raw_spin_unlock(&rw->slock);
} }
...@@ -93,7 +93,7 @@ static inline void __raw_write_unlock(raw_rwlock_t *rw) ...@@ -93,7 +93,7 @@ static inline void __raw_write_unlock(raw_rwlock_t *rw)
{ {
__raw_spin_lock(&rw->slock); __raw_spin_lock(&rw->slock);
while (rw->lock != RW_LOCK_BIAS); while (rw->lock != RW_LOCK_BIAS);
rw->lock == RW_LOCK_BIAS; rw->lock = RW_LOCK_BIAS;
__raw_spin_unlock(&rw->slock); __raw_spin_unlock(&rw->slock);
} }
...@@ -114,7 +114,7 @@ static inline int __raw_write_trylock(raw_rwlock_t *rw) ...@@ -114,7 +114,7 @@ static inline int __raw_write_trylock(raw_rwlock_t *rw)
int ret = 0; int ret = 0;
__raw_spin_lock(&rw->slock); __raw_spin_lock(&rw->slock);
if (rw->lock == RW_LOCK_BIAS) { if (rw->lock == RW_LOCK_BIAS) {
rw->lock == 0; rw->lock = 0;
ret = 1; ret = 1;
} }
__raw_spin_unlock(&rw->slock); __raw_spin_unlock(&rw->slock);
......
...@@ -11,4 +11,10 @@ extern void *memcpy(void *, const void *, size_t); ...@@ -11,4 +11,10 @@ extern void *memcpy(void *, const void *, size_t);
#define __HAVE_ARCH_MEMSET #define __HAVE_ARCH_MEMSET
extern void *memset(void *, int, size_t); extern void *memset(void *, int, size_t);
#ifdef CONFIG_ETRAX_ARCH_V32
/* For v32 we provide strcmp. */
#define __HAVE_ARCH_STRCMP
extern int strcmp(const char *s1, const char *s2);
#endif
#endif #endif
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment