| .. | .. |
|---|
| 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 |
|---|