Re: svn commit: r297974 - in head/sys: i386/i386 i386/ibcs2 x86/x86

2016-04-15 Thread Bruce Evans

On Thu, 14 Apr 2016, Peter Wemm wrote:


On Thursday, April 14, 2016 12:14:13 PM Pedro Giffuni wrote:

On 04/14/16 12:04, Pedro F. Giffuni wrote:

Author: pfg
Date: Thu Apr 14 17:04:06 2016
New Revision: 297974
URL: https://svnweb.freebsd.org/changeset/base/297974

Log:
   x86: for pointers replace 0 with NULL.

   These are mostly cosmetical, no functional change.

   Found with devel/coccinelle.

Modified:
   head/sys/i386/i386/db_disasm.c
   head/sys/i386/i386/pmap.c
   head/sys/i386/ibcs2/imgact_coff.c
   head/sys/x86/x86/nexus.c


...


Modified: head/sys/i386/i386/pmap.c
==
 --- head/sys/i386/i386/pmap.c  Thu Apr 14 16:32:27 2016

(r297973)

+++ head/sys/i386/i386/pmap.c   Thu Apr 14 17:04:06 2016(r297974)
@@ -269,15 +269,15 @@ pt_entry_t *CMAP3;

  static pd_entry_t *KPTD;
  caddr_t ptvmmap = 0;
  caddr_t CADDR3;

-struct msgbuf *msgbufp = 0;
+struct msgbuf *msgbufp = NULL;

  /*

   * Crashdump maps.
   */

  static caddr_t crashdumpmap;

-static pt_entry_t *PMAP1 = 0, *PMAP2;
-static pt_entry_t *PADDR1 = 0, *PADDR2;
+static pt_entry_t *PMAP1 = NULL, *PMAP2;
+static pt_entry_t *PADDR1 = NULL, *PADDR2;

  #ifdef SMP
  static int PMAP1cpu;
  static int PMAP1changedcpu;


Hmm .. being static, there is no need to initialize these.


Several eons ago, at least some of these were initialized to force them into
the data section so that they had known or safe values before the bss zero
pass.  I don't know if that was ever an issue on freebsd, or just the upstream
code.  You'd have to look well back into ancient 2.0 or earlier vintage code.

I have a vague memory that our early a.out kernel had to zero its own bss
because the early a.out boot blocks didn't, and these variables would have
been caught in the crossfire.  Or something..


I fixed this in 2003.  Much later than I thought or could remember without
the commit logs.

Someone named peter removed clearing of the bss in locore to work
around bugs exposed by gcc changes.  This broke booting without loader,
so someone named bde put back the clearing in the right place in locore
so that it didn't clobber variables like cpu_id.  It was only a few
variables like cpu_id which were affected, and the problem was changing
them from nonzero to 0, not setting them to 0.


In any case, I'd be surprised if the compiler didn't put them in the bss
section these days anyway.  At least without cc -ffreestanding, anyway.


gcc apparently started doing this as late as 2003.  -fno-initialized-in-bss
can be used to restore the old behaviour, but we never used it.

Bruce
___
svn-src-head@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"


Re: svn commit: r297974 - in head/sys: i386/i386 i386/ibcs2 x86/x86

2016-04-15 Thread Peter Wemm
On Thursday, April 14, 2016 12:14:13 PM Pedro Giffuni wrote:
> On 04/14/16 12:04, Pedro F. Giffuni wrote:
> > Author: pfg
> > Date: Thu Apr 14 17:04:06 2016
> > New Revision: 297974
> > URL: https://svnweb.freebsd.org/changeset/base/297974
> > 
> > Log:
> >x86: for pointers replace 0 with NULL.
> >
> >These are mostly cosmetical, no functional change.
> >
> >Found with devel/coccinelle.
> > 
> > Modified:
> >head/sys/i386/i386/db_disasm.c
> >head/sys/i386/i386/pmap.c
> >head/sys/i386/ibcs2/imgact_coff.c
> >head/sys/x86/x86/nexus.c
> 
> ...
> 
> > Modified: head/sys/i386/i386/pmap.c
> > ==
> >  --- head/sys/i386/i386/pmap.c  Thu Apr 14 16:32:27 2016
(r297973)
> > +++ head/sys/i386/i386/pmap.c   Thu Apr 14 17:04:06 2016
> > (r297974)
> > @@ -269,15 +269,15 @@ pt_entry_t *CMAP3;
> > 
> >   static pd_entry_t *KPTD;
> >   caddr_t ptvmmap = 0;
> >   caddr_t CADDR3;
> > 
> > -struct msgbuf *msgbufp = 0;
> > +struct msgbuf *msgbufp = NULL;
> > 
> >   /*
> >   
> >* Crashdump maps.
> >*/
> >   
> >   static caddr_t crashdumpmap;
> > 
> > -static pt_entry_t *PMAP1 = 0, *PMAP2;
> > -static pt_entry_t *PADDR1 = 0, *PADDR2;
> > +static pt_entry_t *PMAP1 = NULL, *PMAP2;
> > +static pt_entry_t *PADDR1 = NULL, *PADDR2;
> > 
> >   #ifdef SMP
> >   static int PMAP1cpu;
> >   static int PMAP1changedcpu;
> 
> Hmm .. being static, there is no need to initialize these.

