Re: linux-next: manual merge of the wireless-drivers-next tree with the net-next tree

From: Coelho, Luciano
Date: Mon May 16 2016 - 09:38:06 EST


Hi Kalle,

On Mon, 2016-05-16 at 16:10 +0300, Kalle Valo wrote:
> (Adding Luca and linux-wireless)
>
> Stephen Rothwell <sfr@xxxxxxxxxxxxxxxx> writes:
>
> >
> > Today's linux-next merge of the wireless-drivers-next tree got a
> > conflict in:
> >
> > Â drivers/net/wireless/intel/iwlwifi/mvm/tx.c
> >
> > between commit:
> >
> > Â 909b27f70643 ("Merge
> > git://git.kernel.org/pub/scm/linux/kernel/git/davem/net")
> >
> > from the net-next tree and commit:
> >
> > Â a525d0eab17d ("Merge tag 'iwlwifi-for-kalle-2016-05-04' of
> > git://git.kernel.org/pub/scm/linux/kernel/git/iwlwifi/iwlwifi-
> > fixes")
> >
> > from the wireless-drivers-next tree.
> >
> > I fixed it up (I think that the net-next tree merge lost the
> > changes
> > to iwl_mvm_set_tx_cmd() associated with commit 5c08b0f5026f
> > ("iwlwifi:
> > mvm: don't override the rate with the AMSDU len")) and can carry
> > the
> > fix as necessary.
> Hmm, I'm starting to suspect something is wrong. I did a test merge
> of
> net-next and wireless-drivers-next and got this as a diff after the
> merge:
>
> --- a/drivers/net/wireless/intel/iwlwifi/mvm/tx.c
> +++ b/drivers/net/wireless/intel/iwlwifi/mvm/tx.c
> @@ -211,7 +211,6 @@ void iwl_mvm_set_tx_cmd(struct iwl_mvm *mvm,
> struct sk_buff *skb,
> ÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂstruct iwl_tx_cmd *tx_cmd,
> ÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂstruct ieee80211_tx_info *info, u8 sta_id)
> Â{
> -ÂÂÂÂÂÂÂstruct ieee80211_tx_info *skb_info = IEEE80211_SKB_CB(skb);
> ÂÂÂÂÂÂÂÂstruct ieee80211_hdr *hdr = (void *)skb->data;
> ÂÂÂÂÂÂÂÂ__le16 fc = hdr->frame_control;
> ÂÂÂÂÂÂÂÂu32 tx_flags = le32_to_cpu(tx_cmd->tx_flags);
> @@ -295,7 +294,7 @@ void iwl_mvm_set_tx_cmd(struct iwl_mvm *mvm,
> struct sk_buff *skb,
> ÂÂÂÂÂÂÂÂtx_cmd->tx_flags = cpu_to_le32(tx_flags);
> ÂÂÂÂÂÂÂÂ/* Total # bytes to be transmitted */
> ÂÂÂÂÂÂÂÂtx_cmd->len = cpu_to_le16((u16)skb->len +
> -ÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂ(uintptr_t)skb_info->driver_data[0]);
> +ÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂ(uintptr_t)info->driver_data[0]);
> ÂÂÂÂÂÂÂÂtx_cmd->life_time = cpu_to_le32(TX_CMD_LIFE_TIME_INFINITE);
> ÂÂÂÂÂÂÂÂtx_cmd->sta_id = sta_id;
>
> But commit 5c08b0f5026f ("iwlwifi: mvm: don't override the rate with
> the
> AMSDU len") specifically added skb_info variable to that function:
>
> @@ -105,6 +105,7 @@ void iwl_mvm_set_tx_cmd(struct iwl_mvm *mvm,
> struct sk_buff *skb,
> ÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂstruct iwl_tx_cmd *tx_cmd,
> ÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂstruct ieee80211_tx_info *info, u8 sta_id)
> Â{
> +ÂÂÂÂÂÂÂstruct ieee80211_tx_info *skb_info = IEEE80211_SKB_CB(skb);
> ÂÂÂÂÂÂÂÂstruct ieee80211_hdr *hdr = (void *)skb->data;
> ÂÂÂÂÂÂÂÂ__le16 fc = hdr->frame_control;
> ÂÂÂÂÂÂÂÂu32 tx_flags = le32_to_cpu(tx_cmd->tx_flags);
> @@ -185,7 +186,7 @@ void iwl_mvm_set_tx_cmd(struct iwl_mvm *mvm,
> struct sk_buff *skb,
> ÂÂÂÂÂÂÂÂtx_cmd->tx_flags = cpu_to_le32(tx_flags);
> ÂÂÂÂÂÂÂÂ/* Total # bytes to be transmitted */
> ÂÂÂÂÂÂÂÂtx_cmd->len = cpu_to_le16((u16)skb->len +
> -ÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂ(uintptr_t)info->driver_data[0]);
> +ÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂ(uintptr_t)skb_info->driver_data[0]);
> ÂÂÂÂÂÂÂÂtx_cmd->next_frame_len = 0;
> ÂÂÂÂÂÂÂÂtx_cmd->life_time = cpu_to_le32(TX_CMD_LIFE_TIME_INFINITE);
> ÂÂÂÂÂÂÂÂtx_cmd->sta_id = sta_id;
>
> I wasn't expecting that skb_info variable is removed. Do we now have
> merge damage somewhere? Luca, what do you think?

As we discussed on IRC, it seems to me that there was a merge damage
when Dave merged net.git into net-next.git (as you mostly found out ;).

I'm not sure how to solve that, but I'm sure you and Dave can figure
something out. :) Please let me know if you need any help with it.

--
Cheers,
Luca.