NetBSD-Bugs archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: port-sparc64/46652 (sparc ofwboot.net fails to load kernel via tftp)



The following reply was made to PR port-sparc64/46652; it has been noted by 
GNATS.

From: Izumi Tsutsui <tsutsui%ceres.dti.ne.jp@localhost>
To: gnats-bugs%NetBSD.org@localhost
Cc: tsutsui%NetBSD.org@localhost, port-sparc64-maintainer%NetBSD.org@localhost,
        netbsd-bugs%NetBSD.org@localhost, spz%NetBSD.org@localhost, 
tsutsui%ceres.dti.ne.jp@localhost
Subject: Re: port-sparc64/46652 (sparc ofwboot.net fails to load kernel via
         tftp)
Date: Wed, 4 Jul 2012 20:43:27 +0900

 Ok, tftp requires own initialization (net_sock in of->f_devdata),
 but the previous code (using int**) was a bit confusing.
 
 How about passing (struct open_file *) as
 lib/libsa/tftp.c:tftp_open() does?
 
 ---
 Izumi Tsutsui
 
 Index: net.c
 ===================================================================
 RCS file: /cvsroot/src/sys/arch/sparc/stand/ofwboot/net.c,v
 retrieving revision 1.7
 diff -u -p -r1.7 net.c
 --- net.c      21 May 2011 15:50:42 -0000      1.7
 +++ net.c      4 Jul 2012 11:39:38 -0000
 @@ -181,13 +181,14 @@ net_mountroot_bootp(void)
  }
  
  int
 -net_tftp_bootp(struct of_dev *op)
 +net_tftp_bootp(struct open_file *f)
  {
  
        net_mountroot_bootp();
        if (myip.s_addr == 0)
                return(ENOENT);
  
 +      f->f_devdata = &netdev_sock;
        return (0);
  }
  
 Index: net.h
 ===================================================================
 RCS file: /cvsroot/src/sys/arch/sparc/stand/ofwboot/net.h,v
 retrieving revision 1.2
 diff -u -p -r1.2 net.h
 --- net.h      21 May 2011 15:50:42 -0000      1.2
 +++ net.h      4 Jul 2012 11:39:38 -0000
 @@ -34,7 +34,7 @@
  
  int   net_open(struct of_dev *);
  int   net_close(struct of_dev *);
 -int   net_tftp_bootp(struct of_dev *);
 +int   net_tftp_bootp(struct open_file *);
  int   net_mountroot(void);
  
  #endif /* _OFWBOOT_NET_H */
 Index: ofdev.c
 ===================================================================
 RCS file: /cvsroot/src/sys/arch/sparc/stand/ofwboot/ofdev.c,v
 retrieving revision 1.32
 diff -u -p -r1.32 ofdev.c
 --- ofdev.c    1 Jun 2011 11:42:18 -0000       1.32
 +++ ofdev.c    4 Jul 2012 11:39:38 -0000
 @@ -536,7 +536,7 @@ open_again:
                if (!strncmp(*file,"/tftp:",6)) {
                        *file += 6;
                        memcpy(&file_system[0], &file_system_tftp, sizeof 
file_system[0]);
 -                      if (net_tftp_bootp(of->f_devdata)) {
 +                      if (net_tftp_bootp(of)) {
                                net_close(&ofdev);
                                goto bad;
                        }
 
 ---
 Izumi Tsutsui
 


Home | Main Index | Thread Index | Old Index