Re: dmesg of 2.5.45 boot on NFS client

From: Denis Vlasenko (vda@port.imtp.ilyichevsk.odessa.ua)
Date: Wed Nov 13 2002 - 14:48:40 EST


mii-tool -F 100baseTx-FD eth0

does not work in 2.5 while working fine in 2.4.
What should I do? Fix eth driver?
Use never mii-tool or equivalent?

# mii-tool --version
mii-tool.c 1.9 2000/04/28 00:56:08 (David Hinds)

# lspci
01:08.0 Ethernet controller: Intel Corp. 82820 (ICH2) Chipset Ethernet Controller (rev 03)

On 6 November 2002 18:57, Denis Vlasenko wrote:
> TCP: Hash tables configured (established 4096 bind 5461)
> Sending DHCP requests .fix old protocol handler
> ic_bootp_recv+0x0/0x3a0! .fix old protocol handler
> ic_bootp_recv+0x0/0x3a0!
> ,fix old protocol handler ic_bootp_recv+0x0/0x3a0!
> OK

Dave, Arnaldo, I can attempt to fix this if you think
it's feasible to receive my possibly buggy newcomer code
instead of fixing it yourself. In this case, feel free
to apply a cluebat as to what should be done / where should
I look for example of 'new protocol handler' ;)

I know that plans are underway to push all this stuff to early
userspace but I need it *now* if I want to test 2.5 at this time.

I suspect you already seen these lines of code,
but here they are (2.5.47):

net/core/dev.c:
static int deliver_to_old_ones(struct packet_type *pt,
                               struct sk_buff *skb, int last)
{
        int ret = NET_RX_DROP;

        if (!last) {
                skb = skb_clone(skb, GFP_ATOMIC);
                if (!skb)
                        goto out;
        }
        if (skb_is_nonlinear(skb) && skb_linearize(skb, GFP_ATOMIC))
                goto out_kfree;

#if CONFIG_SMP
        /* Old protocols did not depened on BHs different of NET_BH and
           TIMER_BH - they need to be fixed for the new assumptions.
         */
        print_symbol("fix old protocol handler %s!\n", (unsigned long)pt->func);
#endif

net/ipv4/ipconfig.c:
...
static int ic_bootp_recv(struct sk_buff *skb, struct net_device *dev, struct packet_type *pt);

static struct packet_type bootp_packet_type __initdata = {
        .type = __constant_htons(ETH_P_IP),
        .func = ic_bootp_recv,
};
...
static int __init ic_bootp_recv(struct sk_buff *skb, struct net_device *dev, struct packet_type *pt)
{
        struct bootp_pkt *b = (struct bootp_pkt *) skb->nh.iph;
        struct iphdr *h = &b->iph;
        struct ic_device *d;
        int len;

        /* One reply at a time, please. */
        spin_lock(&ic_recv_lock);

        /* If we already have a reply, just drop the packet */
        if (ic_got_reply)
                goto drop;

--
vda
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Fri Nov 15 2002 - 22:00:29 EST