hc
2024-01-03 2f7c68cb55ecb7331f2381deb497c27155f32faf
kernel/drivers/net/ethernet/intel/ice/ice_main.c
....@@ -1137,6 +1137,7 @@
11371137 static void ice_aq_check_events(struct ice_pf *pf, u16 opcode,
11381138 struct ice_rq_event_info *event)
11391139 {
1140
+ struct ice_rq_event_info *task_ev;
11401141 struct ice_aq_task *task;
11411142 bool found = false;
11421143
....@@ -1145,15 +1146,15 @@
11451146 if (task->state || task->opcode != opcode)
11461147 continue;
11471148
1148
- memcpy(&task->event->desc, &event->desc, sizeof(event->desc));
1149
- task->event->msg_len = event->msg_len;
1149
+ task_ev = task->event;
1150
+ memcpy(&task_ev->desc, &event->desc, sizeof(event->desc));
1151
+ task_ev->msg_len = event->msg_len;
11501152
11511153 /* Only copy the data buffer if a destination was set */
1152
- if (task->event->msg_buf &&
1153
- task->event->buf_len > event->buf_len) {
1154
- memcpy(task->event->msg_buf, event->msg_buf,
1154
+ if (task_ev->msg_buf && task_ev->buf_len >= event->buf_len) {
1155
+ memcpy(task_ev->msg_buf, event->msg_buf,
11551156 event->buf_len);
1156
- task->event->buf_len = event->buf_len;
1157
+ task_ev->buf_len = event->buf_len;
11571158 }
11581159
11591160 task->state = ICE_AQ_TASK_COMPLETE;
....@@ -4853,7 +4854,7 @@
48534854 pr_info("%s\n", ice_driver_string);
48544855 pr_info("%s\n", ice_copyright);
48554856
4856
- ice_wq = alloc_workqueue("%s", WQ_MEM_RECLAIM, 0, KBUILD_MODNAME);
4857
+ ice_wq = alloc_workqueue("%s", 0, 0, KBUILD_MODNAME);
48574858 if (!ice_wq) {
48584859 pr_err("Failed to create workqueue\n");
48594860 return -ENOMEM;
....@@ -5200,15 +5201,12 @@
52005201 {
52015202 int err;
52025203
5203
- if (vsi->netdev) {
5204
+ if (vsi->netdev && vsi->type == ICE_VSI_PF) {
52045205 ice_set_rx_mode(vsi->netdev);
52055206
5206
- if (vsi->type != ICE_VSI_LB) {
5207
- err = ice_vsi_vlan_setup(vsi);
5208
-
5209
- if (err)
5210
- return err;
5211
- }
5207
+ err = ice_vsi_vlan_setup(vsi);
5208
+ if (err)
5209
+ return err;
52125210 }
52135211 ice_vsi_cfg_dcb_rings(vsi);
52145212
....@@ -5267,7 +5265,7 @@
52675265
52685266 if (vsi->port_info &&
52695267 (vsi->port_info->phy.link_info.link_info & ICE_AQ_LINK_UP) &&
5270
- vsi->netdev) {
5268
+ vsi->netdev && vsi->type == ICE_VSI_PF) {
52715269 ice_print_link_msg(vsi, true);
52725270 netif_tx_start_all_queues(vsi->netdev);
52735271 netif_carrier_on(vsi->netdev);
....@@ -5277,7 +5275,9 @@
52775275 * set the baseline so counters are ready when interface is up
52785276 */
52795277 ice_update_eth_stats(vsi);
5280
- ice_service_task_schedule(pf);
5278
+
5279
+ if (vsi->type == ICE_VSI_PF)
5280
+ ice_service_task_schedule(pf);
52815281
52825282 return 0;
52835283 }