Re: + mpt-fusion-dont-oops-if-numphys==0.patch added to -mm tree

2008-02-19 Thread Krzysztof Oledzki



On Tue, 19 Feb 2008, James Bottomley wrote:



On Tue, 2008-02-19 at 15:34 -0800, [EMAIL PROTECTED] wrote:

Subject: mpt fusion: don't oops if NumPhys==0
From: Krzysztof Oledzki [EMAIL PROTECTED]

Don't oops if NumPhys==0, instead return -ENODEV.
This patch fixes http://bugzilla.kernel.org/show_bug.cgi?id=9909

Signed-off-by: Krzysztof Piotr Oledzki [EMAIL PROTECTED]
Cc: FUJITA Tomonori [EMAIL PROTECTED]
Cc: James Bottomley [EMAIL PROTECTED]
Cc: Eric Moore [EMAIL PROTECTED]
Cc: Sathya Prakash [EMAIL PROTECTED]
Signed-off-by: Andrew Morton [EMAIL PROTECTED]
---

 drivers/message/fusion/mptsas.c |5 +
 1 file changed, 5 insertions(+)

diff -puN drivers/message/fusion/mptsas.c~mpt-fusion-dont-oops-if-numphys==0 
drivers/message/fusion/mptsas.c
--- a/drivers/message/fusion/mptsas.c~mpt-fusion-dont-oops-if-numphys==0
+++ a/drivers/message/fusion/mptsas.c
@@ -1701,6 +1701,11 @@ mptsas_sas_expander_pg0(MPT_ADAPTER *ioc
if (error)
goto out_free_consistent;

+   if (!buffer-NumPhys) {
+   error = -ENODEV;
+   goto out_free_consistent;
+   }
+
/* save config data */
port_info-num_phys = buffer-NumPhys;
port_info-phy_info = kcalloc(port_info-num_phys,
_


This is a bit odd ... It looks like a work around for a fusion firmware
problem.


Workaround or not, the driver should not oops by allocating 0 size memory 
block and dereferencing it. It used to work in 2.6.23 but not now.



What's the topology this thing is connected to?


It is a Dell-1950III server with two 400GB SAS disks (RAID1) installed in 
a dwo disk SAS backplane.


Best regrds,

Krzysztof Olędzki

Re: + mpt-fusion-dont-oops-if-numphys==0.patch added to -mm tree

2008-02-19 Thread James Bottomley
On Wed, 2008-02-20 at 04:17 +0100, Maximilian Wilhelm wrote:
 Am Wednesday, den 20 February hub Krzysztof Oledzki folgendes in die Tasten:
  What's the topology this thing is connected to?
 
  It is a Dell-1950III server with two 400GB SAS disks (RAID1) installed in 
  a dwo disk SAS backplane.
 
 Here it's a Dell 1950 with two 73G SAS disks (RAID1) but having four
 SAS disk slots.
 
 If you need further information about the hardware, just let me know.

Is that directly connected or via an internal expander?

James


-
To unsubscribe from this list: send the line unsubscribe linux-scsi in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: + mpt-fusion-dont-oops-if-numphys==0.patch added to -mm tree

2008-02-19 Thread Maximilian Wilhelm
Am Wednesday, den 20 February hub Krzysztof Oledzki folgendes in die Tasten:

Hi Krzysztof, *

Thanks for CC'ing me.

 On Tue, 2008-02-19 at 15:34 -0800, [EMAIL PROTECTED] wrote:
 Subject: mpt fusion: don't oops if NumPhys==0
 From: Krzysztof Oledzki [EMAIL PROTECTED]
 
 Don't oops if NumPhys==0, instead return -ENODEV.
 This patch fixes http://bugzilla.kernel.org/show_bug.cgi?id=9909
 
 Signed-off-by: Krzysztof Piotr Oledzki [EMAIL PROTECTED]
 Cc: FUJITA Tomonori [EMAIL PROTECTED]
 Cc: James Bottomley [EMAIL PROTECTED]
 Cc: Eric Moore [EMAIL PROTECTED]
 Cc: Sathya Prakash [EMAIL PROTECTED]
 Signed-off-by: Andrew Morton [EMAIL PROTECTED]
 ---
 
  drivers/message/fusion/mptsas.c |5 +
  1 file changed, 5 insertions(+)
 
 diff -puN 
 drivers/message/fusion/mptsas.c~mpt-fusion-dont-oops-if-numphys==0 
 drivers/message/fusion/mptsas.c
 --- a/drivers/message/fusion/mptsas.c~mpt-fusion-dont-oops-if-numphys==0
 +++ a/drivers/message/fusion/mptsas.c
 @@ -1701,6 +1701,11 @@ mptsas_sas_expander_pg0(MPT_ADAPTER *ioc
 if (error)
 goto out_free_consistent;
 
 +   if (!buffer-NumPhys) {
 +   error = -ENODEV;
 +   goto out_free_consistent;
 +   }
 +
 /* save config data */
 port_info-num_phys = buffer-NumPhys;
 port_info-phy_info = kcalloc(port_info-num_phys,
 _
 
 This is a bit odd ... It looks like a work around for a fusion firmware
 problem.

 Workaround or not, the driver should not oops by allocating 0 size memory 
 block and dereferencing it. It used to work in 2.6.23 but not now.

ACK.
Nevertheless my server is working absolutely well with this
fix/workaround. No problems at all.

 What's the topology this thing is connected to?

 It is a Dell-1950III server with two 400GB SAS disks (RAID1) installed in 
 a dwo disk SAS backplane.

Here it's a Dell 1950 with two 73G SAS disks (RAID1) but having four
SAS disk slots.

If you need further information about the hardware, just let me know.

Ciao
Max
-- 
Follow the white penguin.
-
To unsubscribe from this list: send the line unsubscribe linux-scsi in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html