gianfar:localized filer table
Each eTSEC device should own localized filer table. Signed-off-by: Jiajun Wu <b06378@freescale.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
committed by
David S. Miller
parent
e756682c8b
commit
6c43e0465f
@@ -10,7 +10,7 @@
|
||||
* Maintainer: Kumar Gala
|
||||
* Modifier: Sandeep Gopalpet <sandeep.kumar@freescale.com>
|
||||
*
|
||||
* Copyright 2002-2009 Freescale Semiconductor, Inc.
|
||||
* Copyright 2002-2009, 2011 Freescale Semiconductor, Inc.
|
||||
* Copyright 2007 MontaVista Software, Inc.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify it
|
||||
@@ -476,9 +476,6 @@ static const struct net_device_ops gfar_netdev_ops = {
|
||||
#endif
|
||||
};
|
||||
|
||||
unsigned int ftp_rqfpr[MAX_FILER_IDX + 1];
|
||||
unsigned int ftp_rqfcr[MAX_FILER_IDX + 1];
|
||||
|
||||
void lock_rx_qs(struct gfar_private *priv)
|
||||
{
|
||||
int i = 0x0;
|
||||
@@ -868,28 +865,28 @@ static u32 cluster_entry_per_class(struct gfar_private *priv, u32 rqfar,
|
||||
|
||||
rqfar--;
|
||||
rqfcr = RQFCR_CLE | RQFCR_PID_MASK | RQFCR_CMP_EXACT;
|
||||
ftp_rqfpr[rqfar] = rqfpr;
|
||||
ftp_rqfcr[rqfar] = rqfcr;
|
||||
priv->ftp_rqfpr[rqfar] = rqfpr;
|
||||
priv->ftp_rqfcr[rqfar] = rqfcr;
|
||||
gfar_write_filer(priv, rqfar, rqfcr, rqfpr);
|
||||
|
||||
rqfar--;
|
||||
rqfcr = RQFCR_CMP_NOMATCH;
|
||||
ftp_rqfpr[rqfar] = rqfpr;
|
||||
ftp_rqfcr[rqfar] = rqfcr;
|
||||
priv->ftp_rqfpr[rqfar] = rqfpr;
|
||||
priv->ftp_rqfcr[rqfar] = rqfcr;
|
||||
gfar_write_filer(priv, rqfar, rqfcr, rqfpr);
|
||||
|
||||
rqfar--;
|
||||
rqfcr = RQFCR_CMP_EXACT | RQFCR_PID_PARSE | RQFCR_CLE | RQFCR_AND;
|
||||
rqfpr = class;
|
||||
ftp_rqfcr[rqfar] = rqfcr;
|
||||
ftp_rqfpr[rqfar] = rqfpr;
|
||||
priv->ftp_rqfcr[rqfar] = rqfcr;
|
||||
priv->ftp_rqfpr[rqfar] = rqfpr;
|
||||
gfar_write_filer(priv, rqfar, rqfcr, rqfpr);
|
||||
|
||||
rqfar--;
|
||||
rqfcr = RQFCR_CMP_EXACT | RQFCR_PID_MASK | RQFCR_AND;
|
||||
rqfpr = class;
|
||||
ftp_rqfcr[rqfar] = rqfcr;
|
||||
ftp_rqfpr[rqfar] = rqfpr;
|
||||
priv->ftp_rqfcr[rqfar] = rqfcr;
|
||||
priv->ftp_rqfpr[rqfar] = rqfpr;
|
||||
gfar_write_filer(priv, rqfar, rqfcr, rqfpr);
|
||||
|
||||
return rqfar;
|
||||
@@ -904,8 +901,8 @@ static void gfar_init_filer_table(struct gfar_private *priv)
|
||||
|
||||
/* Default rule */
|
||||
rqfcr = RQFCR_CMP_MATCH;
|
||||
ftp_rqfcr[rqfar] = rqfcr;
|
||||
ftp_rqfpr[rqfar] = rqfpr;
|
||||
priv->ftp_rqfcr[rqfar] = rqfcr;
|
||||
priv->ftp_rqfpr[rqfar] = rqfpr;
|
||||
gfar_write_filer(priv, rqfar, rqfcr, rqfpr);
|
||||
|
||||
rqfar = cluster_entry_per_class(priv, rqfar, RQFPR_IPV6);
|
||||
@@ -921,8 +918,8 @@ static void gfar_init_filer_table(struct gfar_private *priv)
|
||||
/* Rest are masked rules */
|
||||
rqfcr = RQFCR_CMP_NOMATCH;
|
||||
for (i = 0; i < rqfar; i++) {
|
||||
ftp_rqfcr[i] = rqfcr;
|
||||
ftp_rqfpr[i] = rqfpr;
|
||||
priv->ftp_rqfcr[i] = rqfcr;
|
||||
priv->ftp_rqfpr[i] = rqfpr;
|
||||
gfar_write_filer(priv, i, rqfcr, rqfpr);
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user