1. 05 Jun, 2002 9 commits
    • Kai Germaschewski's avatar
      kbuild: modversions improvements · 67b95633
      Kai Germaschewski authored
      If an object was changed to not export symbols anymore, the
      corresponding stale .ver file would have been left lying around
      and been picked up when generating modversions.h. 
      
      The obvious solution to remove include/linux/modules/* at the
      beginning of "make dep" is not really good, since that means
      that .ver files would be regenerated unconditionally, thus causing
      a lot of possibly unnecessary rebuilds.
      
      So, instead, we build a temporary shadow tree of all export-objs
      (as empty files) during the recursive "make fastdep" phase, and use 
      that to generate modversions.h.
      
      Ensure that we touch include/linux/modversions.h if any of the
      .ver files changes, that's our marker to rebuild all modversions
      affected files.
      67b95633
    • Kai Germaschewski's avatar
      kbuild: Really stick with verbose output by default · 9d0ac54b
      Kai Germaschewski authored
      If KBUILD_VERBOSE is not set in the environment, have it default
      to 1 (i.e. on)
      9d0ac54b
    • Kai Germaschewski's avatar
      kbuild: Clean up descending into subdirs · 78e9d59f
      Kai Germaschewski authored
      Rules.make now has three targets:
      o default (a.k.a first_rule): The actual build. Deciding whether
        to build built-in or modular or both is decided by
        $(KBUILD_MODULES) and $(KBUILD_BUILTIN) now, instead of using
        different targets
      o fastdep: doesn't actually dependencies anymore, only generates
        modversions
      o modules_install: Well, you guess what that does.
      
      Cleaned up descending, and no more differentiating between 
      $(subdir-y) and $(subdir-m). That means $(mod-subdirs) can
      go away now.
      78e9d59f
    • Kai Germaschewski's avatar
      kbuild: Use deep directory structure for include/linux/modules · 81e93fe6
      Kai Germaschewski authored
      We used to force the obvious deep structure of all objects which
      export symbols into a flat list in include/linux/modules. This
      initially caused the restriction the no two exporting objects could
      have the same name (Ever wondered why there's ksyms.c and
      i386_ksyms.c?)
      
      With the ALSA merge this restriction was mostly lifted by some hack,
      but some cases still don't work right (Hi XFS). As it's much cleaner
      to just use a normal tree under include/linux/modules, reflecting the
      source tree, we now do just that.
      81e93fe6
    • Kai Germaschewski's avatar
      kbuild: Make dependencies at compile time · 04bd7217
      Kai Germaschewski authored
      Making dependencies once up front is not ideal. For one, you don't need
      them initially, since when you don't have the .o file, you bet you have
      to build it no matter what the dependencies say - dependencies are about
      deciding when to *re*build.
      
      There's more reasons, like:
      o you don't even know which files you'll build, so you have to go over
        all files (even over drivers/{sbus,s390,...} on i386)
      o generated files don't exist yet, so you cannot pick up dependencies
        on them
      o even if dependencies are right initially, they change when you work on 
        your tree or patch it, and nobody will notice unless you run "make dep"
        explicitly again
      
      Anyway, gcc knows hows to emit a correct dependency list, so we just use
      that. Well, a little bit of hacking is necessary to remove the dependency
      on autoconf.h and put in individual CONFIG_WHAT_EVER dependencies instead,
      since otherwise changing one config option would cause everything to be
      rebuilt.
      
      I should add that I didn't come up with this all by myself, most work
      is actually done in gcc and there were discussions about using -MD on
      kbuild-devel way back, so I should mention Keith Owens and Michael
      Elizabeth Chastain, and probably others that I forgot, so I apologize
      just in case.
      04bd7217
    • Kai Germaschewski's avatar
      kbuild: Fix calling of scripts · d02c2b1f
      Kai Germaschewski authored
      We source some scripts, but still pass parameters to them, e.g.
      
      	. mk_version_h $@ $(KERNELRELEASE) $(VERSION) ...
      
      This does not work for all kinds of /bin/sh (it does for bash, that's
      why I did not notice).
      
      The fix is easy: Just mark the scripts executable and call instead of
      source them.
      
      Unfortunately, patch(1) doesn't understand about propagating chmod.
      bk does, so changing the tree isn't hard, and we introduce an explicit
      chmod a+x executed during the build for propagating this change into
      those trees which get "traditionally" patched up.
      d02c2b1f
    • Kai Germaschewski's avatar
      kbuild: Fix 'make some/dir/foo.lst' · 4a2fa6ce
      Kai Germaschewski authored
      Just use 'make some/dir/foo.lst' to produce mixed source code and
      assembly for debugging. (If the object gets linked in and you have
      a System.map, it'll relocate appropriately)
      
      Apart from the needed Makefile bits, also clean up the script
      "makelst".
      4a2fa6ce
    • Kai Germaschewski's avatar
      kbuild: Fix make -s (silent) and add a quiet mode · 00b454db
      Kai Germaschewski authored
      Suppress echoing of commands when using "make -s", so that make -s
      does indeed have the effect one would expect.
      
      Add a quiet mode, which will print not the entire command but only
      one line per rule. To turn it on, use
      
      	make KBUILD_VERBOSE=0 vmlinux/whatever
      
      or set KBUILD_VERBOSE=0 in your environment.
      
      For now, the verbose mode is default, which gives you the old behavior
      of printing all commands.
      
      The output in quiet mode is based on what Keith Owens' kbuild-2.5 does,
      I like, I did not want to invent yet another output format.
      00b454db
    • Kai Germaschewski's avatar
      kbuild: Split Makefile into needs / needs not .config · 77c83c75
      Kai Germaschewski authored
      The current top-level Makefile has a fundamental problem which
      makes "make oldconfig vmlinux" impossible:
      
      It includes .config, which is changed by "oldconfig". So after "oldconfig"
      .config has changed and the .config the Makefile had read is obsolete.
      make provides a mechanism to cope with this, it'll restart automatically 
      if any of the files it included changed, if you let it know that you
      changed it, just using a normal rule which has .config as its target.
      
      However, once you tell make that "make oldconfig" changes .config, you
      have another problem: oldconfig always uses .config to be remade, there's
      no mechanism to tell if it's up to date. So makes notices that .config
      has changed, restarts, makes oldconfig again, notices that .config has
      changed, restarts, ... you get the picture.
      
      The way to solve this is to do a proper two-stage approach: If you just
      say "make oldconfig", there's no need for the Makefile to even read the
      .config. If it does not, it won't restart and recurse infintely.
      So we divide the Makefile into two sections: One for targets which don't
      need the variables from .config, like *config, clean, mrproper and
      one section which does the actual build, which needs to know the
      CONFIG_ options.
      
      If one of the "noconfig" targets is given, we handle those, without
      reading .config. From there, we call make again, filtering out the already
      handled targets, to do the main work.
      
      The fact that this actually works correctly can be seen by trying
      "make vmlinux oldconfig" which will execute things in the right
      order - and this is not just nitpicking, it means that "-j" will
      get this case right, too.
      
      The $(CONFIGURATION) hack used to start "make config" automatically
      can go away now, too. Since we don't know which of make *config the
      user prefers, we'll just ask him call "make whatever-config" himself,
      instead of forcing "make config" on him.
      77c83c75
  2. 04 Jun, 2002 1 commit
  3. 05 Jun, 2002 4 commits
  4. 04 Jun, 2002 6 commits
    • Robert Love's avatar
      [PATCH] remove fsuser() · 5fb4864a
      Robert Love authored
      This patch removes fsuser().  Now both suser() and fsuser() are gone and
      all permission checks use an appropriate capable() call.
      5fb4864a
    • Robert Love's avatar
      [PATCH] remove suser() · 95c78cd5
      Robert Love authored
      Attached patch replaces the lone remaining suser() call with capable()
      and then removes suser() itself in a triumphant celebration of the glory
      of capable().  Or something. ;-)
      
      Small cleanup of capable() and some comments, too.
      95c78cd5
    • Martin Dalecki's avatar
      [PATCH] 2.5.20 IDE 84 · a73f75e2
      Martin Dalecki authored
       - Simplify ide_cmd_type_parse by removing the handling of commands which we
         never use.
      
       - Realize that pre_task_out_intr and pre_task_mulout_intr are semanticaly
         identical. Use only pre_task_out_intr(). This allowed us to
         eliminate the prehandler altogether.
      
       - Updated fix for misconfigured host chips by Vojtech Pavlik.
      
       - Be more permissive about ioctl handling to allow device type drivers to do
         they own checks.
      
       - ali14xx cleanups by Andrej Panin.
      
       - Unfold usage ide_cmd_type_parser in tcq.c code. This makes this operation
         local to ide-disk.c. Move it as well as the interrupt handlers used only for
         the handling of disk requests there too.
      
       - Guard against calling handler before the drive is ready for it in
         ata_taskfile()! Well this bug was there before, but right now we inform
         about it.
      
       - Unfold ide_cmd_type_praser in ide-disk.c. Merge the remaining bits of it with
         get_command. Well it's no more.
      
       - Move recal_intr to ide.c - the only place where it's used.
      
      This doesn't change the "mechanics" of the code but it makes it a lot more
      "obvious" what's going on.
      a73f75e2
    • Russell King's avatar
      [PATCH] fix 2.5.20 ramdisk · 0f65c90d
      Russell King authored
      2.5.20 seems to be incapable of executing binaries in a ramdisk-based
      root filesystem.  The ramdisk in question is an ext2fs, with a 1K
      block size loaded via the compressed ramdisk loader in do_mounts().
      
      It appears that, in the case of a 1K block sized filesystem, we attempt
      to read two 512-byte sectors into a BIO vector.  The first one is copied
      into the first 512 bytes.  The second sector, however, is copied over
      the first 512 bytes.  Obviously not what we really want.
      
      Rev. 2, slightly cleaned up:
      0f65c90d
    • Linus Torvalds's avatar
      Merge bk://ldm.bkbits.net/linux-2.5 · bee01166
      Linus Torvalds authored
      into home.transmeta.com:/home/torvalds/v2.5/linux
      bee01166
    • Linus Torvalds's avatar
      Fix extra parenthesis in the constant-address rwlock case. · 6c90d305
      Linus Torvalds authored
      Noted by Alexey Vyskubov
      6c90d305
  5. 03 Jun, 2002 20 commits
    • Patrick Mochel's avatar
      PCI driver mgmt: · 52d16b41
      Patrick Mochel authored
      - Make sure proper pci id is passed to probe()
      - make sure pci_dev->driver is set and reset on driver registration/unregistration
      - call remove_driver to force unload of driver on unregistration
      52d16b41
    • Patrick Mochel's avatar
      Do manual traversing of drivers' devices list when unbinding the driver. · 96d36ec0
      Patrick Mochel authored
      driver_unbind was called when drv->refcount == 0.
      It would call driver_for_each_dev to do the unbinding
      The first thing that would do was get_device, which...
      BUG()'d if drv->refcount == 0. 
      Duh. 
      96d36ec0
    • Patrick Mochel's avatar
      device model udpate: · d6022129
      Patrick Mochel authored
      - make sure drv->devices is initialized on registration (from Peter Osterlund)
      - add remove_driver for forcing removal of driver
      
      There was a potential race with the module unload code. When a pci driver was unloaded, it would call pci_unregister_driver, which would simply call put_driver.
      If the driver's refcount wasn't 0, it wouldn't unbind it from devices, but the module unload would still continue. 
      If something tried to access the driver later (since everyone thinks its still there), Bad Things would happen. 
      This fixes it until there can be tighter integration between the device model and module unload code.
      d6022129
    • Pavel Machek's avatar
      [PATCH] Re: Fix suspend-to-RAM in 2.5.20 · 983d56eb
      Pavel Machek authored
      Here's followup patch that makes it work. Notice freeze_processes() --
      if you don't do that you risk data corruption.
      983d56eb
    • Pavel Machek's avatar
      [PATCH] Cleanup swsusp in 2.5.20 · c2ad32fc
      Pavel Machek authored
      This cleans up swsusp in 2.5.20. Killed sysrq-D support (it is too
      much trouble to support suspending from interrupt), kill unused
      define, fix compile-time warnings (thanks to Adam).
      c2ad32fc
    • Pavel Machek's avatar
      [PATCH] Fix suspend-to-RAM in 2.5.20 · 14f54697
      Pavel Machek authored
      I created arch/i386/suspend.c not to clash with ACPI people so much in
      future. (More stuff is going to move into it in the future, to clean
      up functions that really do not belong to the headers.)
      14f54697
    • Zwane Mwaikambo's avatar
      [PATCH] bluesmoke merge · 5ca5a885
      Zwane Mwaikambo authored
      This patch merges in all the currently outstanding bluesmoke bits from
      2.5-dj to 2.5.20, it also has the pleasant side effect of fixing the
      compilation. Test compiled with and without MCE.
      5ca5a885
    • Dan Kegel's avatar
      [PATCH] must be __KERNEL__ for byteorder/generic.h · c8e2aa59
      Dan Kegel authored
        Here's that patch again (MIME this time, so tabs don't get
        lost by my silly gui mailer); applies cleanly against against 2.4.19-pre8.
        Nobody commented on it last time I posted it, and it does
        make compiling gcc easier, so I guess that makes it trivial patch
        monkey fodder.  Or am I making a silly mistake?
      c8e2aa59
    • Randy Hron's avatar
      [PATCH] remove space in cache names · 1f986d30
      Randy Hron authored
        Most /proc/slabinfo cache_names are in the format:
        cache_name.  There are a couple with spaces in the
        name, which is inconsistent and requires a special case
        when scripting.
      
        Changes "fasync cache" and "file lock cache" to have
        the usual underscore.
      1f986d30
    • William Lee Irwin III's avatar
      [PATCH] static list init page_alloc.c · 2618869b
      William Lee Irwin III authored
        inactive_list and active_list are global, yet they are repeatedly
        initialized using INIT_LIST_HEAD() in free_area_init_core(). This
        patch is originally due to Christoph Hellwig, and by some reports
        has been implementated before in 2.4-based trees by Andrea Arcangeli.
      2618869b
    • William Lee Irwin III's avatar
      [PATCH] remove macros from page_alloc.c · eef1d695
      William Lee Irwin III authored
        The memlist_* macros serve as nothing but an insulation layer from the
        Linux-native generic list operations. This patch removes them in favor
        of using generic list operations directly.
      eef1d695
    • William Lee Irwin III's avatar
      [PATCH] remove antiquated comment · 5a556f26
      William Lee Irwin III authored
        This comment, describing how to optimize for gcc-2.2.2, is so outdated
        it should be removed. It's also quite doubtful it should ever have been
        placed in this file at all (perhaps something under Documentation/ ?).
        This patch removes it.
      5a556f26
    • William Lee Irwin III's avatar
      [PATCH] make memclass() an inline · c453d5fe
      William Lee Irwin III authored
        memclass is too large to be a #define; it overflows 80 columns and does
        not make use of facilities available only to macros.
      
        This patch convert memclass() to be an inline function.
      c453d5fe
    • William Lee Irwin III's avatar
      [PATCH] duplicate decl in sched_init() · 2b227acb
      William Lee Irwin III authored
        I found this one while trying to straighten out bootstrap ordering
        issues elsewhere.
      
        There appears to be a duplicate declaration of rq in sched_init().
        This removes the nested declaration and otherwise leaves things alone.
      2b227acb
    • William Lee Irwin III's avatar
      [PATCH] correct zone_table comment · 5e04fa0a
      William Lee Irwin III authored
        The comment describing the usage of zone_table[] assumes the existence
        of an unsigned char page->zone field from the original implementation
        of page->zone size reduction. This patch corrects the comment to
        accurately describe the lookup mechanism used by page_zone() and also
        to mention explicitly the sole user of the table, page_zone().
      5e04fa0a
    • Rusty Russell's avatar
      [PATCH] TAGS creation should go into arch dirs · eaea1742
      Rusty Russell authored
      Playing with arch stuff does this to you.
      eaea1742
    • Rusty Russell's avatar
      [PATCH] Spelling · b9762f4a
      Rusty Russell authored
      Rusty Russell <rusty@rustcorp.com.au>: Oh, I feel so violated...:
        <sniff>
      b9762f4a
    • Peter Chubb's avatar
      [PATCH] bogus casts in ide-cd.c: · 244417ca
      Peter Chubb authored
        This patch against 2.5.19 gets rid of some bogus casts in ide-cd.c
        In my opinion the casts as is are bugs waiting to happen.
      244417ca
    • Kazuto Miyoshi's avatar
      [PATCH] fix for /proc operation: · d0f3b7fd
      Kazuto Miyoshi authored
        I found that 'max' pointer is not updated in proc_dointvec_minmax()
        and proc_doulongvec_minmax(), when I write smaller values than min to
        /proc/sys entry (and val<*min++ check becomes true.)
        This may lead to min/max checking of values with bogus maximum.
      d0f3b7fd
    • Dan Aloni's avatar
      [PATCH] fix NULL dereferencing in dcache.c · c4023a9c
      Dan Aloni authored
        Unrelated to my first dcache patch, this is something more crucial
        and should be applied first.
      
        fs/dcache.c:
         - handle d_alloc() returning NULL.
      c4023a9c