Several eons ago, at least some of these were initialized to force them into 
the data section so that they had known or safe values before the bss zero 
pass.  I don't know if that was ever an issue on freebsd, or just the upstream 
code.  You'd have to look well back into ancient 2.0 or earlier vintage code.  

I have a vague memory that our early a.out kernel had to zero its own bss 
because the early a.out boot blocks didn't, and these variables would have 
been caught in the crossfire.  Or something..

In any case, I'd be surprised if the compiler didn't put them in the bss 
section these days anyway.  At least without cc -ffreestanding, anyway.

-- 
Peter Wemm - pe...@wemm.org; pe...@freebsd.org; pe...@yahoo-inc.com; KI6FJV
UTF-8: for when a ' or ... just won\342\200\231t do\342\200\246

signature.asc
Description: This is a digitally signed message part.


Re: svn commit: r297974 - in head/sys: i386/i386 i386/ibcs2 x86/x86

2016-04-14 Thread Pedro Giffuni



On 04/14/16 12:04, Pedro F. Giffuni wrote:

Author: pfg
Date: Thu Apr 14 17:04:06 2016
New Revision: 297974
URL: https://svnweb.freebsd.org/changeset/base/297974

Log:
   x86: for pointers replace 0 with NULL.

   These are mostly cosmetical, no functional change.

   Found with devel/coccinelle.

Modified:
   head/sys/i386/i386/db_disasm.c
   head/sys/i386/i386/pmap.c
   head/sys/i386/ibcs2/imgact_coff.c
   head/sys/x86/x86/nexus.c


...



Modified: head/sys/i386/i386/pmap.c
==
--- head/sys/i386/i386/pmap.c   Thu Apr 14 16:32:27 2016(r297973)
+++ head/sys/i386/i386/pmap.c   Thu Apr 14 17:04:06 2016(r297974)
@@ -269,15 +269,15 @@ pt_entry_t *CMAP3;
  static pd_entry_t *KPTD;
  caddr_t ptvmmap = 0;
  caddr_t CADDR3;
-struct msgbuf *msgbufp = 0;
+struct msgbuf *msgbufp = NULL;

  /*
   * Crashdump maps.
   */
  static caddr_t crashdumpmap;

-static pt_entry_t *PMAP1 = 0, *PMAP2;
-static pt_entry_t *PADDR1 = 0, *PADDR2;
+static pt_entry_t *PMAP1 = NULL, *PMAP2;
+static pt_entry_t *PADDR1 = NULL, *PADDR2;
  #ifdef SMP
  static int PMAP1cpu;
  static int PMAP1changedcpu;



Hmm .. being static, there is no need to initialize these.

Pedro.
___
svn-src-head@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"


svn commit: r297974 - in head/sys: i386/i386 i386/ibcs2 x86/x86

2016-04-14 Thread Pedro F. Giffuni
Author: pfg
Date: Thu Apr 14 17:04:06 2016
New Revision: 297974
URL: https://svnweb.freebsd.org/changeset/base/297974

Log:
  x86: for pointers replace 0 with NULL.
  
  These are mostly cosmetical, no functional change.
  
  Found with devel/coccinelle.

Modified:
  head/sys/i386/i386/db_disasm.c
  head/sys/i386/i386/pmap.c
  head/sys/i386/ibcs2/imgact_coff.c
  head/sys/x86/x86/nexus.c

Modified: head/sys/i386/i386/db_disasm.c
==
--- head/sys/i386/i386/db_disasm.c  Thu Apr 14 16:32:27 2016
(r297973)
+++ head/sys/i386/i386/db_disasm.c  Thu Apr 14 17:04:06 2016
(r297974)
@@ -953,17 +953,17 @@ db_read_address(loc, short_addr, regmodr
return (loc);
}
addrp->is_reg = FALSE;
-   addrp->index = 0;
+   addrp->index = NULL;
 
