I must say I dont understand dev_pick_tx() anymore.
It seems to ignore skb->queue_mapping (unless device provides its own
ndo_select_queue() and this functions is aware of skb->queue_mapping, as
correctly done in ixgbe)
So commit fff3269907897ee (tcp: reflect SYN queue_mapping into SYNACK
packets) works on ixgbe, but probably not on other multiqueue devices.
This sounds like a regression to me.
Maybe the fundamental issue is that the queue mappings only allow for
one level of multi queue device. It might be better if bonding didn't
have one and dev_pick_tx did the right thin (use xps on bonding
maybe).
Tom