Same problem : error: unknown field 'eh_timed_out' specified in initializer

Skip to first unread message

Jonas Israelsson

Jun 27, 2006, 5:46:39 AM6/27/06
to Core-iSCSI
Hello everyone, sorry for starting a new thread but I could not reply
to the other one since it was more that a month old.

Anyway I have the same problem as BrowseMan then trying to compile the
initiatior on my SuSE 10.1 box.

error: unknown field 'eh_timed_out' specified in initializer

Any Ideas ?

Brgds Jonas

Jun 27, 2006, 2:18:10 PM6/27/06
to Core-iSCSI
I've got the same exact problem with openSuse (10.1). I was trying to
find a good place with CVSview of the linux kernel to see what had
changed between the releases (as I suspect we've fallen into the same
hole that the open-iscsi guys have with netlink - the ground underneath
you is changing all the time). I haven't come up with a good
webcvs/cvsview/etc location to the kernel sources yet. If someone has
a link, feel free to post it. It's holding up progress on the
core-iscsi wiki ( and a host of other goodies because
we can't point to what has changed in the kernel so it can be
determined what to do next ...


Mike Mazarick

Nicholas A. Bellinger

Jun 27, 2006, 2:49:03 PM6/27/06

There have been some changes to struct scsi_host_template between 2.6.16
and 2.6.17. The realitively minor breakage is for eh_timed_out() which
is the function that is called to take action when the SCSI CMND's
internal timer fires due to a channel nexus being active, but the
outstanding SCSI CMND in question has not been completed to the SCSI
subsystem. For core-iscsi, eh_strategy_handler() is currently a NOP, so
we can replace this with easily.

I will get 2.6.17 complied today and have a look see..



For those interested, attached is the diff for include/scsi/scsi_host.h:

--- scsi_host.h 2006-03-19 21:53:29.000000000 -0800
+++ / st.h 2006-06-20 02:31:55.000000000 -0700
@@ -140,27 +140,12 @@
* Status: REQUIRED (at least one of them)
- int (* eh_strategy_handler)(struct Scsi_Host *);
int (* eh_abort_handler)(struct scsi_cmnd *);
int (* eh_device_reset_handler)(struct scsi_cmnd *);
int (* eh_bus_reset_handler)(struct scsi_cmnd *);
int (* eh_host_reset_handler)(struct scsi_cmnd *);

- * This is an optional routine to notify the host that the scsi
- * timer just fired. The returns tell the timer routine what to
- * do about this:
- *
- * EH_HANDLED: I fixed the error, please complete the
- * EH_RESET_TIMER: I need more time, reset the timer and
- * begin counting again
- * EH_NOT_HANDLED Begin normal error recovery
- *
- * Status: OPTIONAL
- */
- enum scsi_eh_timer_return (* eh_timed_out)(struct scsi_cmnd *);
- /*
* Before the mid layer attempts to scan for a new device where
* currently exists, it will call this entry in your driver.
* your driver need to allocate any structs or perform any other
@@ -300,7 +285,7 @@
* suspend support
int (*resume)(struct scsi_device *);
- int (*suspend)(struct scsi_device *);
+ int (*suspend)(struct scsi_device *, pm_message_t state);

* Name of proc directory

Nicholas A. Bellinger <>

Nicholas A. Bellinger

Jun 27, 2006, 3:04:17 PM6/27/06
Hello again,

Actually, the structure members that where removed from
include/scsi/scsi_host.h:struct scsi_host_template have been put into
include/scsi/scsi_transport.h:struct scsi_transport_template.

This looks to be a easy fix. I will get this running on and
post some results in a bit. If all goes well lets look at v1.6.2.8


Reply all
Reply to author
0 new messages