* [PATCH] sbp2: fix check of return value of hpsb_allocate_and_register_addrspace
@ 2006-06-03 0:00 Stefan Richter
2006-06-03 1:35 ` [stable] " Chris Wright
0 siblings, 1 reply; 9+ messages in thread
From: Stefan Richter @ 2006-06-03 0:00 UTC (permalink / raw)
To: Linus Torvalds, stable
Cc: linux1394-devel, linux-kernel, Jody McIntyre, Ben Collins
I added a failure check in patch "sbp2: variable status FIFO address
(fix login timeout)" --- alas for a wrong error value. This is a bug
since Linux 2.6.16. Leads to NULL pointer dereference if the call
failed, and bogus failure handling if call succeeded.
Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de>
---
applies to 2.6.17-rc5
applies to 2.6.16.x after patch ''ohci1394, sbp2: fix "scsi_add_device
failed" with PL-3507 based devices''
Index: linux-2.6.17-rc5/drivers/ieee1394/sbp2.c
===================================================================
--- linux-2.6.17-rc5.orig/drivers/ieee1394/sbp2.c 2006-06-03 01:52:54.000000000 +0200
+++ linux-2.6.17-rc5/drivers/ieee1394/sbp2.c 2006-06-03 01:54:23.000000000 +0200
@@ -845,7 +845,7 @@ static struct scsi_id_instance_data *sbp
&sbp2_highlevel, ud->ne->host, &sbp2_ops,
sizeof(struct sbp2_status_block), sizeof(quadlet_t),
0x010000000000ULL, CSR1212_ALL_SPACE_END);
- if (!scsi_id->status_fifo_addr) {
+ if (scsi_id->status_fifo_addr == ~0ULL) {
SBP2_ERR("failed to allocate status FIFO address range");
goto failed_alloc;
}
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [stable] [PATCH] sbp2: fix check of return value of hpsb_allocate_and_register_addrspace
2006-06-03 0:00 [PATCH] sbp2: fix check of return value of hpsb_allocate_and_register_addrspace Stefan Richter
@ 2006-06-03 1:35 ` Chris Wright
2006-06-03 8:37 ` Stefan Richter
0 siblings, 1 reply; 9+ messages in thread
From: Chris Wright @ 2006-06-03 1:35 UTC (permalink / raw)
To: Stefan Richter
Cc: Linus Torvalds, stable, Jody McIntyre, linux1394-devel,
Ben Collins, linux-kernel
* Stefan Richter (stefanr@s5r6.in-berlin.de) wrote:
> I added a failure check in patch "sbp2: variable status FIFO address
> (fix login timeout)" --- alas for a wrong error value. This is a bug
> since Linux 2.6.16. Leads to NULL pointer dereference if the call
> failed, and bogus failure handling if call succeeded.
>
> Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de>
> ---
> applies to 2.6.17-rc5
> applies to 2.6.16.x after patch ''ohci1394, sbp2: fix "scsi_add_device
> failed" with PL-3507 based devices''
>
> Index: linux-2.6.17-rc5/drivers/ieee1394/sbp2.c
> ===================================================================
> --- linux-2.6.17-rc5.orig/drivers/ieee1394/sbp2.c 2006-06-03 01:52:54.000000000 +0200
> +++ linux-2.6.17-rc5/drivers/ieee1394/sbp2.c 2006-06-03 01:54:23.000000000 +0200
> @@ -845,7 +845,7 @@ static struct scsi_id_instance_data *sbp
> &sbp2_highlevel, ud->ne->host, &sbp2_ops,
> sizeof(struct sbp2_status_block), sizeof(quadlet_t),
> 0x010000000000ULL, CSR1212_ALL_SPACE_END);
> - if (!scsi_id->status_fifo_addr) {
> + if (scsi_id->status_fifo_addr == ~0ULL) {
> SBP2_ERR("failed to allocate status FIFO address range");
> goto failed_alloc;
> }
>
Is that enough?
failed_alloc:
sbp2_remove_device(scsi_id);
sbp2_remove_device(scsi_id)
if (scsi_id->status_fifo_addr)
hpsb_unregister_addrspace()
Suppose status_fifo_addr won't match any as->start.
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [stable] [PATCH] sbp2: fix check of return value of hpsb_allocate_and_register_addrspace
2006-06-03 1:35 ` [stable] " Chris Wright
@ 2006-06-03 8:37 ` Stefan Richter
2006-06-03 9:12 ` Michael Tokarev
0 siblings, 1 reply; 9+ messages in thread
From: Stefan Richter @ 2006-06-03 8:37 UTC (permalink / raw)
To: Chris Wright
Cc: Jody McIntyre, Ben Collins, linux-kernel, Linus Torvalds,
linux1394-devel, stable
Chris Wright wrote:
> * Stefan Richter (stefanr@s5r6.in-berlin.de) wrote:
...
>>+++ linux-2.6.17-rc5/drivers/ieee1394/sbp2.c 2006-06-03 01:54:23.000000000 +0200
>>@@ -845,7 +845,7 @@ static struct scsi_id_instance_data *sbp
>> &sbp2_highlevel, ud->ne->host, &sbp2_ops,
>> sizeof(struct sbp2_status_block), sizeof(quadlet_t),
>> 0x010000000000ULL, CSR1212_ALL_SPACE_END);
>>- if (!scsi_id->status_fifo_addr) {
>>+ if (scsi_id->status_fifo_addr == ~0ULL) {
>> SBP2_ERR("failed to allocate status FIFO address range");
>> goto failed_alloc;
>> }
>>
>
>
> Is that enough?
>
> failed_alloc:
> sbp2_remove_device(scsi_id);
>
> sbp2_remove_device(scsi_id)
> if (scsi_id->status_fifo_addr)
> hpsb_unregister_addrspace()
>
> Suppose status_fifo_addr won't match any as->start.
Thanks, here is another bug. An address space beginning at 0 won't be
de-registered. But this is not a big issue because 1. a configuration
where a FIFO address space starting from 0 is impractical anyway (can
occur if CONFIG_IEEE1394_SBP2_PHYS_DMA=N and physical DMA is unavailable
from the host adapter, which won't work at the moment) and 2. the
address space is a plenty resource (both as a bus address and with
respect to the backing data structures) and 3. would be unregistered if
the sbp2 module was unloaded. This is not critical for -stable.
On the other hand, if hpsb_unregister_addrspace(HL_driver, host,
address) with address == ~0ULL (i.e.
hpsb_allocate_and_register_addrspace failed before), it would do nothing
but burn a few CPU cycles unsuccessfully searching for an address space
starting at ~0ULL. Valid address spaces start at an address lower than
CSR1212_ALL_SPACE_END == 1ULL << 48.
I will post a follow-up patch after breakfast, but it isn't relevant for
-stable.
Thanks,
--
Stefan Richter
-=====-=-==- -==- ---==
http://arcgraph.de/sr/
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [stable] [PATCH] sbp2: fix check of return value of hpsb_allocate_and_register_addrspace
2006-06-03 8:37 ` Stefan Richter
@ 2006-06-03 9:12 ` Michael Tokarev
2006-06-03 9:31 ` Andreas Schwab
0 siblings, 1 reply; 9+ messages in thread
From: Michael Tokarev @ 2006-06-03 9:12 UTC (permalink / raw)
To: Stefan Richter
Cc: Chris Wright, Jody McIntyre, Ben Collins, linux-kernel,
linux1394-devel
Stefan Richter wrote:
> Chris Wright wrote:
>> * Stefan Richter (stefanr@s5r6.in-berlin.de) wrote:
> ....
>>> +++ linux-2.6.17-rc5/drivers/ieee1394/sbp2.c 2006-06-03
>>> 01:54:23.000000000 +0200
>>> @@ -845,7 +845,7 @@ static struct scsi_id_instance_data *sbp
>>> &sbp2_highlevel, ud->ne->host, &sbp2_ops,
>>> sizeof(struct sbp2_status_block), sizeof(quadlet_t),
>>> 0x010000000000ULL, CSR1212_ALL_SPACE_END);
>>> - if (!scsi_id->status_fifo_addr) {
>>> + if (scsi_id->status_fifo_addr == ~0ULL) {
Umm. Can this ~0ULL constant be #define'd to something?
It's way too simple to mis-read it as NULL (or ~NULL whatever).
I mean.. I looked at this change for quite some time, trying to
figure a difference (!x vs x==NULL), and thinking what's '-0'
(~ turned out to be quite similar to - in the font my thunderbird
uses).
/mjt
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [stable] [PATCH] sbp2: fix check of return value of hpsb_allocate_and_register_addrspace
2006-06-03 9:12 ` Michael Tokarev
@ 2006-06-03 9:31 ` Andreas Schwab
2006-06-03 9:43 ` Andrew Morton
0 siblings, 1 reply; 9+ messages in thread
From: Andreas Schwab @ 2006-06-03 9:31 UTC (permalink / raw)
To: Michael Tokarev
Cc: Stefan Richter, Chris Wright, Jody McIntyre, Ben Collins,
linux-kernel, linux1394-devel
Michael Tokarev <mjt@tls.msk.ru> writes:
> Stefan Richter wrote:
>> Chris Wright wrote:
>>> * Stefan Richter (stefanr@s5r6.in-berlin.de) wrote:
>> ....
>>>> +++ linux-2.6.17-rc5/drivers/ieee1394/sbp2.c 2006-06-03
>>>> 01:54:23.000000000 +0200
>>>> @@ -845,7 +845,7 @@ static struct scsi_id_instance_data *sbp
>>>> &sbp2_highlevel, ud->ne->host, &sbp2_ops,
>>>> sizeof(struct sbp2_status_block), sizeof(quadlet_t),
>>>> 0x010000000000ULL, CSR1212_ALL_SPACE_END);
>>>> - if (!scsi_id->status_fifo_addr) {
>>>> + if (scsi_id->status_fifo_addr == ~0ULL) {
>
> Umm. Can this ~0ULL constant be #define'd to something?
> It's way too simple to mis-read it as NULL (or ~NULL whatever).
How about writing it as -1?
Andreas.
--
Andreas Schwab, SuSE Labs, schwab@suse.de
SuSE Linux Products GmbH, Maxfeldstraße 5, 90409 Nürnberg, Germany
PGP key fingerprint = 58CA 54C7 6D53 942B 1756 01D3 44D5 214B 8276 4ED5
"And now for something completely different."
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [stable] [PATCH] sbp2: fix check of return value of hpsb_allocate_and_register_addrspace
2006-06-03 9:31 ` Andreas Schwab
@ 2006-06-03 9:43 ` Andrew Morton
2006-06-03 10:42 ` Stefan Richter
2006-06-03 11:05 ` [PATCH 1/2] sbp2: fix deregistration of status fifo address space Stefan Richter
0 siblings, 2 replies; 9+ messages in thread
From: Andrew Morton @ 2006-06-03 9:43 UTC (permalink / raw)
To: Andreas Schwab
Cc: mjt, stefanr, chrisw, scjody, bcollins, linux-kernel,
linux1394-devel
On Sat, 03 Jun 2006 11:31:27 +0200
Andreas Schwab <schwab@suse.de> wrote:
> Michael Tokarev <mjt@tls.msk.ru> writes:
>
> > Stefan Richter wrote:
> >> Chris Wright wrote:
> >>> * Stefan Richter (stefanr@s5r6.in-berlin.de) wrote:
> >> ....
> >>>> +++ linux-2.6.17-rc5/drivers/ieee1394/sbp2.c 2006-06-03
> >>>> 01:54:23.000000000 +0200
> >>>> @@ -845,7 +845,7 @@ static struct scsi_id_instance_data *sbp
> >>>> &sbp2_highlevel, ud->ne->host, &sbp2_ops,
> >>>> sizeof(struct sbp2_status_block), sizeof(quadlet_t),
> >>>> 0x010000000000ULL, CSR1212_ALL_SPACE_END);
> >>>> - if (!scsi_id->status_fifo_addr) {
> >>>> + if (scsi_id->status_fifo_addr == ~0ULL) {
> >
> > Umm. Can this ~0ULL constant be #define'd to something?
> > It's way too simple to mis-read it as NULL (or ~NULL whatever).
>
> How about writing it as -1?
>
That's preferable.
It doesn't actually cause a problem, but status_fifo_addr is defined as
u64, which is not `unsigned long long'. On powerpc, for example, u64 is
implemented as unsigned long. -1 just works.
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [stable] [PATCH] sbp2: fix check of return value of hpsb_allocate_and_register_addrspace
2006-06-03 9:43 ` Andrew Morton
@ 2006-06-03 10:42 ` Stefan Richter
2006-06-03 11:05 ` [PATCH 1/2] sbp2: fix deregistration of status fifo address space Stefan Richter
1 sibling, 0 replies; 9+ messages in thread
From: Stefan Richter @ 2006-06-03 10:42 UTC (permalink / raw)
To: Andrew Morton
Cc: Andreas Schwab, scjody, bcollins, mjt, linux-kernel, chrisw,
linux1394-devel
Andrew Morton wrote:
> On Sat, 03 Jun 2006 11:31:27 +0200
> Andreas Schwab <schwab@suse.de> wrote:
>>Michael Tokarev <mjt@tls.msk.ru> writes:
>>>>>* Stefan Richter (stefanr@s5r6.in-berlin.de) wrote:
>>>>>>- if (!scsi_id->status_fifo_addr) {
>>>>>>+ if (scsi_id->status_fifo_addr == ~0ULL) {
>>>
>>>Umm. Can this ~0ULL constant be #define'd to something?
>>>It's way too simple to mis-read it as NULL (or ~NULL whatever).
>>
>>How about writing it as -1?
>
> That's preferable.
>
> It doesn't actually cause a problem, but status_fifo_addr is defined as
> u64, which is not `unsigned long long'. On powerpc, for example, u64 is
> implemented as unsigned long. -1 just works.
I have a patch ready which replaces the magic value by a sensibly named
preprocessor constant. Will be posted within the hour. Thanks for the
comments.
--
Stefan Richter
-=====-=-==- -==- ---==
http://arcgraph.de/sr/
^ permalink raw reply [flat|nested] 9+ messages in thread
* [PATCH 1/2] sbp2: fix deregistration of status fifo address space
2006-06-03 9:43 ` Andrew Morton
2006-06-03 10:42 ` Stefan Richter
@ 2006-06-03 11:05 ` Stefan Richter
2006-06-03 11:08 ` [PATCH 2/2] ieee1394: add preprocessor constant for invalid csr address Stefan Richter
1 sibling, 1 reply; 9+ messages in thread
From: Stefan Richter @ 2006-06-03 11:05 UTC (permalink / raw)
To: linux1394-devel
Cc: Andreas Schwab, scjody, bcollins, mjt, linux-kernel, chrisw,
Andrew Morton
The proper designator of an invalid CSR address is ~(u64)0, not (u64)0.
Use the correct value in initialization and deregistration.
Also, scsi_id->sbp2_lun does not need to be initialized twice.
(scsi_id was kzalloc'd.)
Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de>
Index: linux/drivers/ieee1394/sbp2.c
===================================================================
--- linux.orig/drivers/ieee1394/sbp2.c 2006-06-03 02:13:18.000000000 +0200
+++ linux/drivers/ieee1394/sbp2.c 2006-06-03 11:49:18.000000000 +0200
@@ -794,12 +794,12 @@ static struct scsi_id_instance_data *sbp
scsi_id->ud = ud;
scsi_id->speed_code = IEEE1394_SPEED_100;
scsi_id->max_payload_size = sbp2_speedto_max_payload[IEEE1394_SPEED_100];
+ scsi_id->status_fifo_addr = ~0ULL;
atomic_set(&scsi_id->sbp2_login_complete, 0);
INIT_LIST_HEAD(&scsi_id->sbp2_command_orb_inuse);
INIT_LIST_HEAD(&scsi_id->sbp2_command_orb_completed);
INIT_LIST_HEAD(&scsi_id->scsi_list);
spin_lock_init(&scsi_id->sbp2_command_orb_lock);
- scsi_id->sbp2_lun = 0;
ud->device.driver_data = scsi_id;
@@ -1090,7 +1090,7 @@ static void sbp2_remove_device(struct sc
SBP2_DMA_FREE("single query logins data");
}
- if (scsi_id->status_fifo_addr)
+ if (scsi_id->status_fifo_addr != ~0ULL)
hpsb_unregister_addrspace(&sbp2_highlevel, hi->host,
scsi_id->status_fifo_addr);
^ permalink raw reply [flat|nested] 9+ messages in thread
* [PATCH 2/2] ieee1394: add preprocessor constant for invalid csr address
2006-06-03 11:05 ` [PATCH 1/2] sbp2: fix deregistration of status fifo address space Stefan Richter
@ 2006-06-03 11:08 ` Stefan Richter
0 siblings, 0 replies; 9+ messages in thread
From: Stefan Richter @ 2006-06-03 11:08 UTC (permalink / raw)
To: linux1394-devel
Cc: Andreas Schwab, scjody, bcollins, mjt, linux-kernel, chrisw,
Andrew Morton
Replace occurrences of the magic value ~(u64)0 for invalid
CSR address spaces by a named constant for better readability.
Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de>
---
drivers/ieee1394/csr1212.c | 2 +-
drivers/ieee1394/csr1212.h | 1 +
drivers/ieee1394/highlevel.c | 9 +++++----
drivers/ieee1394/eth1394.c | 16 +++++++---------
drivers/ieee1394/eth1394.h | 2 --
drivers/ieee1394/sbp2.c | 8 ++++----
6 files changed, 18 insertions(+), 20 deletions(-)
Index: linux/drivers/ieee1394/csr1212.h
===================================================================
--- linux.orig/drivers/ieee1394/csr1212.h 2006-04-24 22:20:24.000000000 +0200
+++ linux/drivers/ieee1394/csr1212.h 2006-06-03 12:52:32.000000000 +0200
@@ -192,6 +192,7 @@
#define CSR1212_EXTENDED_ROM_SIZE (0x10000 * sizeof(u_int32_t))
+#define CSR1212_INVALID_ADDR_SPACE -1
/* Config ROM image structures */
struct csr1212_bus_info_block_img {
Index: linux/drivers/ieee1394/csr1212.c
===================================================================
--- linux.orig/drivers/ieee1394/csr1212.c 2006-04-24 22:20:24.000000000 +0200
+++ linux/drivers/ieee1394/csr1212.c 2006-06-03 12:12:20.000000000 +0200
@@ -779,7 +779,7 @@ static int csr1212_append_new_cache(stru
romsize = (romsize + (csr->max_rom - 1)) & ~(csr->max_rom - 1);
csr_addr = csr->ops->allocate_addr_range(romsize, csr->max_rom, csr->private);
- if (csr_addr == ~0ULL) {
+ if (csr_addr == CSR1212_INVALID_ADDR_SPACE) {
return CSR1212_ENOMEM;
}
if (csr_addr < CSR1212_REGISTER_SPACE_BASE) {
Index: linux/drivers/ieee1394/highlevel.c
===================================================================
--- linux.orig/drivers/ieee1394/highlevel.c 2006-06-03 02:13:18.000000000 +0200
+++ linux/drivers/ieee1394/highlevel.c 2006-06-03 12:18:23.000000000 +0200
@@ -301,7 +301,7 @@ u64 hpsb_allocate_and_register_addrspace
{
struct hpsb_address_serve *as, *a1, *a2;
struct list_head *entry;
- u64 retval = ~0ULL;
+ u64 retval = CSR1212_INVALID_ADDR_SPACE;
unsigned long flags;
u64 align_mask = ~(alignment - 1);
@@ -315,9 +315,10 @@ u64 hpsb_allocate_and_register_addrspace
/* default range,
* avoids controller's posted write area (see OHCI 1.1 clause 1.5) */
- if (start == ~0ULL && end == ~0ULL) {
+ if (start == CSR1212_INVALID_ADDR_SPACE &&
+ end == CSR1212_INVALID_ADDR_SPACE) {
start = host->middle_addr_space;
- end = CSR1212_ALL_SPACE_END;
+ end = CSR1212_ALL_SPACE_END;
}
if (((start|end) & ~align_mask) || (start >= end) || (end > 0x1000000000000ULL)) {
@@ -361,7 +362,7 @@ u64 hpsb_allocate_and_register_addrspace
write_unlock_irqrestore(&addr_space_lock, flags);
- if (retval == ~0ULL) {
+ if (retval == CSR1212_INVALID_ADDR_SPACE) {
kfree(as);
}
Index: linux/drivers/ieee1394/eth1394.h
===================================================================
--- linux.orig/drivers/ieee1394/eth1394.h 2006-04-24 22:20:24.000000000 +0200
+++ linux/drivers/ieee1394/eth1394.h 2006-06-03 12:14:40.000000000 +0200
@@ -32,8 +32,6 @@
* S3200 (per Table 16-3 of IEEE 1394b-2002). */
#define ETHER1394_REGION_ADDR_LEN 4096
-#define ETHER1394_INVALID_ADDR ~0ULL
-
/* GASP identifier numbers for IPv4 over IEEE 1394 */
#define ETHER1394_GASP_SPECIFIER_ID 0x00005E
#define ETHER1394_GASP_SPECIFIER_ID_HI ((ETHER1394_GASP_SPECIFIER_ID >> 8) & 0xffff)
Index: linux/drivers/ieee1394/eth1394.c
===================================================================
--- linux.orig/drivers/ieee1394/eth1394.c 2006-06-03 02:13:18.000000000 +0200
+++ linux/drivers/ieee1394/eth1394.c 2006-06-03 12:22:44.000000000 +0200
@@ -367,7 +367,7 @@ static int eth1394_probe(struct device *
spin_lock_init(&node_info->pdg.lock);
INIT_LIST_HEAD(&node_info->pdg.list);
node_info->pdg.sz = 0;
- node_info->fifo = ETHER1394_INVALID_ADDR;
+ node_info->fifo = CSR1212_INVALID_ADDR_SPACE;
ud->device.driver_data = node_info;
new_node->ud = ud;
@@ -566,13 +566,11 @@ static void ether1394_add_host (struct h
if (!(host->config_roms & HPSB_CONFIG_ROM_ENTRY_IP1394))
return;
- fifo_addr = hpsb_allocate_and_register_addrspace(ð1394_highlevel,
- host,
- &addr_ops,
- ETHER1394_REGION_ADDR_LEN,
- ETHER1394_REGION_ADDR_LEN,
- -1, -1);
- if (fifo_addr == ~0ULL)
+ fifo_addr = hpsb_allocate_and_register_addrspace(
+ ð1394_highlevel, host, &addr_ops,
+ ETHER1394_REGION_ADDR_LEN, ETHER1394_REGION_ADDR_LEN,
+ CSR1212_INVALID_ADDR_SPACE, CSR1212_INVALID_ADDR_SPACE);
+ if (fifo_addr == CSR1212_INVALID_ADDR_SPACE)
goto out;
/* We should really have our own alloc_hpsbdev() function in
@@ -1686,7 +1684,7 @@ static int ether1394_tx (struct sk_buff
goto fail;
}
node_info = (struct eth1394_node_info*)node->ud->device.driver_data;
- if (node_info->fifo == ETHER1394_INVALID_ADDR) {
+ if (node_info->fifo == CSR1212_INVALID_ADDR_SPACE) {
ret = -EAGAIN;
goto fail;
}
Index: linux/drivers/ieee1394/sbp2.c
===================================================================
--- linux.orig/drivers/ieee1394/sbp2.c 2006-06-03 11:49:18.000000000 +0200
+++ linux/drivers/ieee1394/sbp2.c 2006-06-03 12:27:16.000000000 +0200
@@ -794,7 +794,7 @@ static struct scsi_id_instance_data *sbp
scsi_id->ud = ud;
scsi_id->speed_code = IEEE1394_SPEED_100;
scsi_id->max_payload_size = sbp2_speedto_max_payload[IEEE1394_SPEED_100];
- scsi_id->status_fifo_addr = ~0ULL;
+ scsi_id->status_fifo_addr = CSR1212_INVALID_ADDR_SPACE;
atomic_set(&scsi_id->sbp2_login_complete, 0);
INIT_LIST_HEAD(&scsi_id->sbp2_command_orb_inuse);
INIT_LIST_HEAD(&scsi_id->sbp2_command_orb_completed);
@@ -848,7 +848,7 @@ static struct scsi_id_instance_data *sbp
&sbp2_highlevel, ud->ne->host, &sbp2_ops,
sizeof(struct sbp2_status_block), sizeof(quadlet_t),
ud->ne->host->low_addr_space, CSR1212_ALL_SPACE_END);
- if (scsi_id->status_fifo_addr == ~0ULL) {
+ if (scsi_id->status_fifo_addr == CSR1212_INVALID_ADDR_SPACE) {
SBP2_ERR("failed to allocate status FIFO address range");
goto failed_alloc;
}
@@ -1090,9 +1090,9 @@ static void sbp2_remove_device(struct sc
SBP2_DMA_FREE("single query logins data");
}
- if (scsi_id->status_fifo_addr != ~0ULL)
+ if (scsi_id->status_fifo_addr != CSR1212_INVALID_ADDR_SPACE)
hpsb_unregister_addrspace(&sbp2_highlevel, hi->host,
- scsi_id->status_fifo_addr);
+ scsi_id->status_fifo_addr);
scsi_id->ud->device.driver_data = NULL;
^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2006-06-03 11:10 UTC | newest]
Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2006-06-03 0:00 [PATCH] sbp2: fix check of return value of hpsb_allocate_and_register_addrspace Stefan Richter
2006-06-03 1:35 ` [stable] " Chris Wright
2006-06-03 8:37 ` Stefan Richter
2006-06-03 9:12 ` Michael Tokarev
2006-06-03 9:31 ` Andreas Schwab
2006-06-03 9:43 ` Andrew Morton
2006-06-03 10:42 ` Stefan Richter
2006-06-03 11:05 ` [PATCH 1/2] sbp2: fix deregistration of status fifo address space Stefan Richter
2006-06-03 11:08 ` [PATCH 2/2] ieee1394: add preprocessor constant for invalid csr address Stefan Richter
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.