Staging: bcm: Qos.c: Replaced member accessing with variable in PruneQueue()
authorMatthias Beyer <mail@beyermatthias.de>
Tue, 29 Jul 2014 14:52:13 +0000 (16:52 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 31 Jul 2014 00:14:22 +0000 (17:14 -0700)
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/staging/bcm/Qos.c

index 0eb78a8010fe840e720c2a0819bc92935785d1db..769adb7b32ded6683c4f9b10385677d42b05ac8f 100644 (file)
@@ -31,19 +31,30 @@ static VOID PruneQueue(struct bcm_mini_adapter *Adapter, INT iIndex);
 *
 * Returns     - TRUE(If address matches) else FAIL .
 *********************************************************************/
-static bool MatchSrcIpAddress(struct bcm_classifier_rule *pstClassifierRule, ULONG ulSrcIP)
+static bool MatchSrcIpAddress(struct bcm_classifier_rule *pstClassifierRule,
+                             ULONG ulSrcIP)
 {
        UCHAR ucLoopIndex = 0;
 
        struct bcm_mini_adapter *Adapter = GET_BCM_ADAPTER(gblpnetdev);
+       union u_ip_address      *src_addr;
 
        ulSrcIP = ntohl(ulSrcIP);
        if (0 == pstClassifierRule->ucIPSourceAddressLength)
                return TRUE;
        for (ucLoopIndex = 0; ucLoopIndex < (pstClassifierRule->ucIPSourceAddressLength); ucLoopIndex++) {
-               BCM_DEBUG_PRINT(Adapter, DBG_TYPE_TX, IPV4_DBG, DBG_LVL_ALL, "Src Ip Address Mask:0x%x PacketIp:0x%x and Classification:0x%x", (UINT)pstClassifierRule->stSrcIpAddress.ulIpv4Mask[ucLoopIndex], (UINT)ulSrcIP, (UINT)pstClassifierRule->stSrcIpAddress.ulIpv6Addr[ucLoopIndex]);
-               if ((pstClassifierRule->stSrcIpAddress.ulIpv4Mask[ucLoopIndex] & ulSrcIP) ==
-                               (pstClassifierRule->stSrcIpAddress.ulIpv4Addr[ucLoopIndex] & pstClassifierRule->stSrcIpAddress.ulIpv4Mask[ucLoopIndex]))
+               src_addr = &pstClassifierRule->stSrcIpAddress;
+               BCM_DEBUG_PRINT(Adapter,
+                               DBG_TYPE_TX,
+                               IPV4_DBG,
+                               DBG_LVL_ALL,
+                               "Src Ip Address Mask:0x%x PacketIp:0x%x and Classification:0x%x",
+                               (UINT)src_addr->ulIpv4Mask[ucLoopIndex],
+                               (UINT)ulSrcIP,
+                               (UINT)src_addr->ulIpv6Addr[ucLoopIndex]);
+
+               if ((src_addr->ulIpv4Mask[ucLoopIndex] & ulSrcIP) ==
+                               (src_addr->ulIpv4Addr[ucLoopIndex] & src_addr->ulIpv4Mask[ucLoopIndex]))
                        return TRUE;
        }
        BCM_DEBUG_PRINT(Adapter, DBG_TYPE_TX, IPV4_DBG, DBG_LVL_ALL, "Src Ip Address Not Matched");