if (short_addr) {
-   addrp->index = 0;
+   addrp->index = NULL;
addrp->ss = 0;
switch (mod) {
case 0:
if (rm == 6) {
get_value_inc(disp, loc, 2, FALSE);
addrp->disp = disp;
-   addrp->base = 0;
+   addrp->base = NULL;
}
else {
addrp->disp = 0;
@@ -997,7 +997,7 @@ db_read_address(loc, short_addr, regmodr
case 0:
if (rm == 5) {
get_value_inc(addrp->disp, loc, 4, FALSE);
-   addrp->base = 0;
+   addrp->base = NULL;
}
else {
addrp->disp = 0;
@@ -1037,7 +1037,7 @@ db_print_address(seg, size, addrp)
}
 
db_printsym((db_addr_t)addrp->disp, DB_STGY_ANY);
-   if (addrp->base != 0 || addrp->index != 0) {
+   if (addrp->base != NULL || addrp->index != NULL) {
db_printf("(");
if (addrp->base)
db_printf("%s", addrp->base);
@@ -1171,7 +1171,7 @@ db_disasm(db_addr_t loc, bool altfmt)
get_value_inc(inst, loc, 1, FALSE);
short_addr = FALSE;
size = LONG;
-   seg = 0;
+   seg = NULL;
 
/*
 * Get prefixes
@@ -1239,7 +1239,7 @@ db_disasm(db_addr_t loc, bool altfmt)
if (inst == 0x0f) {
get_value_inc(inst, loc, 1, FALSE);
ip = db_inst_0f[inst>>4];
-   if (ip == 0) {
+   if (ip == NULL) {
ip = _bad_inst;
}
else {

Modified: head/sys/i386/i386/pmap.c
==
--- head/sys/i386/i386/pmap.c   Thu Apr 14 16:32:27 2016(r297973)
+++ head/sys/i386/i386/pmap.c   Thu Apr 14 17:04:06 2016(r297974)
@@ -269,15 +269,15 @@ pt_entry_t *CMAP3;
 static pd_entry_t *KPTD;
 caddr_t ptvmmap = 0;
 caddr_t CADDR3;
-struct msgbuf *msgbufp = 0;
+struct msgbuf *msgbufp = NULL;
 
 /*
  * Crashdump maps.
  */
 static caddr_t crashdumpmap;
 
-static pt_entry_t *PMAP1 = 0, *PMAP2;
-static pt_entry_t *PADDR1 = 0, *PADDR2;
+static pt_entry_t *PMAP1 = NULL, *PMAP2;
+static pt_entry_t *PADDR1 = NULL, *PADDR2;
 #ifdef SMP
 static int PMAP1cpu;
 static int PMAP1changedcpu;

Modified: head/sys/i386/ibcs2/imgact_coff.c
==
--- head/sys/i386/ibcs2/imgact_coff.c   Thu Apr 14 16:32:27 2016
(r297973)
+++ head/sys/i386/ibcs2/imgact_coff.c   Thu Apr 14 17:04:06 2016
(r297974)
@@ -69,7 +69,7 @@ load_coff_section(struct vmspace *vmspac
vm_offset_t map_offset;
vm_offset_t map_addr;
int error;
-   unsigned char *data_buf = 0;
+   unsigned char *data_buf = NULL;
size_t copy_len;
 
map_offset = trunc_page(offset);
@@ -163,7 +163,7 @@ coff_load_file(struct thread *td, char *
struct filehdr *fhdr;
struct aouthdr *ahdr;
struct scnhdr *scns;
-   char *ptr = 0;
+   char *ptr = NULL;
int nscns;
unsigned long text_offset = 0, text_address = 0, text_size = 0;
unsigned long data_offset = 0, data_address = 0, data_size = 0;
@@ -363,7 +363,7 @@ exec_coff_imgact(imgp)
/* .bss section */
bss_size = scns[i].s_size;
  } else if (scns[i].s_flags & STYP_LIB) {
-   char *buf = 0;
+   char *buf = NULL;
int foff = trunc_page(scns[i].s_scnptr);
int off = scns[i].s_scnptr - foff;
int len = round_page(scns[i].s_size + PAGE_SIZE);

Modified: head/sys/x86/x86/nexus.c
==
--- head/sys/x86/x86/nexus.cThu Apr 14 16:32:27 2016(r297973)
+++ head/sys/x86/x86/nexus.cThu Apr 14 17:04:06 2016(r297974)
@@ -397,7 +397,7 @@ nexus_alloc_resource(device_t bus, devic
return (NULL);