> + > +static inline bool virtio_net_hash_rss(const struct sk_buff *skb, > + u32 types, const __be32 *key, > + struct virtio_net_hash *hash) Based on the guidelines, this function seems imperative rather than predicate and should return an error-code integer. https://www.kernel.org/doc/html/latest/process/coding-style.html#function-return-values-and-names > +{ > + u16 report; > + struct virtio_net_toeplitz_state toeplitz_state = { > + .key_buffer = be32_to_cpu(*key), > + .key = key > + }; > + struct flow_keys flow; > + > + if (!skb_flow_dissect_flow_keys(skb, &flow, 0)) > + return false; > + > + report = virtio_net_hash_report(types, flow.basic); > + > + switch (report) { > + case VIRTIO_NET_HASH_REPORT_IPv4: > + virtio_net_toeplitz(&toeplitz_state, > + (__be32 *)&flow.addrs.v4addrs, > + sizeof(flow.addrs.v4addrs) / 4); > + break; > + > + case VIRTIO_NET_HASH_REPORT_TCPv4: > + virtio_net_toeplitz(&toeplitz_state, > + (__be32 *)&flow.addrs.v4addrs, > + sizeof(flow.addrs.v4addrs) / 4); > + virtio_net_toeplitz(&toeplitz_state, &flow.ports.ports, > + 1); > + break; > + > + case VIRTIO_NET_HASH_REPORT_UDPv4: > + virtio_net_toeplitz(&toeplitz_state, > + (__be32 *)&flow.addrs.v4addrs, > + sizeof(flow.addrs.v4addrs) / 4); > + virtio_net_toeplitz(&toeplitz_state, &flow.ports.ports, > + 1); > + break; > + > + case VIRTIO_NET_HASH_REPORT_IPv6: > + virtio_net_toeplitz(&toeplitz_state, > + (__be32 *)&flow.addrs.v6addrs, > + sizeof(flow.addrs.v6addrs) / 4); > + break; > + > + case VIRTIO_NET_HASH_REPORT_TCPv6: > + virtio_net_toeplitz(&toeplitz_state, > + (__be32 *)&flow.addrs.v6addrs, > + sizeof(flow.addrs.v6addrs) / 4); > + virtio_net_toeplitz(&toeplitz_state, &flow.ports.ports, > + 1); > + break; > + > + case VIRTIO_NET_HASH_REPORT_UDPv6: > + virtio_net_toeplitz(&toeplitz_state, > + (__be32 *)&flow.addrs.v6addrs, > + sizeof(flow.addrs.v6addrs) / 4); > + virtio_net_toeplitz(&toeplitz_state, &flow.ports.ports, > + 1); > + break; > + > + default: > + return false; > + } > + > + hash->value = toeplitz_state.hash; > + hash->report = report; > + > + return true; > +} > +