From: Greg KH <greg@kroah.com>
To: linux-kernel@vger.kernel.org
Cc: "vijaykumar@bravegnu.org" <vijaykumar@bravegnu.org>,
Greg Kroah-Hartman <gregkh@suse.de>
Subject: [PATCH 40/49] Staging: poch: minor fixes
Date: Wed, 29 Oct 2008 15:40:07 -0700 [thread overview]
Message-ID: <1225320016-21803-40-git-send-email-greg@kroah.com> (raw)
In-Reply-To: <20081029223832.GC21657@kroah.com>
From: vijaykumar@bravegnu.org <vijaykumar@bravegnu.org>
Unmap PCI bars on remove().
Validate sysfs values before using them.
Signed-off-by: Vijay Kumar <vijaykumar@bravegnu.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
---
drivers/staging/poch/poch.c | 37 +++++++++++++++++++++++++++++++++----
1 files changed, 33 insertions(+), 4 deletions(-)
diff --git a/drivers/staging/poch/poch.c b/drivers/staging/poch/poch.c
index 52fc3d4..afc9863 100644
--- a/drivers/staging/poch/poch.c
+++ b/drivers/staging/poch/poch.c
@@ -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;
}
/*
@@ -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;
@@ -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);
--
1.6.0.2
next prev parent reply other threads:[~2008-10-29 22:58 UTC|newest]
Thread overview: 50+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-10-29 22:38 [GIT PATCH] STAGING patches for 2.6-git Greg KH
2008-10-29 22:39 ` [PATCH 01/49] staging: correct dubious use of !x & y Greg KH
2008-10-29 22:39 ` [PATCH 02/49] Staging: make usbip depend on CONFIG_NET Greg KH
2008-10-29 22:39 ` [PATCH 03/49] Staging: w35und: make wb35_probe() and wb35_disconnect() funtions static Greg KH
2008-10-29 22:39 ` [PATCH 04/49] Staging: w35und: remove unused wb35_open() and wb35_close() functions Greg KH
2008-10-29 22:39 ` [PATCH 05/49] Staging: w35und: use msleep() and udelay() Greg KH
2008-10-29 22:39 ` [PATCH 06/49] Staging: w35und: remove the no-op pa_stall_execution macro Greg KH
2008-10-29 22:39 ` [PATCH 07/49] Staging: w35und: purb typedef removal Greg KH
2008-10-29 22:39 ` [PATCH 08/49] Staging: w35und: reg queue struct " Greg KH
2008-10-29 22:39 ` [PATCH 09/49] Staging: w35und: wb35reg " Greg KH
2008-10-29 22:39 ` [PATCH 10/49] Staging: w35und: padapter " Greg KH
2008-10-29 22:39 ` [PATCH 11/49] Staging: w35und: merge wblinux struct to adapter Greg KH
2008-10-29 22:39 ` [PATCH 12/49] Staging: w35und: wb35_probe() cleanup Greg KH
2008-10-29 22:39 ` [PATCH 13/49] Staging: w35und: remove usb_submit_urb wrapper function Greg KH
2008-10-29 23:09 ` Pavel Machek
2008-10-29 22:39 ` [PATCH 14/49] Staging: w35und: remove usb_alloc_urb " Greg KH
2008-10-29 23:10 ` Pavel Machek
2008-10-29 22:39 ` [PATCH 15/49] w35und: remove dead code from wbusb_f.h Greg KH
2008-10-29 22:39 ` [PATCH 16/49] Staging: w35und: remove true/false boolean macros Greg KH
2008-10-29 22:39 ` [PATCH 17/49] Staging: w35und: OS_MEMORY_ALLOC wrapper removal Greg KH
2008-10-29 22:39 ` [PATCH 18/49] Staging: w35und: usb_put_dev() is missing from wb35_disconnect() Greg KH
2008-10-29 22:39 ` [PATCH 19/49] Staging: w35und: remove macro magic from MLME_GetNextPacket() Greg KH
2008-10-29 22:39 ` [PATCH 20/49] Staging: w35und: plug memory leak in wbsoft_tx() Greg KH
2008-10-29 22:39 ` [PATCH 21/49] Staging: w35und: move supported band initialization out of wb35_probe() Greg KH
2008-10-29 22:39 ` [PATCH 22/49] Staging: wlan-ng: Remove PCI/PLX/PCMCIA files Greg KH
2008-10-29 22:39 ` [PATCH 23/49] Staging: wlan-ng: Update Help text to mention prism3 devices Greg KH
2008-10-29 22:39 ` [PATCH 24/49] Staging: wlan-ng: Delete PCI/PLX/PCMCIA-specific code Greg KH
2008-10-29 22:39 ` [PATCH 25/49] Staging: wlan-ng: Make wlan-ng use WEXT mode by default Greg KH
2008-10-29 22:39 ` [PATCH 26/49] Staging: wlan-ng: Eliminate more <2.6 kernel support Greg KH
2008-10-29 22:39 ` [PATCH 27/49] Staging: wlan-ng: Eliminate all backwards-compatibility for <2.6.13 kernels Greg KH
2008-10-29 22:39 ` [PATCH 28/49] Staging: wlan-ng: Eliminate a boatload of tertiaryAP-only code Greg KH
2008-10-29 22:39 ` [PATCH 29/49] Staging: wlan-ng: Remove AP-only code from MLME functions Greg KH
2008-10-29 22:39 ` [PATCH 30/49] Staging: wlan-ng: Get rid of the MTU tests in the rx conversion path Greg KH
2008-10-29 22:39 ` [PATCH 31/49] Staging: wlan-ng: Eliminate one more rx mtu test Greg KH
2008-10-29 22:39 ` [PATCH 32/49] Staging: wlan-ng: Eliminate local 'version.h' Greg KH
2008-10-29 22:40 ` [PATCH 33/49] Staging: wlan-ng: Eliminate usage of procfs Greg KH
2008-10-29 22:40 ` [PATCH 34/49] Staging: at76_usb: update drivers/staging/at76_usb w/ mac80211 port Greg KH
2008-10-29 22:40 ` [PATCH 35/49] Staging: at76_usb: remove compiler warnings Greg KH
2008-10-29 22:40 ` [PATCH 36/49] Staging: at76_usb: fix up all remaining checkpatch.pl warnings Greg KH
2008-10-29 22:40 ` [PATCH 37/49] Staging: poch: Block size bug fix Greg KH
2008-10-29 22:40 ` [PATCH 38/49] Staging: poch: Update TODO list Greg KH
2008-10-29 22:40 ` [PATCH 39/49] Staging: poch: Correct pages from bytes Greg KH
2008-10-29 22:40 ` Greg KH [this message]
2008-10-29 22:40 ` [PATCH 41/49] Staging: poch: Fix build warnings Greg KH
2008-10-29 22:40 ` [PATCH 42/49] Staging: poch: Rx control register init Greg KH
2008-10-29 22:40 ` [PATCH 43/49] Staging: poch: Fix user space protocol syncing Greg KH
2008-10-29 22:40 ` [PATCH 44/49] Staging: poch: Fine grained locking Greg KH
2008-10-29 22:40 ` [PATCH 45/49] Staging: sxg: remove typedefs Greg KH
2008-10-29 22:40 ` [PATCH 46/49] Staging: sxg: break the build in a cleaner way when !x86 Greg KH
2008-10-29 22:40 ` [PATCH 47/49] Staging: add agnx wireless driver Greg KH
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1225320016-21803-40-git-send-email-greg@kroah.com \
--to=greg@kroah.com \
--cc=gregkh@suse.de \
--cc=linux-kernel@vger.kernel.org \
--cc=vijaykumar@bravegnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.