|
@@ -543,9 +543,13 @@ static int undinet_open ( struct net_device *netdev ) {
|
543
|
543
|
undinet_call ( undinic, PXENV_UNDI_SET_STATION_ADDRESS,
|
544
|
544
|
&undi_set_address, sizeof ( undi_set_address ) );
|
545
|
545
|
|
546
|
|
- /* Open NIC */
|
|
546
|
+ /* Open NIC. We ask for promiscuous operation, since it's the
|
|
547
|
+ * only way to ask for all multicast addresses. On any
|
|
548
|
+ * switched network, it shouldn't really make a difference to
|
|
549
|
+ * performance.
|
|
550
|
+ */
|
547
|
551
|
memset ( &undi_open, 0, sizeof ( undi_open ) );
|
548
|
|
- undi_open.PktFilter = ( FLTR_DIRECTED | FLTR_BRDCST );
|
|
552
|
+ undi_open.PktFilter = ( FLTR_DIRECTED | FLTR_BRDCST | FLTR_PRMSCS );
|
549
|
553
|
if ( ( rc = undinet_call ( undinic, PXENV_UNDI_OPEN, &undi_open,
|
550
|
554
|
sizeof ( undi_open ) ) ) != 0 )
|
551
|
555
|
goto err;
|