mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-05-13 19:59:34 -04:00
Staging: bcm: Outsourced restoring of endianess for ip adresses
Signed-off-by: Matthias Beyer <mail@beyermatthias.de> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
15bba866c7
commit
311cb0786a
@@ -14,6 +14,9 @@ enum E_CLASSIFIER_ACTION {
|
||||
};
|
||||
|
||||
static ULONG GetNextTargetBufferLocation(struct bcm_mini_adapter *Adapter, B_UINT16 tid);
|
||||
static void restore_endianess_of_pstClassifierEntry(
|
||||
struct bcm_classifier_rule *pstClassifierEntry,
|
||||
enum bcm_ipaddr_context eIpAddrContext);
|
||||
|
||||
/************************************************************
|
||||
* Function - SearchSfid
|
||||
@@ -200,15 +203,10 @@ CopyIpAddrToClassifier(struct bcm_classifier_rule *pstClassifierEntry,
|
||||
}
|
||||
if (bIpVersion6) {
|
||||
/* Restore EndianNess of Struct */
|
||||
for (i = 0; i < MAX_IP_RANGE_LENGTH * 4; i++) {
|
||||
if (eIpAddrContext == eSrcIpAddress) {
|
||||
pstClassifierEntry->stSrcIpAddress.ulIpv6Addr[i] = ntohl(pstClassifierEntry->stSrcIpAddress.ulIpv6Addr[i]);
|
||||
pstClassifierEntry->stSrcIpAddress.ulIpv6Mask[i] = ntohl(pstClassifierEntry->stSrcIpAddress.ulIpv6Mask[i]);
|
||||
} else if (eIpAddrContext == eDestIpAddress) {
|
||||
pstClassifierEntry->stDestIpAddress.ulIpv6Addr[i] = ntohl(pstClassifierEntry->stDestIpAddress.ulIpv6Addr[i]);
|
||||
pstClassifierEntry->stDestIpAddress.ulIpv6Mask[i] = ntohl(pstClassifierEntry->stDestIpAddress.ulIpv6Mask[i]);
|
||||
}
|
||||
}
|
||||
restore_endianess_of_pstClassifierEntry(
|
||||
pstClassifierEntry,
|
||||
eIpAddrContext
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1919,3 +1917,19 @@ VOID OverrideServiceFlowParams(struct bcm_mini_adapter *Adapter,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static void restore_endianess_of_pstClassifierEntry(
|
||||
struct bcm_classifier_rule *pstClassifierEntry,
|
||||
enum bcm_ipaddr_context eIpAddrContext)
|
||||
{
|
||||
int i;
|
||||
for (i = 0; i < MAX_IP_RANGE_LENGTH * 4; i++) {
|
||||
if (eIpAddrContext == eSrcIpAddress) {
|
||||
pstClassifierEntry->stSrcIpAddress.ulIpv6Addr[i] = ntohl(pstClassifierEntry->stSrcIpAddress.ulIpv6Addr[i]);
|
||||
pstClassifierEntry->stSrcIpAddress.ulIpv6Mask[i] = ntohl(pstClassifierEntry->stSrcIpAddress.ulIpv6Mask[i]);
|
||||
} else if (eIpAddrContext == eDestIpAddress) {
|
||||
pstClassifierEntry->stDestIpAddress.ulIpv6Addr[i] = ntohl(pstClassifierEntry->stDestIpAddress.ulIpv6Addr[i]);
|
||||
pstClassifierEntry->stDestIpAddress.ulIpv6Mask[i] = ntohl(pstClassifierEntry->stDestIpAddress.ulIpv6Mask[i]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user