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