Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 126632
b: refs/heads/master
c: 7dadbbc
h: refs/heads/master
v: v3
  • Loading branch information
Vijay Kumar authored and Greg Kroah-Hartman committed Jan 6, 2009
1 parent 2fac7db commit 6d5a76c
Show file tree
Hide file tree
Showing 2 changed files with 34 additions and 5 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: ea0a337f34ddd95ca833a7b152ad55a1360b3101
refs/heads/master: 7dadbbcf7f88f44cc46c95e6dcfd9b1ac9e8ae62
37 changes: 33 additions & 4 deletions trunk/drivers/staging/poch/poch.c
Original file line number Diff line number Diff line change
Expand Up @@ -397,11 +397,38 @@ static int poch_channel_alloc_groups(struct channel_info *channel)
return 0;
}

static void channel_latch_attr(struct channel_info *channel)
static int channel_latch_attr(struct channel_info *channel)
{
channel->group_count = atomic_read(&channel->sys_group_count);
channel->group_size = atomic_read(&channel->sys_group_size);
channel->block_size = atomic_read(&channel->sys_block_size);

if (channel->group_count == 0) {
printk(KERN_ERR PFX "invalid group count %lu",
channel->group_count);
return -EINVAL;
}

if (channel->group_size == 0 ||
channel->group_size < channel->block_size) {
printk(KERN_ERR PFX "invalid group size %lu",
channel->group_size);
return -EINVAL;
}

if (channel->block_size == 0 || (channel->block_size % 8) != 0) {
printk(KERN_ERR PFX "invalid block size %lu",
channel->block_size);
return -EINVAL;
}

if (channel->group_size % channel->block_size != 0) {
printk(KERN_ERR PFX
"group size should be multiple of block size");
return -EINVAL;
}

return 0;
}

/*
Expand Down Expand Up @@ -547,7 +574,9 @@ static int poch_channel_init(struct channel_info *channel,

printk(KERN_WARNING "channel_latch_attr\n");

channel_latch_attr(channel);
ret = channel_latch_attr(channel);
if (ret != 0)
goto out;

channel->transfer = 0;

Expand Down Expand Up @@ -1359,12 +1388,12 @@ static void poch_pci_remove(struct pci_dev *pdev)
unsigned int minor = MINOR(poch_dev->cdev.dev);
unsigned int id = minor / poch_dev->nchannels;

/* FIXME: unmap fpga_iomem and bridge_iomem */

poch_class_dev_unregister(poch_dev, id);
cdev_del(&poch_dev->cdev);
idr_remove(&poch_ids, id);
free_irq(pdev->irq, poch_dev);
iounmap(poch_dev->fpga_iomem);
iounmap(poch_dev->bridge_iomem);
uio_unregister_device(uio);
pci_release_regions(pdev);
pci_disable_device(pdev);
Expand Down

0 comments on commit 6d5a76c

Please sign in to comment.