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