diff --git a/fpgafs.h b/fpgafs.h index b4a740f..fa81dc3 100644 --- a/fpgafs.h +++ b/fpgafs.h @@ -31,7 +31,7 @@ enum { struct fpga_context { char *load_buf; - unsigned int lldrv; + int lldrv; int bla; }; diff --git a/fpgafs_lldrv_dbg.c b/fpgafs_lldrv_dbg.c index efa7e89..84627b8 100644 --- a/fpgafs_lldrv_dbg.c +++ b/fpgafs_lldrv_dbg.c @@ -29,7 +29,7 @@ static char *mem; static unsigned int stat; -static int do_cmd(u32 cmd, u32 data) +static int do_cmd(uint32_t cmd, uint32_t data) { switch(cmd) { case BLA: @@ -44,7 +44,7 @@ static int do_cmd(u32 cmd, u32 data) static int fpgafs_stat_dbg(struct fpga_context *ctx, unsigned char *buf, int len) { //struct fpga_context *ctx = file->private_data; - u32 data; + uint32_t data; data=stat; if (copy_to_user(buf, &data, sizeof(data))) @@ -55,7 +55,7 @@ static int fpgafs_stat_dbg(struct fpga_context *ctx, unsigned char *buf, int len static int fpgafs_cmd_dbg(struct fpga_context *ctx, const char __user *buf, int len) { - u32 data, __user *udata; + uint32_t data, __user *udata; if (len < 4) return -EINVAL; @@ -73,8 +73,8 @@ static int fpgafs_cmd_dbg(struct fpga_context *ctx, const char __user *buf, int static int fpgafs_send_data_dbg(struct fpga_context *ctx, const char __user *buf, int len) { - u32 cp = 0; - u8 __user *usr; + uint32_t cp = 0; + uint8_t __user *usr; if (mem == NULL) return -EBUSY; @@ -88,7 +88,7 @@ static int fpgafs_send_data_dbg(struct fpga_context *ctx, const char __user *buf return -EFAULT; while (cp < len) { - usr = (u8*)&buf[cp]; + usr = (uint8_t*)&buf[cp]; if (__get_user(mem[cp], usr)) return -EFAULT; cp++; @@ -122,9 +122,8 @@ static int fpgafs_read_load_dbg(struct fpga_context *ctx, unsigned char *buf, in static int fpgafs_write_load_dbg(struct fpga_context *ctx, const char __user *buf, int len) { - u32 cp = 0; - u8 __user *usr; - + uint32_t cp = 0; + uint8_t __user *usr; if (ctx->load_buf != NULL) return -EBUSY; @@ -134,10 +133,10 @@ static int fpgafs_write_load_dbg(struct fpga_context *ctx, const char __user *bu if (!access_ok(VERIFY_READ, buf, len)) return -EFAULT; - ctx->load_buf = kmalloc(len,GFP_USER); + ctx->load_buf = kmalloc(len, GFP_USER); while (cp < len) { - usr = (u8*)&buf[cp]; + usr = (uint8_t*)&buf[cp]; if (__get_user(ctx->load_buf[cp], usr)) return -EFAULT; cp++; @@ -149,7 +148,7 @@ static int fpgafs_write_load_dbg(struct fpga_context *ctx, const char __user *bu static int fpgafs_init_dbg(void) { - mem = kmalloc(MEM_SIZE,GFP_USER); + mem = kmalloc(MEM_SIZE, GFP_USER); return 0; } diff --git a/llmgmt.c b/llmgmt.c index 2b0946c..40495a8 100644 --- a/llmgmt.c +++ b/llmgmt.c @@ -101,7 +101,7 @@ ssize_t fpgafs_read_lldrv(struct file *file, char __user *buf, struct fpga_context *fcur = (struct fpga_context*)file->private_data; size_t l = (len > 5)?5:len; if (fcur->lldrv > -1) { - if (copy_to_user(buf, lldrv[fcur->lldrv]->name, l)) + if (copy_to_user(buf, lldrv[fcur->lldrv]->name, l) < 0) return -EFAULT; } else { return -EBUSY; @@ -130,11 +130,13 @@ ssize_t fpgafs_write_lldrv(struct file *file, const char __user *buf, for(i=0; i < FPGAFS_MAX_LLDRV; i++) if (lldrv[i] != NULL) { for (cp = 0; cp < l; cp++) { + printk("%d: %c %c\n", cp, lldrv[i]->name[cp], tmp[cp]); if (lldrv[i]->name[cp] != tmp[cp]) break; } if (cp == l) { fcur->lldrv = i; + printk("lldrv = %d\n", i); return l; } } @@ -165,10 +167,9 @@ ssize_t fpgafs_write_cmd(struct file *file, const char __user *buf, /* low level un-/register functions */ int fpgafs_register_lldrv(struct fpgafs_lldrv *drv) { - unsigned long flags; int i; - spin_lock_irqsave(&fpgafs_lldrv_lock, flags); + spin_lock(&fpgafs_lldrv_lock); if (lldrv_count == FPGAFS_MAX_LLDRV) return -EBUSY; @@ -186,7 +187,7 @@ int fpgafs_register_lldrv(struct fpgafs_lldrv *drv) lldrv_count++; - spin_unlock_irqrestore(&fpgafs_lldrv_lock, flags); + spin_unlock(&fpgafs_lldrv_lock); return 0; } EXPORT_SYMBOL_GPL(fpgafs_register_lldrv);