* Re: [PATCH] cciss: use check_signature
@ 2012-04-03 13:45 scameron
2012-04-03 13:56 ` scameron
0 siblings, 1 reply; 3+ messages in thread
From: scameron @ 2012-04-03 13:45 UTC (permalink / raw)
To: akinobu.mita
Cc: linux-kernel, scameron, mike.miller, mike.miller, iss_storagedev
> Use check_signature to find a signature in the mmio address.
>
> Signed-off-by: Akinobu Mita <akinobu.mita@gmail.com>
> Cc: Mike Miller <mike.miller@hp.com>
> Cc: iss_storagedev@hp.com
> ---
> drivers/block/cciss.c | 7 ++-----
> 1 files changed, 2 insertions(+), 5 deletions(-)
>
> diff --git a/drivers/block/cciss.c b/drivers/block/cciss.c
> index bda6d12..e04c63e 100644
> --- a/drivers/block/cciss.c
> +++ b/drivers/block/cciss.c
> @@ -42,8 +42,8 @@
> #include <linux/compat.h>
> #include <linux/mutex.h>
> #include <linux/bitmap.h>
> +#include <linux/io.h>
> #include <asm/uaccess.h>
> -#include <asm/io.h>
>
> #include <linux/dma-mapping.h>
> #include <linux/blkdev.h>
> @@ -4267,10 +4267,7 @@ static void __devinit cciss_find_board_params(ctlr_info_t *h)
>
> static inline bool CISS_signature_present(ctlr_info_t *h)
> {
> - if ((readb(&h->cfgtable->Signature[0]) != 'C') ||
> - (readb(&h->cfgtable->Signature[1]) != 'I') ||
> - (readb(&h->cfgtable->Signature[2]) != 'S') ||
> - (readb(&h->cfgtable->Signature[3]) != 'S')) {
> + if (!check_signature(h->cfgtable->Signature, "CISS", 4)) {
I noticed that in lib/Makefile, there's this:
[scameron@localhost linux-3.4-rc1]$ grep CHECK_SIG lib/Makefile
obj-$(CONFIG_CHECK_SIGNATURE) += check_signature.o
[scameron@localhost linux-3.4-rc1]$
although I don't see an '#if CONFIG_CHECK_SIGNATURE' in include/linux/io.h
Does there need to be a "select CHECK_SIGNATURE" added into
in drivers/block/Kconfig in this area?
config BLK_CPQ_CISS_DA
tristate "Compaq Smart Array 5xxx support"
depends on PCI
help
Or is this dependency handled in some way I'm just not seeing?
-- steve
> dev_warn(&h->pdev->dev, "not a valid CISS config table\n");
> return false;
> }
> --
> 1.7.4.4
^ permalink raw reply [flat|nested] 3+ messages in thread* Re: [PATCH] cciss: use check_signature
2012-04-03 13:45 [PATCH] cciss: use check_signature scameron
@ 2012-04-03 13:56 ` scameron
0 siblings, 0 replies; 3+ messages in thread
From: scameron @ 2012-04-03 13:56 UTC (permalink / raw)
To: akinobu.mita; +Cc: linux-kernel, mikem, mike.miller, iss_storagedev
On Tue, Apr 03, 2012 at 08:45:54AM -0500, scameron@beardog.cce.hp.com wrote:
> > Use check_signature to find a signature in the mmio address.
Also, drivers/scsi/hpsa.c has similar code, the function
hpsa_CISS_signature_present could be replaced by
a call to check_signature, if you feel like making
such a patch. (If not, I can do it.)
-- steve
^ permalink raw reply [flat|nested] 3+ messages in thread
* [PATCH] cciss: cleanup bitops usage
@ 2012-04-03 5:38 Akinobu Mita
2012-04-03 5:38 ` [PATCH] cciss: use check_signature Akinobu Mita
0 siblings, 1 reply; 3+ messages in thread
From: Akinobu Mita @ 2012-04-03 5:38 UTC (permalink / raw)
To: linux-kernel; +Cc: Akinobu Mita, Mike Miller, iss_storagedev
- Remove unnecessary correction of bit and address
- Use BITS_TO_LONGS macro to calculate bitmap size
- Use bitmap_zero()
Signed-off-by: Akinobu Mita <akinobu.mita@gmail.com>
Cc: Mike Miller <mike.miller@hp.com>
Cc: iss_storagedev@hp.com
---
drivers/block/cciss.c | 14 +++++---------
1 files changed, 5 insertions(+), 9 deletions(-)
diff --git a/drivers/block/cciss.c b/drivers/block/cciss.c
index b0f553b..bda6d12 100644
--- a/drivers/block/cciss.c
+++ b/drivers/block/cciss.c
@@ -41,6 +41,7 @@
#include <linux/spinlock.h>
#include <linux/compat.h>
#include <linux/mutex.h>
+#include <linux/bitmap.h>
#include <asm/uaccess.h>
#include <asm/io.h>
@@ -978,8 +979,7 @@ static CommandList_struct *cmd_alloc(ctlr_info_t *h)
i = find_first_zero_bit(h->cmd_pool_bits, h->nr_cmds);
if (i == h->nr_cmds)
return NULL;
- } while (test_and_set_bit(i & (BITS_PER_LONG - 1),
- h->cmd_pool_bits + (i / BITS_PER_LONG)) != 0);
+ } while (test_and_set_bit(i, h->cmd_pool_bits) != 0);
c = h->cmd_pool + i;
memset(c, 0, sizeof(CommandList_struct));
cmd_dma_handle = h->cmd_pool_dhandle + i * sizeof(CommandList_struct);
@@ -1046,8 +1046,7 @@ static void cmd_free(ctlr_info_t *h, CommandList_struct *c)
int i;
i = c - h->cmd_pool;
- clear_bit(i & (BITS_PER_LONG - 1),
- h->cmd_pool_bits + (i / BITS_PER_LONG));
+ clear_bit(i, h->cmd_pool_bits);
h->nr_frees++;
}
@@ -4812,8 +4811,7 @@ static __devinit int cciss_init_reset_devices(struct pci_dev *pdev)
static __devinit int cciss_allocate_cmd_pool(ctlr_info_t *h)
{
- h->cmd_pool_bits = kmalloc(
- DIV_ROUND_UP(h->nr_cmds, BITS_PER_LONG) *
+ h->cmd_pool_bits = kmalloc(BITS_TO_LONGS(h->nr_cmds) *
sizeof(unsigned long), GFP_KERNEL);
h->cmd_pool = pci_alloc_consistent(h->pdev,
h->nr_cmds * sizeof(CommandList_struct),
@@ -5068,9 +5066,7 @@ reinit_after_soft_reset:
pci_set_drvdata(pdev, h);
/* command and error info recs zeroed out before
they are used */
- memset(h->cmd_pool_bits, 0,
- DIV_ROUND_UP(h->nr_cmds, BITS_PER_LONG)
- * sizeof(unsigned long));
+ bitmap_zero(h->cmd_pool_bits, h->nr_cmds);
h->num_luns = 0;
h->highest_lun = -1;
--
1.7.4.4
^ permalink raw reply related [flat|nested] 3+ messages in thread* [PATCH] cciss: use check_signature
2012-04-03 5:38 [PATCH] cciss: cleanup bitops usage Akinobu Mita
@ 2012-04-03 5:38 ` Akinobu Mita
0 siblings, 0 replies; 3+ messages in thread
From: Akinobu Mita @ 2012-04-03 5:38 UTC (permalink / raw)
To: linux-kernel; +Cc: Akinobu Mita, Mike Miller, iss_storagedev
Use check_signature to find a signature in the mmio address.
Signed-off-by: Akinobu Mita <akinobu.mita@gmail.com>
Cc: Mike Miller <mike.miller@hp.com>
Cc: iss_storagedev@hp.com
---
drivers/block/cciss.c | 7 ++-----
1 files changed, 2 insertions(+), 5 deletions(-)
diff --git a/drivers/block/cciss.c b/drivers/block/cciss.c
index bda6d12..e04c63e 100644
--- a/drivers/block/cciss.c
+++ b/drivers/block/cciss.c
@@ -42,8 +42,8 @@
#include <linux/compat.h>
#include <linux/mutex.h>
#include <linux/bitmap.h>
+#include <linux/io.h>
#include <asm/uaccess.h>
-#include <asm/io.h>
#include <linux/dma-mapping.h>
#include <linux/blkdev.h>
@@ -4267,10 +4267,7 @@ static void __devinit cciss_find_board_params(ctlr_info_t *h)
static inline bool CISS_signature_present(ctlr_info_t *h)
{
- if ((readb(&h->cfgtable->Signature[0]) != 'C') ||
- (readb(&h->cfgtable->Signature[1]) != 'I') ||
- (readb(&h->cfgtable->Signature[2]) != 'S') ||
- (readb(&h->cfgtable->Signature[3]) != 'S')) {
+ if (!check_signature(h->cfgtable->Signature, "CISS", 4)) {
dev_warn(&h->pdev->dev, "not a valid CISS config table\n");
return false;
}
--
1.7.4.4
^ permalink raw reply related [flat|nested] 3+ messages in thread
end of thread, other threads:[~2012-04-03 13:56 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-04-03 13:45 [PATCH] cciss: use check_signature scameron
2012-04-03 13:56 ` scameron
-- strict thread matches above, loose matches on Subject: below --
2012-04-03 5:38 [PATCH] cciss: cleanup bitops usage Akinobu Mita
2012-04-03 5:38 ` [PATCH] cciss: use check_signature Akinobu Mita
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox