.. | .. |
---|
30 | 30 | * @req_q_full: queue full incidents |
---|
31 | 31 | * @req_q_wq: used to wait for SBAL availability |
---|
32 | 32 | * @adapter: adapter used in conjunction with this qdio structure |
---|
| 33 | + * @max_sbale_per_sbal: qdio limit per sbal |
---|
| 34 | + * @max_sbale_per_req: qdio limit per request |
---|
33 | 35 | */ |
---|
34 | 36 | struct zfcp_qdio { |
---|
35 | 37 | struct qdio_buffer *res_q[QDIO_MAX_BUFFERS_PER_Q]; |
---|
.. | .. |
---|
70 | 72 | /** |
---|
71 | 73 | * zfcp_qdio_sbale_req - return pointer to sbale on req_q for a request |
---|
72 | 74 | * @qdio: pointer to struct zfcp_qdio |
---|
73 | | - * @q_rec: pointer to struct zfcp_qdio_req |
---|
| 75 | + * @q_req: pointer to struct zfcp_qdio_req |
---|
74 | 76 | * Returns: pointer to qdio_buffer_element (sbale) structure |
---|
75 | 77 | */ |
---|
76 | 78 | static inline struct qdio_buffer_element * |
---|
.. | .. |
---|
82 | 84 | /** |
---|
83 | 85 | * zfcp_qdio_sbale_curr - return current sbale on req_q for a request |
---|
84 | 86 | * @qdio: pointer to struct zfcp_qdio |
---|
85 | | - * @fsf_req: pointer to struct zfcp_fsf_req |
---|
| 87 | + * @q_req: pointer to struct zfcp_qdio_req |
---|
86 | 88 | * Returns: pointer to qdio_buffer_element (sbale) structure |
---|
87 | 89 | */ |
---|
88 | 90 | static inline struct qdio_buffer_element * |
---|
.. | .. |
---|
120 | 122 | % QDIO_MAX_BUFFERS_PER_Q; |
---|
121 | 123 | |
---|
122 | 124 | sbale = zfcp_qdio_sbale_req(qdio, q_req); |
---|
123 | | - sbale->addr = (void *) req_id; |
---|
| 125 | + sbale->addr = req_id; |
---|
124 | 126 | sbale->eflags = 0; |
---|
125 | 127 | sbale->sflags = SBAL_SFLAGS0_COMMAND | sbtype; |
---|
126 | 128 | |
---|
127 | 129 | if (unlikely(!data)) |
---|
128 | 130 | return; |
---|
129 | 131 | sbale++; |
---|
130 | | - sbale->addr = data; |
---|
| 132 | + sbale->addr = virt_to_phys(data); |
---|
131 | 133 | sbale->length = len; |
---|
132 | 134 | } |
---|
133 | 135 | |
---|
.. | .. |
---|
135 | 137 | * zfcp_qdio_fill_next - Fill next sbale, only for single sbal requests |
---|
136 | 138 | * @qdio: pointer to struct zfcp_qdio |
---|
137 | 139 | * @q_req: pointer to struct zfcp_queue_req |
---|
| 140 | + * @data: pointer to data |
---|
| 141 | + * @len: length of data |
---|
138 | 142 | * |
---|
139 | 143 | * This is only required for single sbal requests, calling it when |
---|
140 | 144 | * wrapping around to the next sbal is a bug. |
---|
.. | .. |
---|
148 | 152 | BUG_ON(q_req->sbale_curr == qdio->max_sbale_per_sbal - 1); |
---|
149 | 153 | q_req->sbale_curr++; |
---|
150 | 154 | sbale = zfcp_qdio_sbale_curr(qdio, q_req); |
---|
151 | | - sbale->addr = data; |
---|
| 155 | + sbale->addr = virt_to_phys(data); |
---|
152 | 156 | sbale->length = len; |
---|
153 | 157 | } |
---|
154 | 158 | |
---|
.. | .. |
---|
182 | 186 | |
---|
183 | 187 | /** |
---|
184 | 188 | * zfcp_qdio_skip_to_last_sbale - skip to last sbale in sbal |
---|
| 189 | + * @qdio: pointer to struct zfcp_qdio |
---|
185 | 190 | * @q_req: The current zfcp_qdio_req |
---|
186 | 191 | */ |
---|
187 | 192 | static inline |
---|