[Bug 199887] Fibre login failure on older adapters

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



https://bugzilla.kernel.org/show_bug.cgi?id=199887

Pavel Kankovsky (peak@xxxxxxxxxxxxxxxxxxxxxx) changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |peak@xxxxxxxxxxxxxxxxxxxxxx

--- Comment #4 from Pavel Kankovsky (peak@xxxxxxxxxxxxxxxxxxxxxx) ---
Created attachment 301697
  --> https://bugzilla.kernel.org/attachment.cgi?id=301697&action=edit
kinda fix

I did some experiments with my old QLA2340 (ISP2312, fw 3.03.28) and the most
recent stable kernel, ie. 5.19.4.

"Async-gnlist" failures seem to be survivable and I decided to ignore them for
the time being. In fact, the old driver in 4.9.325 was able to work without
MBC_PORT_NODE_NAME_LIST. There was a function issuing that command, namely
qla2x00_get_node_name_list(), but AFAICT it was never called.

"Async-gpdb" failures are a real problem because they trigger session deletion
(qla24xx_handle_gpdb_event() gets an invalid zero login state).

As far as I can tell, the new asynchronous implementation provides correct
parameters to MBC_GET_PORT_DATABASE (compare qla24xx_async_gpdb() with
qla2x00_get_port_database(), HAS_EXTENDED_IDS is true for ISP2312) but
1. the adapter cannot handle the request when it receives it via the IOCB
interface, and
2. the driver would not be able to handle returned data anyway because their
format is completely different on old non-IS_FWI2_CAPABLE adapters (compare
qla24xx_handle_gpdb_event() with the final part of
qla2x00_get_port_database()).

I tried replacing the new code with a small wrapper around a call to the old
qla2x00_get_port_database() sending the request synchronously via the mbox
interface... and it worked! The driver was able to finish logins and access
available FC targets. See the attached patch.

That said, it is a horrible hack done by someone almost totally ignorant of the
inner workings of the driver. There is absolutely no guarantee. It might crash
your kernel. It might fail to handle some (newly connected?) remote ports. It
might brick your adapter. It might wipe all your disk arrays. It might summon
the Elder Gods. You have been warned.

-- 
You may reply to this email to add a comment.

You are receiving this mail because:
You are watching the assignee of the bug.



[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [SCSI Target Devel]     [Linux SCSI Target Infrastructure]     [Kernel Newbies]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Linux IIO]     [Samba]     [Device Mapper]

  Powered by Linux