File tree Expand file tree Collapse file tree 2 files changed +7
-3
lines changed Expand file tree Collapse file tree 2 files changed +7
-3
lines changed Original file line number Diff line number Diff line change @@ -664,13 +664,17 @@ struct devlink_health_reporter_ops {
664664 * @trap_name: Trap name.
665665 * @trap_group_name: Trap group name.
666666 * @input_dev: Input netdevice.
667+ * @dev_tracker: refcount tracker for @input_dev.
667668 * @fa_cookie: Flow action user cookie.
668669 * @trap_type: Trap type.
669670 */
670671struct devlink_trap_metadata {
671672 const char * trap_name ;
672673 const char * trap_group_name ;
674+
673675 struct net_device * input_dev ;
676+ netdevice_tracker dev_tracker ;
677+
674678 const struct flow_action_cookie * fa_cookie ;
675679 enum devlink_trap_type trap_type ;
676680};
Original file line number Diff line number Diff line change @@ -850,7 +850,7 @@ net_dm_hw_metadata_copy(const struct devlink_trap_metadata *metadata)
850850 }
851851
852852 hw_metadata -> input_dev = metadata -> input_dev ;
853- dev_hold (hw_metadata -> input_dev );
853+ dev_hold_track (hw_metadata -> input_dev , & hw_metadata -> dev_tracker , GFP_ATOMIC );
854854
855855 return hw_metadata ;
856856
@@ -864,9 +864,9 @@ net_dm_hw_metadata_copy(const struct devlink_trap_metadata *metadata)
864864}
865865
866866static void
867- net_dm_hw_metadata_free (const struct devlink_trap_metadata * hw_metadata )
867+ net_dm_hw_metadata_free (struct devlink_trap_metadata * hw_metadata )
868868{
869- dev_put (hw_metadata -> input_dev );
869+ dev_put_track (hw_metadata -> input_dev , & hw_metadata -> dev_tracker );
870870 kfree (hw_metadata -> fa_cookie );
871871 kfree (hw_metadata -> trap_name );
872872 kfree (hw_metadata -> trap_group_name );
You can’t perform that action at this time.
0 commit comments