.. | .. |
---|
127 | 127 | volatile __le64 *hw_free; /* HW free counter */ |
---|
128 | 128 | /* list for PIO waiters */ |
---|
129 | 129 | struct list_head piowait ____cacheline_aligned_in_smp; |
---|
| 130 | + seqlock_t waitlock; |
---|
| 131 | + |
---|
130 | 132 | spinlock_t credit_ctrl_lock ____cacheline_aligned_in_smp; |
---|
131 | 133 | u32 credit_intr_count; /* count of credit intr users */ |
---|
132 | 134 | u64 credit_ctrl; /* cache for credit control */ |
---|
.. | .. |
---|
241 | 243 | */ |
---|
242 | 244 | struct pio_map_elem { |
---|
243 | 245 | u32 mask; |
---|
244 | | - struct send_context *ksc[0]; |
---|
| 246 | + struct send_context *ksc[]; |
---|
245 | 247 | }; |
---|
246 | 248 | |
---|
247 | 249 | /* |
---|
.. | .. |
---|
261 | 263 | u32 mask; |
---|
262 | 264 | u8 actual_vls; |
---|
263 | 265 | u8 vls; |
---|
264 | | - struct pio_map_elem *map[0]; |
---|
| 266 | + struct pio_map_elem *map[]; |
---|
265 | 267 | }; |
---|
266 | 268 | |
---|
267 | 269 | int pio_map_init(struct hfi1_devdata *dd, u8 port, u8 num_vls, |
---|
.. | .. |
---|
329 | 331 | void seg_pio_copy_mid(struct pio_buf *pbuf, const void *from, size_t nbytes); |
---|
330 | 332 | void seg_pio_copy_end(struct pio_buf *pbuf); |
---|
331 | 333 | |
---|
| 334 | +void seqfile_dump_sci(struct seq_file *s, u32 i, |
---|
| 335 | + struct send_context_info *sci); |
---|
| 336 | + |
---|
332 | 337 | #endif /* _PIO_H */ |
---|