[SCSI] Fix ibmvscsi client for multiplatform iSeries+pSeries kernel
If you build a multiplatform kernel for iSeries and pSeries, with ibmvscsic support, the resulting client doesn't work on iSeries. This fixes that, using the appropriate low-level operations for the machine detected at runtime. [jejb: fixed up rejections around the srp transport patch] Signed-off-by: David Woodhouse <dwmw2@infradead.org> Acked by: Brian King <brking@linux.vnet.ibm.com> Signed-off-by: Paul Mackerras <paulus@samba.org> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
This commit is contained in:
committed by
James Bottomley
parent
5307b1e8b0
commit
d3849d512f
@@ -98,21 +98,25 @@ struct ibmvscsi_host_data {
|
||||
};
|
||||
|
||||
/* routines for managing a command/response queue */
|
||||
int ibmvscsi_init_crq_queue(struct crq_queue *queue,
|
||||
struct ibmvscsi_host_data *hostdata,
|
||||
int max_requests);
|
||||
void ibmvscsi_release_crq_queue(struct crq_queue *queue,
|
||||
struct ibmvscsi_host_data *hostdata,
|
||||
int max_requests);
|
||||
int ibmvscsi_reset_crq_queue(struct crq_queue *queue,
|
||||
struct ibmvscsi_host_data *hostdata);
|
||||
|
||||
int ibmvscsi_reenable_crq_queue(struct crq_queue *queue,
|
||||
struct ibmvscsi_host_data *hostdata);
|
||||
|
||||
void ibmvscsi_handle_crq(struct viosrp_crq *crq,
|
||||
struct ibmvscsi_host_data *hostdata);
|
||||
int ibmvscsi_send_crq(struct ibmvscsi_host_data *hostdata,
|
||||
u64 word1, u64 word2);
|
||||
|
||||
struct ibmvscsi_ops {
|
||||
int (*init_crq_queue)(struct crq_queue *queue,
|
||||
struct ibmvscsi_host_data *hostdata,
|
||||
int max_requests);
|
||||
void (*release_crq_queue)(struct crq_queue *queue,
|
||||
struct ibmvscsi_host_data *hostdata,
|
||||
int max_requests);
|
||||
int (*reset_crq_queue)(struct crq_queue *queue,
|
||||
struct ibmvscsi_host_data *hostdata);
|
||||
int (*reenable_crq_queue)(struct crq_queue *queue,
|
||||
struct ibmvscsi_host_data *hostdata);
|
||||
int (*send_crq)(struct ibmvscsi_host_data *hostdata,
|
||||
u64 word1, u64 word2);
|
||||
};
|
||||
|
||||
extern struct ibmvscsi_ops iseriesvscsi_ops;
|
||||
extern struct ibmvscsi_ops rpavscsi_ops;
|
||||
|
||||
#endif /* IBMVSCSI_H */
|
||||
|
Reference in New Issue
Block a user