From: Kalle Valo <kvalo@codeaurora.org>
To: Julia Lawall <julia.lawall@inria.fr>
Cc: Manikanta Pubbisetty <mpubbise@codeaurora.org>,
kbuild-all@lists.01.org, ath11k@lists.infradead.org
Subject: Re: [ath6kl:pending 21/34] drivers/net/wireless/ath/ath11k/dp_rx.c:3078:5-11: WARNING: Unsigned expression compared with zero: buf_id < 0 (fwd)
Date: Thu, 05 Mar 2020 08:45:24 +0200 [thread overview]
Message-ID: <87y2sf5mgr.fsf@codeaurora.org> (raw)
In-Reply-To: <alpine.DEB.2.21.2003042103370.3192@hadrien> (Julia Lawall's message of "Wed, 4 Mar 2020 21:04:43 +0100 (CET)")
Hi,
moving from ath10k to ath11k list, keeping intact the whole email below.
Can someone look at this, please?
Kalle
Julia Lawall <julia.lawall@inria.fr> writes:
> Hello,
>
> Please check on the use of buf_id on line 3078. Idr_alloc returns an int,
> not an unsigned value.
>
> julia
>
> ---------- Forwarded message ----------
> Date: Wed, 4 Mar 2020 21:19:46 +0800
> From: kbuild test robot <lkp@intel.com>
> To: kbuild@lists.01.org
> Cc: Julia Lawall <julia.lawall@lip6.fr>
> Subject: [ath6kl:pending 21/34]
> drivers/net/wireless/ath/ath11k/dp_rx.c:3078:5-11: WARNING: Unsigned
> expression compared with zero: buf_id < 0
>
> CC: kbuild-all@lists.01.org
> CC: Kalle Valo <kvalo@codeaurora.org>
> CC: ath10k@lists.infradead.org
> TO: Manikanta Pubbisetty <mpubbise@codeaurora.org>
> CC: Kalle Valo <kvalo@codeaurora.org>
>
> tree: https://git.kernel.org/pub/scm/linux/kernel/git/kvalo/ath.git pending
> head: 8098994ce0e3684547d874966af5d4c27c11f855
> commit: 481e5890884c05226b129e9cae2dca58b22c1a4f [21/34] ath11k: handle RX fragments
> :::::: branch date: 8 hours ago
> :::::: commit date: 3 weeks ago
>
> If you fix the issue, kindly add following tag
> Reported-by: kbuild test robot <lkp@intel.com>
> Reported-by: Julia Lawall <julia.lawall@lip6.fr>
>
>>> drivers/net/wireless/ath/ath11k/dp_rx.c:3078:5-11: WARNING:
> Unsigned expression compared with zero: buf_id < 0
>
> #
> https://git.kernel.org/pub/scm/linux/kernel/git/kvalo/ath.git/commit/?id=481e5890884c05226b129e9cae2dca58b22c1a4f
> git remote add ath6kl https://git.kernel.org/pub/scm/linux/kernel/git/kvalo/ath.git
> git remote update ath6kl
> git checkout 481e5890884c05226b129e9cae2dca58b22c1a4f
> vim +3078 drivers/net/wireless/ath/ath11k/dp_rx.c
>
> 481e5890884c05 Manikanta Pubbisetty 2020-02-14 3023
> 481e5890884c05 Manikanta Pubbisetty 2020-02-14 3024 static int
> ath11k_dp_rx_h_defrag_reo_reinject(struct ath11k *ar, struct dp_rx_tid
> *rx_tid,
> 481e5890884c05 Manikanta Pubbisetty 2020-02-14 3025 struct sk_buff
> *defrag_skb)
> 481e5890884c05 Manikanta Pubbisetty 2020-02-14 3026 {
> 481e5890884c05 Manikanta Pubbisetty 2020-02-14 3027 struct ath11k_base *ab = ar->ab;
> 481e5890884c05 Manikanta Pubbisetty 2020-02-14 3028 struct ath11k_pdev_dp *dp = &ar->dp;
> 481e5890884c05 Manikanta Pubbisetty 2020-02-14 3029 struct
> dp_rxdma_ring *rx_refill_ring = &dp->rx_refill_buf_ring;
> 481e5890884c05 Manikanta Pubbisetty 2020-02-14 3030 struct hal_rx_desc
> *rx_desc = (struct hal_rx_desc *)defrag_skb->data;
> 481e5890884c05 Manikanta Pubbisetty 2020-02-14 3031 struct
> hal_reo_entrance_ring *reo_ent_ring;
> 481e5890884c05 Manikanta Pubbisetty 2020-02-14 3032 struct
> hal_reo_dest_ring *reo_dest_ring;
> 481e5890884c05 Manikanta Pubbisetty 2020-02-14 3033 struct
> dp_link_desc_bank *link_desc_banks;
> 481e5890884c05 Manikanta Pubbisetty 2020-02-14 3034 struct hal_rx_msdu_link *msdu_link;
> 481e5890884c05 Manikanta Pubbisetty 2020-02-14 3035 struct hal_rx_msdu_details *msdu0;
> 481e5890884c05 Manikanta Pubbisetty 2020-02-14 3036 struct hal_srng *srng;
> 481e5890884c05 Manikanta Pubbisetty 2020-02-14 3037 dma_addr_t paddr;
> 481e5890884c05 Manikanta Pubbisetty 2020-02-14 3038 u32 desc_bank, msdu_info, mpdu_info;
> 481e5890884c05 Manikanta Pubbisetty 2020-02-14 3039 u32 dst_idx, buf_id, cookie;
> 481e5890884c05 Manikanta Pubbisetty 2020-02-14 3040 u32 *msdu_len_offset;
> 481e5890884c05 Manikanta Pubbisetty 2020-02-14 3041 int ret;
> 481e5890884c05 Manikanta Pubbisetty 2020-02-14 3042
> 481e5890884c05 Manikanta Pubbisetty 2020-02-14 3043 link_desc_banks =
> ab->dp.link_desc_banks;
> 481e5890884c05 Manikanta Pubbisetty 2020-02-14 3044 reo_dest_ring =
> rx_tid->dst_ring_desc;
> 481e5890884c05 Manikanta Pubbisetty 2020-02-14 3045
> 481e5890884c05 Manikanta Pubbisetty 2020-02-14 3046
> ath11k_hal_rx_reo_ent_paddr_get(ab, reo_dest_ring, &paddr,
> &desc_bank);
> 481e5890884c05 Manikanta Pubbisetty 2020-02-14 3047 msdu_link =
> (struct hal_rx_msdu_link *)(link_desc_banks[desc_bank].vaddr +
> 481e5890884c05 Manikanta Pubbisetty 2020-02-14 3048 (paddr -
> link_desc_banks[desc_bank].paddr));
> 481e5890884c05 Manikanta Pubbisetty 2020-02-14 3049 msdu0 = &msdu_link->msdu_link[0];
> 481e5890884c05 Manikanta Pubbisetty 2020-02-14 3050 dst_idx =
> FIELD_GET(RX_MSDU_DESC_INFO0_REO_DEST_IND, msdu0->rx_msdu_info.info0);
> 481e5890884c05 Manikanta Pubbisetty 2020-02-14 3051 memset(msdu0, 0, sizeof(*msdu0));
> 481e5890884c05 Manikanta Pubbisetty 2020-02-14 3052
> 481e5890884c05 Manikanta Pubbisetty 2020-02-14 3053 msdu_info =
> FIELD_PREP(RX_MSDU_DESC_INFO0_FIRST_MSDU_IN_MPDU, 1) |
> 481e5890884c05 Manikanta Pubbisetty 2020-02-14 3054
> FIELD_PREP(RX_MSDU_DESC_INFO0_LAST_MSDU_IN_MPDU, 1) |
> 481e5890884c05 Manikanta Pubbisetty 2020-02-14 3055
> FIELD_PREP(RX_MSDU_DESC_INFO0_MSDU_CONTINUATION, 0) |
> 481e5890884c05 Manikanta Pubbisetty 2020-02-14 3056
> FIELD_PREP(RX_MSDU_DESC_INFO0_MSDU_LENGTH,
> 481e5890884c05 Manikanta Pubbisetty 2020-02-14 3057 defrag_skb->len -
> HAL_RX_DESC_SIZE) |
> 481e5890884c05 Manikanta Pubbisetty 2020-02-14 3058
> FIELD_PREP(RX_MSDU_DESC_INFO0_REO_DEST_IND, dst_idx) |
> 481e5890884c05 Manikanta Pubbisetty 2020-02-14 3059
> FIELD_PREP(RX_MSDU_DESC_INFO0_VALID_SA, 1) |
> 481e5890884c05 Manikanta Pubbisetty 2020-02-14 3060
> FIELD_PREP(RX_MSDU_DESC_INFO0_VALID_DA, 1);
> 481e5890884c05 Manikanta Pubbisetty 2020-02-14 3061
> msdu0->rx_msdu_info.info0 = msdu_info;
> 481e5890884c05 Manikanta Pubbisetty 2020-02-14 3062
> 481e5890884c05 Manikanta Pubbisetty 2020-02-14 3063 /* change msdu len in hal rx desc */
> 481e5890884c05 Manikanta Pubbisetty 2020-02-14 3064 msdu_len_offset =
> (u32 *)&rx_desc->msdu_start;
> 481e5890884c05 Manikanta Pubbisetty 2020-02-14 3065 *msdu_len_offset
> &= ~(RX_MSDU_START_INFO1_MSDU_LENGTH);
> 481e5890884c05 Manikanta Pubbisetty 2020-02-14 3066 *msdu_len_offset
> |= defrag_skb->len - HAL_RX_DESC_SIZE;
> 481e5890884c05 Manikanta Pubbisetty 2020-02-14 3067
> 481e5890884c05 Manikanta Pubbisetty 2020-02-14 3068 paddr =
> dma_map_single(ab->dev, defrag_skb->data,
> 481e5890884c05 Manikanta Pubbisetty 2020-02-14 3069 defrag_skb->len +
> skb_tailroom(defrag_skb),
> 481e5890884c05 Manikanta Pubbisetty 2020-02-14 3070 DMA_FROM_DEVICE);
> 481e5890884c05 Manikanta Pubbisetty 2020-02-14 3071 if
> (dma_mapping_error(ab->dev, paddr))
> 481e5890884c05 Manikanta Pubbisetty 2020-02-14 3072 return -ENOMEM;
> 481e5890884c05 Manikanta Pubbisetty 2020-02-14 3073
> 481e5890884c05 Manikanta Pubbisetty 2020-02-14 3074
> spin_lock_bh(&rx_refill_ring->idr_lock);
> 481e5890884c05 Manikanta Pubbisetty 2020-02-14 3075 buf_id =
> idr_alloc(&rx_refill_ring->bufs_idr, defrag_skb, 0,
> 481e5890884c05 Manikanta Pubbisetty 2020-02-14 3076
> rx_refill_ring->bufs_max * 3, GFP_ATOMIC);
> 481e5890884c05 Manikanta Pubbisetty 2020-02-14 3077
> spin_unlock_bh(&rx_refill_ring->idr_lock);
> 481e5890884c05 Manikanta Pubbisetty 2020-02-14 @3078 if (buf_id < 0) {
> 481e5890884c05 Manikanta Pubbisetty 2020-02-14 3079 ret = -ENOMEM;
> 481e5890884c05 Manikanta Pubbisetty 2020-02-14 3080 goto err_unmap_dma;
> 481e5890884c05 Manikanta Pubbisetty 2020-02-14 3081 }
> 481e5890884c05 Manikanta Pubbisetty 2020-02-14 3082
> 481e5890884c05 Manikanta Pubbisetty 2020-02-14 3083
> ATH11K_SKB_RXCB(defrag_skb)->paddr = paddr;
> 481e5890884c05 Manikanta Pubbisetty 2020-02-14 3084 cookie =
> FIELD_PREP(DP_RXDMA_BUF_COOKIE_PDEV_ID, dp->mac_id) |
> 481e5890884c05 Manikanta Pubbisetty 2020-02-14 3085
> FIELD_PREP(DP_RXDMA_BUF_COOKIE_BUF_ID, buf_id);
> 481e5890884c05 Manikanta Pubbisetty 2020-02-14 3086
> 481e5890884c05 Manikanta Pubbisetty 2020-02-14 3087
> ath11k_hal_rx_buf_addr_info_set(msdu0, paddr, cookie,
> HAL_RX_BUF_RBM_SW3_BM);
> 481e5890884c05 Manikanta Pubbisetty 2020-02-14 3088
> 481e5890884c05 Manikanta Pubbisetty 2020-02-14 3089 /* Fill mpdu
> details into reo entrace ring */
> 481e5890884c05 Manikanta Pubbisetty 2020-02-14 3090 srng =
> &ab->hal.srng_list[ab->dp.reo_reinject_ring.ring_id];
> 481e5890884c05 Manikanta Pubbisetty 2020-02-14 3091
> 481e5890884c05 Manikanta Pubbisetty 2020-02-14 3092 spin_lock_bh(&srng->lock);
> 481e5890884c05 Manikanta Pubbisetty 2020-02-14 3093
> ath11k_hal_srng_access_begin(ab, srng);
> 481e5890884c05 Manikanta Pubbisetty 2020-02-14 3094
> 481e5890884c05 Manikanta Pubbisetty 2020-02-14 3095 reo_ent_ring =
> (struct hal_reo_entrance_ring *)
> 481e5890884c05 Manikanta Pubbisetty 2020-02-14 3096
> ath11k_hal_srng_src_get_next_entry(ab, srng);
> 481e5890884c05 Manikanta Pubbisetty 2020-02-14 3097 if (!reo_ent_ring) {
> 481e5890884c05 Manikanta Pubbisetty 2020-02-14 3098
> ath11k_hal_srng_access_end(ab, srng);
> 481e5890884c05 Manikanta Pubbisetty 2020-02-14 3099 spin_unlock_bh(&srng->lock);
> 481e5890884c05 Manikanta Pubbisetty 2020-02-14 3100 ret = -ENOSPC;
> 481e5890884c05 Manikanta Pubbisetty 2020-02-14 3101 goto err_free_idr;
> 481e5890884c05 Manikanta Pubbisetty 2020-02-14 3102 }
> 481e5890884c05 Manikanta Pubbisetty 2020-02-14 3103
> memset(reo_ent_ring, 0, sizeof(*reo_ent_ring));
> 481e5890884c05 Manikanta Pubbisetty 2020-02-14 3104
> 481e5890884c05 Manikanta Pubbisetty 2020-02-14 3105
> ath11k_hal_rx_reo_ent_paddr_get(ab, reo_dest_ring, &paddr,
> &desc_bank);
> 481e5890884c05 Manikanta Pubbisetty 2020-02-14 3106
> ath11k_hal_rx_buf_addr_info_set(reo_ent_ring, paddr, desc_bank,
> 481e5890884c05 Manikanta Pubbisetty 2020-02-14 3107
> HAL_RX_BUF_RBM_WBM_IDLE_DESC_LIST);
> 481e5890884c05 Manikanta Pubbisetty 2020-02-14 3108
> 481e5890884c05 Manikanta Pubbisetty 2020-02-14 3109 mpdu_info =
> FIELD_PREP(RX_MPDU_DESC_INFO0_MSDU_COUNT, 1) |
> 481e5890884c05 Manikanta Pubbisetty 2020-02-14 3110
> FIELD_PREP(RX_MPDU_DESC_INFO0_SEQ_NUM, rx_tid->cur_sn) |
> 481e5890884c05 Manikanta Pubbisetty 2020-02-14 3111
> FIELD_PREP(RX_MPDU_DESC_INFO0_FRAG_FLAG, 0) |
> 481e5890884c05 Manikanta Pubbisetty 2020-02-14 3112
> FIELD_PREP(RX_MPDU_DESC_INFO0_VALID_SA, 1) |
> 481e5890884c05 Manikanta Pubbisetty 2020-02-14 3113
> FIELD_PREP(RX_MPDU_DESC_INFO0_VALID_DA, 1) |
> 481e5890884c05 Manikanta Pubbisetty 2020-02-14 3114
> FIELD_PREP(RX_MPDU_DESC_INFO0_RAW_MPDU, 1) |
> 481e5890884c05 Manikanta Pubbisetty 2020-02-14 3115
> FIELD_PREP(RX_MPDU_DESC_INFO0_VALID_PN, 1);
> 481e5890884c05 Manikanta Pubbisetty 2020-02-14 3116
> 481e5890884c05 Manikanta Pubbisetty 2020-02-14 3117
> reo_ent_ring->rx_mpdu_info.info0 = mpdu_info;
> 481e5890884c05 Manikanta Pubbisetty 2020-02-14 3118
> reo_ent_ring->rx_mpdu_info.meta_data =
> reo_dest_ring->rx_mpdu_info.meta_data;
> 481e5890884c05 Manikanta Pubbisetty 2020-02-14 3119
> reo_ent_ring->queue_addr_lo = reo_dest_ring->queue_addr_lo;
> 481e5890884c05 Manikanta Pubbisetty 2020-02-14 3120
> reo_ent_ring->info0 =
> FIELD_PREP(HAL_REO_ENTR_RING_INFO0_QUEUE_ADDR_HI,
> 481e5890884c05 Manikanta Pubbisetty 2020-02-14 3121
> FIELD_GET(HAL_REO_DEST_RING_INFO0_QUEUE_ADDR_HI,
> 481e5890884c05 Manikanta Pubbisetty 2020-02-14 3122
> reo_dest_ring->info0)) |
> 481e5890884c05 Manikanta Pubbisetty 2020-02-14 3123
> FIELD_PREP(HAL_REO_ENTR_RING_INFO0_DEST_IND, dst_idx);
> 481e5890884c05 Manikanta Pubbisetty 2020-02-14 3124
> ath11k_hal_srng_access_end(ab, srng);
> 481e5890884c05 Manikanta Pubbisetty 2020-02-14 3125 spin_unlock_bh(&srng->lock);
> 481e5890884c05 Manikanta Pubbisetty 2020-02-14 3126
> 481e5890884c05 Manikanta Pubbisetty 2020-02-14 3127 return 0;
> 481e5890884c05 Manikanta Pubbisetty 2020-02-14 3128
> 481e5890884c05 Manikanta Pubbisetty 2020-02-14 3129 err_free_idr:
> 481e5890884c05 Manikanta Pubbisetty 2020-02-14 3130
> spin_lock_bh(&rx_refill_ring->idr_lock);
> 481e5890884c05 Manikanta Pubbisetty 2020-02-14 3131
> idr_remove(&rx_refill_ring->bufs_idr, buf_id);
> 481e5890884c05 Manikanta Pubbisetty 2020-02-14 3132
> spin_unlock_bh(&rx_refill_ring->idr_lock);
> 481e5890884c05 Manikanta Pubbisetty 2020-02-14 3133 err_unmap_dma:
> 481e5890884c05 Manikanta Pubbisetty 2020-02-14 3134
> dma_unmap_single(ab->dev, paddr, defrag_skb->len +
> skb_tailroom(defrag_skb),
> 481e5890884c05 Manikanta Pubbisetty 2020-02-14 3135 DMA_FROM_DEVICE);
> 481e5890884c05 Manikanta Pubbisetty 2020-02-14 3136 return ret;
> 481e5890884c05 Manikanta Pubbisetty 2020-02-14 3137 }
> 481e5890884c05 Manikanta Pubbisetty 2020-02-14 3138
>
> ---
> 0-DAY CI Kernel Test Service, Intel Corporation
> https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
--
https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches
_______________________________________________
ath11k mailing list
ath11k@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/ath11k
WARNING: multiple messages have this Message-ID (diff)
From: Kalle Valo <kvalo@codeaurora.org>
To: kbuild-all@lists.01.org
Subject: Re: [ath6kl:pending 21/34] drivers/net/wireless/ath/ath11k/dp_rx.c:3078:5-11: WARNING: Unsigned expression compared with zero: buf_id < 0 (fwd)
Date: Thu, 05 Mar 2020 08:45:24 +0200 [thread overview]
Message-ID: <87y2sf5mgr.fsf@codeaurora.org> (raw)
In-Reply-To: <alpine.DEB.2.21.2003042103370.3192@hadrien>
[-- Attachment #1: Type: text/plain, Size: 12770 bytes --]
Hi,
moving from ath10k to ath11k list, keeping intact the whole email below.
Can someone look at this, please?
Kalle
Julia Lawall <julia.lawall@inria.fr> writes:
> Hello,
>
> Please check on the use of buf_id on line 3078. Idr_alloc returns an int,
> not an unsigned value.
>
> julia
>
> ---------- Forwarded message ----------
> Date: Wed, 4 Mar 2020 21:19:46 +0800
> From: kbuild test robot <lkp@intel.com>
> To: kbuild(a)lists.01.org
> Cc: Julia Lawall <julia.lawall@lip6.fr>
> Subject: [ath6kl:pending 21/34]
> drivers/net/wireless/ath/ath11k/dp_rx.c:3078:5-11: WARNING: Unsigned
> expression compared with zero: buf_id < 0
>
> CC: kbuild-all(a)lists.01.org
> CC: Kalle Valo <kvalo@codeaurora.org>
> CC: ath10k(a)lists.infradead.org
> TO: Manikanta Pubbisetty <mpubbise@codeaurora.org>
> CC: Kalle Valo <kvalo@codeaurora.org>
>
> tree: https://git.kernel.org/pub/scm/linux/kernel/git/kvalo/ath.git pending
> head: 8098994ce0e3684547d874966af5d4c27c11f855
> commit: 481e5890884c05226b129e9cae2dca58b22c1a4f [21/34] ath11k: handle RX fragments
> :::::: branch date: 8 hours ago
> :::::: commit date: 3 weeks ago
>
> If you fix the issue, kindly add following tag
> Reported-by: kbuild test robot <lkp@intel.com>
> Reported-by: Julia Lawall <julia.lawall@lip6.fr>
>
>>> drivers/net/wireless/ath/ath11k/dp_rx.c:3078:5-11: WARNING:
> Unsigned expression compared with zero: buf_id < 0
>
> #
> https://git.kernel.org/pub/scm/linux/kernel/git/kvalo/ath.git/commit/?id=481e5890884c05226b129e9cae2dca58b22c1a4f
> git remote add ath6kl https://git.kernel.org/pub/scm/linux/kernel/git/kvalo/ath.git
> git remote update ath6kl
> git checkout 481e5890884c05226b129e9cae2dca58b22c1a4f
> vim +3078 drivers/net/wireless/ath/ath11k/dp_rx.c
>
> 481e5890884c05 Manikanta Pubbisetty 2020-02-14 3023
> 481e5890884c05 Manikanta Pubbisetty 2020-02-14 3024 static int
> ath11k_dp_rx_h_defrag_reo_reinject(struct ath11k *ar, struct dp_rx_tid
> *rx_tid,
> 481e5890884c05 Manikanta Pubbisetty 2020-02-14 3025 struct sk_buff
> *defrag_skb)
> 481e5890884c05 Manikanta Pubbisetty 2020-02-14 3026 {
> 481e5890884c05 Manikanta Pubbisetty 2020-02-14 3027 struct ath11k_base *ab = ar->ab;
> 481e5890884c05 Manikanta Pubbisetty 2020-02-14 3028 struct ath11k_pdev_dp *dp = &ar->dp;
> 481e5890884c05 Manikanta Pubbisetty 2020-02-14 3029 struct
> dp_rxdma_ring *rx_refill_ring = &dp->rx_refill_buf_ring;
> 481e5890884c05 Manikanta Pubbisetty 2020-02-14 3030 struct hal_rx_desc
> *rx_desc = (struct hal_rx_desc *)defrag_skb->data;
> 481e5890884c05 Manikanta Pubbisetty 2020-02-14 3031 struct
> hal_reo_entrance_ring *reo_ent_ring;
> 481e5890884c05 Manikanta Pubbisetty 2020-02-14 3032 struct
> hal_reo_dest_ring *reo_dest_ring;
> 481e5890884c05 Manikanta Pubbisetty 2020-02-14 3033 struct
> dp_link_desc_bank *link_desc_banks;
> 481e5890884c05 Manikanta Pubbisetty 2020-02-14 3034 struct hal_rx_msdu_link *msdu_link;
> 481e5890884c05 Manikanta Pubbisetty 2020-02-14 3035 struct hal_rx_msdu_details *msdu0;
> 481e5890884c05 Manikanta Pubbisetty 2020-02-14 3036 struct hal_srng *srng;
> 481e5890884c05 Manikanta Pubbisetty 2020-02-14 3037 dma_addr_t paddr;
> 481e5890884c05 Manikanta Pubbisetty 2020-02-14 3038 u32 desc_bank, msdu_info, mpdu_info;
> 481e5890884c05 Manikanta Pubbisetty 2020-02-14 3039 u32 dst_idx, buf_id, cookie;
> 481e5890884c05 Manikanta Pubbisetty 2020-02-14 3040 u32 *msdu_len_offset;
> 481e5890884c05 Manikanta Pubbisetty 2020-02-14 3041 int ret;
> 481e5890884c05 Manikanta Pubbisetty 2020-02-14 3042
> 481e5890884c05 Manikanta Pubbisetty 2020-02-14 3043 link_desc_banks =
> ab->dp.link_desc_banks;
> 481e5890884c05 Manikanta Pubbisetty 2020-02-14 3044 reo_dest_ring =
> rx_tid->dst_ring_desc;
> 481e5890884c05 Manikanta Pubbisetty 2020-02-14 3045
> 481e5890884c05 Manikanta Pubbisetty 2020-02-14 3046
> ath11k_hal_rx_reo_ent_paddr_get(ab, reo_dest_ring, &paddr,
> &desc_bank);
> 481e5890884c05 Manikanta Pubbisetty 2020-02-14 3047 msdu_link =
> (struct hal_rx_msdu_link *)(link_desc_banks[desc_bank].vaddr +
> 481e5890884c05 Manikanta Pubbisetty 2020-02-14 3048 (paddr -
> link_desc_banks[desc_bank].paddr));
> 481e5890884c05 Manikanta Pubbisetty 2020-02-14 3049 msdu0 = &msdu_link->msdu_link[0];
> 481e5890884c05 Manikanta Pubbisetty 2020-02-14 3050 dst_idx =
> FIELD_GET(RX_MSDU_DESC_INFO0_REO_DEST_IND, msdu0->rx_msdu_info.info0);
> 481e5890884c05 Manikanta Pubbisetty 2020-02-14 3051 memset(msdu0, 0, sizeof(*msdu0));
> 481e5890884c05 Manikanta Pubbisetty 2020-02-14 3052
> 481e5890884c05 Manikanta Pubbisetty 2020-02-14 3053 msdu_info =
> FIELD_PREP(RX_MSDU_DESC_INFO0_FIRST_MSDU_IN_MPDU, 1) |
> 481e5890884c05 Manikanta Pubbisetty 2020-02-14 3054
> FIELD_PREP(RX_MSDU_DESC_INFO0_LAST_MSDU_IN_MPDU, 1) |
> 481e5890884c05 Manikanta Pubbisetty 2020-02-14 3055
> FIELD_PREP(RX_MSDU_DESC_INFO0_MSDU_CONTINUATION, 0) |
> 481e5890884c05 Manikanta Pubbisetty 2020-02-14 3056
> FIELD_PREP(RX_MSDU_DESC_INFO0_MSDU_LENGTH,
> 481e5890884c05 Manikanta Pubbisetty 2020-02-14 3057 defrag_skb->len -
> HAL_RX_DESC_SIZE) |
> 481e5890884c05 Manikanta Pubbisetty 2020-02-14 3058
> FIELD_PREP(RX_MSDU_DESC_INFO0_REO_DEST_IND, dst_idx) |
> 481e5890884c05 Manikanta Pubbisetty 2020-02-14 3059
> FIELD_PREP(RX_MSDU_DESC_INFO0_VALID_SA, 1) |
> 481e5890884c05 Manikanta Pubbisetty 2020-02-14 3060
> FIELD_PREP(RX_MSDU_DESC_INFO0_VALID_DA, 1);
> 481e5890884c05 Manikanta Pubbisetty 2020-02-14 3061
> msdu0->rx_msdu_info.info0 = msdu_info;
> 481e5890884c05 Manikanta Pubbisetty 2020-02-14 3062
> 481e5890884c05 Manikanta Pubbisetty 2020-02-14 3063 /* change msdu len in hal rx desc */
> 481e5890884c05 Manikanta Pubbisetty 2020-02-14 3064 msdu_len_offset =
> (u32 *)&rx_desc->msdu_start;
> 481e5890884c05 Manikanta Pubbisetty 2020-02-14 3065 *msdu_len_offset
> &= ~(RX_MSDU_START_INFO1_MSDU_LENGTH);
> 481e5890884c05 Manikanta Pubbisetty 2020-02-14 3066 *msdu_len_offset
> |= defrag_skb->len - HAL_RX_DESC_SIZE;
> 481e5890884c05 Manikanta Pubbisetty 2020-02-14 3067
> 481e5890884c05 Manikanta Pubbisetty 2020-02-14 3068 paddr =
> dma_map_single(ab->dev, defrag_skb->data,
> 481e5890884c05 Manikanta Pubbisetty 2020-02-14 3069 defrag_skb->len +
> skb_tailroom(defrag_skb),
> 481e5890884c05 Manikanta Pubbisetty 2020-02-14 3070 DMA_FROM_DEVICE);
> 481e5890884c05 Manikanta Pubbisetty 2020-02-14 3071 if
> (dma_mapping_error(ab->dev, paddr))
> 481e5890884c05 Manikanta Pubbisetty 2020-02-14 3072 return -ENOMEM;
> 481e5890884c05 Manikanta Pubbisetty 2020-02-14 3073
> 481e5890884c05 Manikanta Pubbisetty 2020-02-14 3074
> spin_lock_bh(&rx_refill_ring->idr_lock);
> 481e5890884c05 Manikanta Pubbisetty 2020-02-14 3075 buf_id =
> idr_alloc(&rx_refill_ring->bufs_idr, defrag_skb, 0,
> 481e5890884c05 Manikanta Pubbisetty 2020-02-14 3076
> rx_refill_ring->bufs_max * 3, GFP_ATOMIC);
> 481e5890884c05 Manikanta Pubbisetty 2020-02-14 3077
> spin_unlock_bh(&rx_refill_ring->idr_lock);
> 481e5890884c05 Manikanta Pubbisetty 2020-02-14 @3078 if (buf_id < 0) {
> 481e5890884c05 Manikanta Pubbisetty 2020-02-14 3079 ret = -ENOMEM;
> 481e5890884c05 Manikanta Pubbisetty 2020-02-14 3080 goto err_unmap_dma;
> 481e5890884c05 Manikanta Pubbisetty 2020-02-14 3081 }
> 481e5890884c05 Manikanta Pubbisetty 2020-02-14 3082
> 481e5890884c05 Manikanta Pubbisetty 2020-02-14 3083
> ATH11K_SKB_RXCB(defrag_skb)->paddr = paddr;
> 481e5890884c05 Manikanta Pubbisetty 2020-02-14 3084 cookie =
> FIELD_PREP(DP_RXDMA_BUF_COOKIE_PDEV_ID, dp->mac_id) |
> 481e5890884c05 Manikanta Pubbisetty 2020-02-14 3085
> FIELD_PREP(DP_RXDMA_BUF_COOKIE_BUF_ID, buf_id);
> 481e5890884c05 Manikanta Pubbisetty 2020-02-14 3086
> 481e5890884c05 Manikanta Pubbisetty 2020-02-14 3087
> ath11k_hal_rx_buf_addr_info_set(msdu0, paddr, cookie,
> HAL_RX_BUF_RBM_SW3_BM);
> 481e5890884c05 Manikanta Pubbisetty 2020-02-14 3088
> 481e5890884c05 Manikanta Pubbisetty 2020-02-14 3089 /* Fill mpdu
> details into reo entrace ring */
> 481e5890884c05 Manikanta Pubbisetty 2020-02-14 3090 srng =
> &ab->hal.srng_list[ab->dp.reo_reinject_ring.ring_id];
> 481e5890884c05 Manikanta Pubbisetty 2020-02-14 3091
> 481e5890884c05 Manikanta Pubbisetty 2020-02-14 3092 spin_lock_bh(&srng->lock);
> 481e5890884c05 Manikanta Pubbisetty 2020-02-14 3093
> ath11k_hal_srng_access_begin(ab, srng);
> 481e5890884c05 Manikanta Pubbisetty 2020-02-14 3094
> 481e5890884c05 Manikanta Pubbisetty 2020-02-14 3095 reo_ent_ring =
> (struct hal_reo_entrance_ring *)
> 481e5890884c05 Manikanta Pubbisetty 2020-02-14 3096
> ath11k_hal_srng_src_get_next_entry(ab, srng);
> 481e5890884c05 Manikanta Pubbisetty 2020-02-14 3097 if (!reo_ent_ring) {
> 481e5890884c05 Manikanta Pubbisetty 2020-02-14 3098
> ath11k_hal_srng_access_end(ab, srng);
> 481e5890884c05 Manikanta Pubbisetty 2020-02-14 3099 spin_unlock_bh(&srng->lock);
> 481e5890884c05 Manikanta Pubbisetty 2020-02-14 3100 ret = -ENOSPC;
> 481e5890884c05 Manikanta Pubbisetty 2020-02-14 3101 goto err_free_idr;
> 481e5890884c05 Manikanta Pubbisetty 2020-02-14 3102 }
> 481e5890884c05 Manikanta Pubbisetty 2020-02-14 3103
> memset(reo_ent_ring, 0, sizeof(*reo_ent_ring));
> 481e5890884c05 Manikanta Pubbisetty 2020-02-14 3104
> 481e5890884c05 Manikanta Pubbisetty 2020-02-14 3105
> ath11k_hal_rx_reo_ent_paddr_get(ab, reo_dest_ring, &paddr,
> &desc_bank);
> 481e5890884c05 Manikanta Pubbisetty 2020-02-14 3106
> ath11k_hal_rx_buf_addr_info_set(reo_ent_ring, paddr, desc_bank,
> 481e5890884c05 Manikanta Pubbisetty 2020-02-14 3107
> HAL_RX_BUF_RBM_WBM_IDLE_DESC_LIST);
> 481e5890884c05 Manikanta Pubbisetty 2020-02-14 3108
> 481e5890884c05 Manikanta Pubbisetty 2020-02-14 3109 mpdu_info =
> FIELD_PREP(RX_MPDU_DESC_INFO0_MSDU_COUNT, 1) |
> 481e5890884c05 Manikanta Pubbisetty 2020-02-14 3110
> FIELD_PREP(RX_MPDU_DESC_INFO0_SEQ_NUM, rx_tid->cur_sn) |
> 481e5890884c05 Manikanta Pubbisetty 2020-02-14 3111
> FIELD_PREP(RX_MPDU_DESC_INFO0_FRAG_FLAG, 0) |
> 481e5890884c05 Manikanta Pubbisetty 2020-02-14 3112
> FIELD_PREP(RX_MPDU_DESC_INFO0_VALID_SA, 1) |
> 481e5890884c05 Manikanta Pubbisetty 2020-02-14 3113
> FIELD_PREP(RX_MPDU_DESC_INFO0_VALID_DA, 1) |
> 481e5890884c05 Manikanta Pubbisetty 2020-02-14 3114
> FIELD_PREP(RX_MPDU_DESC_INFO0_RAW_MPDU, 1) |
> 481e5890884c05 Manikanta Pubbisetty 2020-02-14 3115
> FIELD_PREP(RX_MPDU_DESC_INFO0_VALID_PN, 1);
> 481e5890884c05 Manikanta Pubbisetty 2020-02-14 3116
> 481e5890884c05 Manikanta Pubbisetty 2020-02-14 3117
> reo_ent_ring->rx_mpdu_info.info0 = mpdu_info;
> 481e5890884c05 Manikanta Pubbisetty 2020-02-14 3118
> reo_ent_ring->rx_mpdu_info.meta_data =
> reo_dest_ring->rx_mpdu_info.meta_data;
> 481e5890884c05 Manikanta Pubbisetty 2020-02-14 3119
> reo_ent_ring->queue_addr_lo = reo_dest_ring->queue_addr_lo;
> 481e5890884c05 Manikanta Pubbisetty 2020-02-14 3120
> reo_ent_ring->info0 =
> FIELD_PREP(HAL_REO_ENTR_RING_INFO0_QUEUE_ADDR_HI,
> 481e5890884c05 Manikanta Pubbisetty 2020-02-14 3121
> FIELD_GET(HAL_REO_DEST_RING_INFO0_QUEUE_ADDR_HI,
> 481e5890884c05 Manikanta Pubbisetty 2020-02-14 3122
> reo_dest_ring->info0)) |
> 481e5890884c05 Manikanta Pubbisetty 2020-02-14 3123
> FIELD_PREP(HAL_REO_ENTR_RING_INFO0_DEST_IND, dst_idx);
> 481e5890884c05 Manikanta Pubbisetty 2020-02-14 3124
> ath11k_hal_srng_access_end(ab, srng);
> 481e5890884c05 Manikanta Pubbisetty 2020-02-14 3125 spin_unlock_bh(&srng->lock);
> 481e5890884c05 Manikanta Pubbisetty 2020-02-14 3126
> 481e5890884c05 Manikanta Pubbisetty 2020-02-14 3127 return 0;
> 481e5890884c05 Manikanta Pubbisetty 2020-02-14 3128
> 481e5890884c05 Manikanta Pubbisetty 2020-02-14 3129 err_free_idr:
> 481e5890884c05 Manikanta Pubbisetty 2020-02-14 3130
> spin_lock_bh(&rx_refill_ring->idr_lock);
> 481e5890884c05 Manikanta Pubbisetty 2020-02-14 3131
> idr_remove(&rx_refill_ring->bufs_idr, buf_id);
> 481e5890884c05 Manikanta Pubbisetty 2020-02-14 3132
> spin_unlock_bh(&rx_refill_ring->idr_lock);
> 481e5890884c05 Manikanta Pubbisetty 2020-02-14 3133 err_unmap_dma:
> 481e5890884c05 Manikanta Pubbisetty 2020-02-14 3134
> dma_unmap_single(ab->dev, paddr, defrag_skb->len +
> skb_tailroom(defrag_skb),
> 481e5890884c05 Manikanta Pubbisetty 2020-02-14 3135 DMA_FROM_DEVICE);
> 481e5890884c05 Manikanta Pubbisetty 2020-02-14 3136 return ret;
> 481e5890884c05 Manikanta Pubbisetty 2020-02-14 3137 }
> 481e5890884c05 Manikanta Pubbisetty 2020-02-14 3138
>
> ---
> 0-DAY CI Kernel Test Service, Intel Corporation
> https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org
--
https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches
next prev parent reply other threads:[~2020-03-05 6:46 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-03-04 20:04 [ath6kl:pending 21/34] drivers/net/wireless/ath/ath11k/dp_rx.c:3078:5-11: WARNING: Unsigned expression compared with zero: buf_id < 0 (fwd) Julia Lawall
2020-03-04 20:04 ` Julia Lawall
2020-03-05 6:45 ` Kalle Valo [this message]
2020-03-05 6:45 ` Kalle Valo
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87y2sf5mgr.fsf@codeaurora.org \
--to=kvalo@codeaurora.org \
--cc=ath11k@lists.infradead.org \
--cc=julia.lawall@inria.fr \
--cc=kbuild-all@lists.01.org \
--cc=mpubbise@codeaurora.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.