Browse Source

dfc: remove unsupported modes

Removes DFC modes that no longer supported.

Change-Id: I86c5d549ca02b0313dc89ed9e12d770323e55a9e
Acked-by: Weiyi Chen <[email protected]>
Signed-off-by: Subash Abhinov Kasiviswanathan <[email protected]>
Subash Abhinov Kasiviswanathan 5 năm trước cách đây
mục cha
commit
fa1352fa7a
4 tập tin đã thay đổi với 16 bổ sung40 xóa
  1. 6 2
      core/dfc_qmap.c
  2. 4 10
      core/dfc_qmi.c
  3. 6 26
      core/qmi_rmnet.c
  4. 0 2
      core/qmi_rmnet_i.h

+ 6 - 2
core/dfc_qmap.c

@@ -486,6 +486,11 @@ int dfc_qmap_client_init(void *port, int index, struct svc_info *psvc,
 	if (!port || !qmi)
 		return -EINVAL;
 
+	/* Prevent double init */
+	data = rcu_dereference(qmap_dfc_data);
+	if (data)
+		return -EINVAL;
+
 	data = kzalloc(sizeof(struct dfc_qmi_data), GFP_KERNEL);
 	if (!data)
 		return -ENOMEM;
@@ -499,8 +504,7 @@ int dfc_qmap_client_init(void *port, int index, struct svc_info *psvc,
 
 	atomic_set(&qmap_txid, 0);
 
-	if (!rmnet_ctl)
-		rmnet_ctl = symbol_get(rmnet_ctl_if);
+	rmnet_ctl = symbol_get(rmnet_ctl_if);
 	if (!rmnet_ctl) {
 		pr_err("rmnet_ctl module not loaded\n");
 		goto out;

+ 4 - 10
core/dfc_qmi.c

@@ -1479,16 +1479,10 @@ void dfc_qmi_burst_check(struct net_device *dev, struct qos_info *qos,
 
 	spin_lock_bh(&qos->qos_lock);
 
-	if (dfc_mode == DFC_MODE_MQ_NUM) {
-		/* Mark is mq num */
-		if (likely(mark < MAX_MQ_NUM))
-			bearer = qos->mq[mark].bearer;
-	} else {
-		/* Mark is flow_id */
-		itm = qmi_rmnet_get_flow_map(qos, mark, ip_type);
-		if (likely(itm))
-			bearer = itm->bearer;
-	}
+	/* Mark is flow_id */
+	itm = qmi_rmnet_get_flow_map(qos, mark, ip_type);
+	if (likely(itm))
+		bearer = itm->bearer;
 
 	if (unlikely(!bearer))
 		goto out;

+ 6 - 26
core/qmi_rmnet.c

@@ -39,14 +39,12 @@
 #define FLAG_TO_MODE(f) ((f) & FLAG_DFC_MASK)
 
 #define DFC_SUPPORTED_MODE(m) \
-	((m) == DFC_MODE_FLOW_ID || (m) == DFC_MODE_MQ_NUM || \
-	 (m) == DFC_MODE_SA)
+	((m) == DFC_MODE_SA)
 
 #define FLAG_TO_QMAP(f) ((f) & FLAG_QMAP_MASK)
 
 int dfc_mode;
 int dfc_qmap;
-#define IS_ANCILLARY(type) ((type) != AF_INET && (type) != AF_INET6)
 
 unsigned int rmnet_wq_frequency __read_mostly = 1000;
 
@@ -312,10 +310,7 @@ static void __qmi_rmnet_update_mq(struct net_device *dev,
 			bearer->mq_idx = itm->mq_idx;
 			bearer->ack_mq_idx = itm->mq_idx + ACK_MQ_OFFSET;
 		} else {
-			if (IS_ANCILLARY(itm->ip_type))
-				bearer->ack_mq_idx = itm->mq_idx;
-			else
-				bearer->mq_idx = itm->mq_idx;
+			bearer->mq_idx = itm->mq_idx;
 		}
 
 		qmi_rmnet_flow_control(dev, itm->mq_idx,
@@ -855,34 +850,19 @@ int qmi_rmnet_get_queue(struct net_device *dev, struct sk_buff *skb)
 	if (!qos)
 		return 0;
 
-	/* If mark is mq num return it */
-	if (dfc_mode == DFC_MODE_MQ_NUM)
-		return mark;
-
-	if (dfc_mode == DFC_MODE_SA)
+	if (likely(dfc_mode == DFC_MODE_SA))
 		return qmi_rmnet_get_queue_sa(qos, skb);
 
-	/* Default flows */
-	if (!mark) {
-		if (qmi_rmnet_is_tcp_ack(skb))
-			return 1;
-		else
-			return 0;
-	}
-
 	ip_type = (skb->protocol == htons(ETH_P_IPV6)) ? AF_INET6 : AF_INET;
 
-	/* Dedicated flows */
 	spin_lock_bh(&qos->qos_lock);
 
 	itm = qmi_rmnet_get_flow_map(qos, mark, ip_type);
-	if (unlikely(!itm))
-		goto done;
-
-	txq = itm->mq_idx;
+	if (itm)
+		txq = itm->mq_idx;
 
-done:
 	spin_unlock_bh(&qos->qos_lock);
+
 	return txq;
 }
 EXPORT_SYMBOL(qmi_rmnet_get_queue);

+ 0 - 2
core/qmi_rmnet_i.h

@@ -27,8 +27,6 @@
 #define ACK_MQ_OFFSET (MAX_MQ_NUM - 1)
 #define INVALID_MQ 0xFF
 
-#define DFC_MODE_FLOW_ID 2
-#define DFC_MODE_MQ_NUM 3
 #define DFC_MODE_SA 4
 
 #define CONFIG_QTI_QMI_RMNET 1