fhash
fhash(f);
fhash(f);
fhash(f);
struct qlcnic_filter_hash fhash;
if (adapter->fhash.fnum)
for (i = 0; i < adapter->fhash.fbucket_size; i++) {
head = &(adapter->fhash.fhead[i]);
adapter->fhash.fnum--;
for (i = 0; i < adapter->fhash.fbucket_size; i++) {
head = &(adapter->fhash.fhead[i]);
adapter->fhash.fnum--;
(adapter->fhash.fbucket_size - 1);
head = &adapter->fhash.fhead[hindex];
adapter->fhash.fnum--;
hindex = hval & (adapter->fhash.fbucket_size - 1);
head = &(adapter->fhash.fhead[hindex]);
if (unlikely(adapter->fhash.fnum >= adapter->fhash.fmax)) {
adapter->fhash.fnum++;
if (adapter->fhash.fnum)
if (adapter->fhash.fmax && adapter->fhash.fhead)
adapter->fhash.fbucket_size = QLCNIC_VF_LB_BUCKET_SIZE;
adapter->fhash.fbucket_size = QLCNIC_LB_BUCKET_SIZE;
adapter->fhash.fbucket_size = QLC_83XX_LB_BUCKET_SIZE;
head = kzalloc_objs(struct hlist_head, adapter->fhash.fbucket_size,
adapter->fhash.fmax = (filter_size / act_pci_func);
adapter->fhash.fhead = head;
act_pci_func, adapter->fhash.fmax);
for (i = 0; i < adapter->fhash.fbucket_size; i++)
INIT_HLIST_HEAD(&adapter->fhash.fhead[i]);
adapter->rx_fhash.fbucket_size = adapter->fhash.fbucket_size;
if (adapter->fhash.fmax)
kfree(adapter->fhash.fhead);
adapter->fhash.fhead = NULL;
adapter->fhash.fmax = 0;
if (adapter->fhash.fnum)
if (adapter->fhash.fnum)
const u32 fhash,
return jhash_3words(lhash, fhash, ports, initval);
u32 lhash, fhash;
fhash = __ipv6_addr_jhash(faddr, tcp_ipv6_hash_secret);
return lport + __inet6_ehashfn(lhash, 0, fhash, fport,
u32 lhash, fhash;
fhash = __ipv6_addr_jhash(faddr, udp_ipv6_hash_secret);
return __inet6_ehashfn(lhash, lport, fhash, fport,
__be32 lhash, fhash;
fhash = (__force __be32)__ipv6_addr_jhash(faddr, rds6_hash_secret);
fhash = faddr->s6_addr32[3];
hash = __inet_ehashfn(lhash, 0, fhash, 0, rds_hash_secret);