summaryrefslogtreecommitdiff
path: root/arch
diff options
context:
space:
mode:
authorAndrea Galbusera <gizero@gmail.com>2011-04-21 02:21:21 +0000
committerDavid S. Miller <davem@davemloft.net>2011-04-21 16:59:30 -0700
commite2a85aecebc03d165bc2dcd233deadd5dd97ea9f (patch)
treeb10efdc196b4ae601a499f36ade2ed98492302fe /arch
parenta9cf73ea7ff78f52662c8658d93c226effbbedde (diff)
downloadlinux-3.10-e2a85aecebc03d165bc2dcd233deadd5dd97ea9f.tar.gz
linux-3.10-e2a85aecebc03d165bc2dcd233deadd5dd97ea9f.tar.bz2
linux-3.10-e2a85aecebc03d165bc2dcd233deadd5dd97ea9f.zip
powerpc: Fix multicast problem in fs_enet driver
mac-fec.c was setting individual UDP address registers instead of multicast group address registers when joining a multicast group. This prevented from correctly receiving UDP multicast packets. According to datasheet, replaced hash_table_high and hash_table_low with grp_hash_table_high and grp_hash_table_low respectively. Also renamed hash_table_* with grp_hash_table_* in struct fec declaration for 8xx: these registers are used only for multicast there. Tested on a MPC5121 based board. Build tested also against mpc866_ads_defconfig. Signed-off-by: Andrea Galbusera <gizero@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'arch')
-rw-r--r--arch/powerpc/include/asm/8xx_immap.h4
1 files changed, 2 insertions, 2 deletions
diff --git a/arch/powerpc/include/asm/8xx_immap.h b/arch/powerpc/include/asm/8xx_immap.h
index 6b6dc20b0be..bdf0563ba42 100644
--- a/arch/powerpc/include/asm/8xx_immap.h
+++ b/arch/powerpc/include/asm/8xx_immap.h
@@ -393,8 +393,8 @@ typedef struct fec {
uint fec_addr_low; /* lower 32 bits of station address */
ushort fec_addr_high; /* upper 16 bits of station address */
ushort res1; /* reserved */
- uint fec_hash_table_high; /* upper 32-bits of hash table */
- uint fec_hash_table_low; /* lower 32-bits of hash table */
+ uint fec_grp_hash_table_high; /* upper 32-bits of hash table */
+ uint fec_grp_hash_table_low; /* lower 32-bits of hash table */
uint fec_r_des_start; /* beginning of Rx descriptor ring */
uint fec_x_des_start; /* beginning of Tx descriptor ring */
uint fec_r_buff_size; /* Rx buffer size */