.. | .. |
---|
| 1 | +/* SPDX-License-Identifier: GPL-2.0-only */ |
---|
1 | 2 | /* |
---|
2 | 3 | * Copyright (C) 2015 Cavium, Inc. |
---|
3 | | - * |
---|
4 | | - * This program is free software; you can redistribute it and/or modify it |
---|
5 | | - * under the terms of version 2 of the GNU General Public License |
---|
6 | | - * as published by the Free Software Foundation. |
---|
7 | 4 | */ |
---|
8 | 5 | |
---|
9 | 6 | #ifndef NIC_H |
---|
.. | .. |
---|
271 | 268 | }; |
---|
272 | 269 | |
---|
273 | 270 | struct nicvf_work { |
---|
274 | | - struct delayed_work work; |
---|
| 271 | + struct work_struct work; |
---|
275 | 272 | u8 mode; |
---|
276 | 273 | struct xcast_addr_list *mc; |
---|
277 | 274 | }; |
---|
.. | .. |
---|
327 | 324 | struct nicvf_work rx_mode_work; |
---|
328 | 325 | /* spinlock to protect workqueue arguments from concurrent access */ |
---|
329 | 326 | spinlock_t rx_mode_wq_lock; |
---|
330 | | - |
---|
| 327 | + /* workqueue for handling kernel ndo_set_rx_mode() calls */ |
---|
| 328 | + struct workqueue_struct *nicvf_rx_mode_wq; |
---|
| 329 | + /* mutex to protect VF's mailbox contents from concurrent access */ |
---|
| 330 | + struct mutex rx_mode_mtx; |
---|
| 331 | + struct delayed_work link_change_work; |
---|
331 | 332 | /* PTP timestamp */ |
---|
332 | 333 | struct cavium_ptp *ptp_clock; |
---|
333 | 334 | /* Inbound timestamping is on */ |
---|
.. | .. |
---|
575 | 576 | |
---|
576 | 577 | struct xcast { |
---|
577 | 578 | u8 msg; |
---|
578 | | - union { |
---|
579 | | - u8 mode; |
---|
580 | | - u64 mac; |
---|
581 | | - } data; |
---|
| 579 | + u8 mode; |
---|
| 580 | + u64 mac:48; |
---|
582 | 581 | }; |
---|
583 | 582 | |
---|
584 | 583 | /* 128 bit shared memory between PF and each VF */ |
---|