* [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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®