1. 02 Mar, 2002 3 commits
    • Alexander Viro's avatar
      [PATCH] path_lookup() · a3806a80
      Alexander Viro authored
      	New helper:
      path_lookup(name, flags, nd)
      {
      	int err = 0;
      	if (path_init(name, flags, nd))
      		err = path_walk(name, nd);
      	return err;
      }
      
      Places doing that by hand converted to calling it.
      
      Actually, quite a few of them were doing equivalent of __user_walk()
      (getname() and if it was successful - call path_lookup() and putname()).
      Converted to calling __user_walk().
      a3806a80
    • Alexander Viro's avatar
      [PATCH] removal of LOOKUP_POSITIVE · 2dee55cd
      Alexander Viro authored
      	LOOKUP_POSITIVE is not needed anymore.  All callers of path_walk()
      treat -ENOENT and negative dentry the same way.  If you want a proof of
      correctness - I'll send it, but it's a couple of pages of induction, basically
      boiling down to "let's show that for any N we can replace the
                     if (lookup_flags & (LOOKUP_POSITIVE|LOOKUP_DIRECTORY))
                             break;
      in link_path_walk() with
                     if ((lookup_flags & (LOOKUP_POSITIVE|LOOKUP_DIRECTORY)) ||
      		   current->link_count <= N)
                             break;
      without changing behaviour of the system".  Pretty straightforward for
      N = 0, then we look for places that can lead to call link_path_walk()
      with current->link_count equal to N and show that if result of the test
      changes, behaviour of callers doesn't.  Since the depth of recursion is
      limited, we had shown that test in question can be replaced with if (1).
      And that's the only place in tree the ever checks for LOOKUP_POSITIVE.
      
      	The real reason behind that is very simple - indeed, suppose
      we get a negative dentry out of path_walk().  What the hell could we
      do with it?  Its parent isn't locked, so both the name and parent can
      change at any moment (could have changed already).  There used to be
      places that tried to play "let's get a negative dentry, lock its parent
      and start doing something".  All of them racy and all of them fixed
      in 2.3.  Fixed by switching to LOOKUP_PARENT...
      2dee55cd
    • Alexander Viro's avatar
      [PATCH] more reiserfs cleanups · e145fcfa
      Alexander Viro authored
      	More cleanups (getblk() use, etc.) in reiserfs (again, cleaning
      up after merge).
      e145fcfa
  2. 28 Feb, 2002 29 commits
    • Linus Torvalds's avatar
      Merge http://gkernel.bkbits.net/misc-2.5 · 29da67a0
      Linus Torvalds authored
      into penguin.transmeta.com:/home/penguin/torvalds/repositories/kernel/linux
      29da67a0
    • Linus Torvalds's avatar
    • Steven Cole's avatar
      This patch adds a help text for CONFIG_PHONE_IXJ_PCMCIA to · 30621ad6
      Steven Cole authored
      drivers/telephony/Config.help.  The text was obtained from
      Eric Raymond's Configure.help v2.97.
      30621ad6
    • Dave Kleikamp's avatar
      [PATCH] JFS cleanup · c39e9205
      Dave Kleikamp authored
        Cleanup - remove version and changelog.
        These don't belong in Linus' kernel.
      c39e9205
    • Linus Torvalds's avatar
      Merge · 141efd8b
      Linus Torvalds authored
      141efd8b
    • Linus Torvalds's avatar
      22e67847
    • Linus Torvalds's avatar
      Fix off-by-one error reported by Anton Lavrentiev: we no · 52f4fc0b
      Linus Torvalds authored
      longer count the idle thread in "nr_threads", so we should
      not discount it when returning sysinfo() information.
      52f4fc0b
    • Gerd Knorr's avatar
      [PATCH] update my credits entry · 35365501
      Gerd Knorr authored
      This patch updates my entries in CREDITS + MAINTAINERS.
      35365501
    • Linus Torvalds's avatar
      Merge http://linuxusb.bkbits.net/linus-2.5 · 069c8414
      Linus Torvalds authored
      into penguin.transmeta.com:/home/penguin/torvalds/repositories/kernel/linux
      069c8414
    • Linus Torvalds's avatar
      Merge · 6396778f
      Linus Torvalds authored
      6396778f
    • David Woodhouse's avatar
      4f8ea612
    • Alexander Viro's avatar
      [PATCH] conversion to vfs_stat() for PPC64 · 3ae2f9f3
      Alexander Viro authored
      	* stat() variants on ppc64 converted to use of vfs_stat() and its ilk.
      	* missing LFS checks added.
      3ae2f9f3
    • Alexander Viro's avatar
      [PATCH] (7/7) kdev_t removals · 237c03ea
      Alexander Viro authored
      * minor cleanup in jffs (passing superblock instead of ->[si]_dev).
      237c03ea
    • Alexander Viro's avatar
      [PATCH] (6/7) kdev_t removals · 94982b1e
      Alexander Viro authored
      * in intermezzo a bunch of places where we are comparing ->s_dev
        are replaced with comparing pointers to superblocks.
      94982b1e
    • Alexander Viro's avatar
      [PATCH] (5/7) kdev_t removals · 6c4971a8
      Alexander Viro authored
      * in reiserfs: a new caller of getblk() converted to sb_getblk() +
        a bunch of places converted to use of ->s_id.
      6c4971a8
    • Alexander Viro's avatar
      [PATCH] (4/7) kdev_t removals · c9fc74af
      Alexander Viro authored
      * write_some_buffers(), write_unlocked_buffers(), wait_for_buffers(),
        wait_for_locked_buffers() and wait_for_some_buffers() converted
        from kdev_t to struct block_device *.
      c9fc74af
    • Alexander Viro's avatar
      [PATCH] (3/7) kdev_t removals · de6d0d2b
      Alexander Viro authored
      * sync_buffers() split in two functions (sync_buffers() and
        sync_all_buffers()).  Callers of sync_buffers(NODEV) are
        using the latter, those who actually pass a device - the former.
      * sync_buffers() switched from kdev_t to struct block_device *.
      de6d0d2b
    • Alexander Viro's avatar
      [PATCH] (2/7) kdev_t removals · 2d849bd1
      Alexander Viro authored
      * all remaining callers of sync_inodes() and sync_supers() pass
        NODEV as an argument, so we can make them void(void).  Dead
        code removed.
      2d849bd1
    • Alexander Viro's avatar
      [PATCH] (1/7) kdev_t removals · 7155112c
      Alexander Viro authored
      * new function - fsync_bdev() (analog of fsync_dev(), but takes
        struct block_device * instead of kdev_t.  Callers of fsync_dev()
        that have struct block_device in question are using fsync_bdev()
        now.
      * old code for fsync_dev(NODEV) had been moved to sys_sync().
        Other callers of fsync_dev(NODEV) are calling sys_sync() now.
      * fsync_dev() became a wrapper fro fsync_bdev().
      * sync_dev() (not used anywhere in the tree) is gone.
      * i2oblock.c had fsync_dev() called in ->release().  Removed.
      * s390/block/xparm.c was doing fsync_dev() on its devices in
        cleanup_module().  Removed.
      7155112c
    • Tim Waugh's avatar
      [PATCH] 2.5.6-pre1: parport PCI card hooks · 8a0acc94
      Tim Waugh authored
      This patch adds some necessary PCI card hooks.  Patch originally from
      VScom IIRC.
      
      2001-11-14  Tim Waugh  <twaugh@redhat.com> [sent 2001-11-27]
      
      	* drivers/parport/parport_pc.c,
      	drivers/parport/parport_serial.c: PCI card hooks.
      	* drivers/parport/ChangeLog: Updated.
      8a0acc94
    • Tim Waugh's avatar
      [PATCH] 2.5.6-pre1: parport and O_NONBLOCK · d5d28282
      Tim Waugh authored
      This patch makes lp and ppdev do the Right Thing regarding O_NONBLOCK.
      
      2002-01-04  Tim Waugh  <twaugh@redhat.com>
      
      	* include/linux/parport.h: Define a special inactivity timeout
      	meaning 'caller wants to use O_NONBLOCK'.
      	* drivers/char/lp.c: Support O_NONBLOCK properly.
      	* drivers/char/ppdev.c: Likewise.
      	* drivers/parport/parport_pc.c: Likewise.
      	* drivers/parport/ChangeLog: Updated.
      d5d28282
    • Tim Waugh's avatar
      [PATCH] 2.5.6-pre1: shut lp up · e20c06c0
      Tim Waugh authored
      This patch makes lp quieter in the common case that a printer does
      _not_ speak ECP. (People have been writing to me worried that the
      message means something bad.)
      
      2002-02-26  Tim Waugh  <twaugh@redhat.com>
      
      	* drivers/char/lp.c: Be quiet.
      e20c06c0
    • Tim Waugh's avatar
      [PATCH] 2.5.6-pre1: parport 'writable' fix · 51828208
      Tim Waugh authored
      This patch fixes a problem with parport that shows up when interrupts
      are specified.  I sent this to Marcelo for 2.4.19-pre2 a short time
      ago.
      
      2002-02-25  Tim Waugh  <twaugh@redhat.com>
      
      	* drivers/parport/parport_pc.c: Fix a bug spotted by Mikael
      	Pettersson.
      	* drivers/parport/ChangeLog: Updated.
      51828208
    • Martin Dalecki's avatar
      [PATCH] 2.5.6-pre1 IDE clean 14 · 48ba6e98
      Martin Dalecki authored
      Most importantly this patch is making ide.c use the
      new automagic for module initialization lists and further
      preparing the rest of the code in question here for proper
      module separation. Despite this the CMOS probe has been removed
      as well... *Iff*, which I don't expect, this breaks anything
      it can be reintroduced easely. During this effort an actual bug
      in the initialization of the main module has been uncovered as well.
      a quite serious BUG has been tagged in ide-scsi.c as well, but
      as far as now I just didn't get along to actually fixing it.
      (The patch is big enough as it is).
      
      Details follow:
      
      - Kill *unused* ide_media_verbose() funciton.
      
      - Remove the unnecessary media and supports_dma fields from
          ide_driver_t.
      
      - Remove the global name field from ide_driver_t struct by pushing it
          down to the places where it's actually used.
      
      - Remove the unused hwif_data field from ide_hwif_t.
      
      - Push the supports_dsc_overlap condition up to the level where it
          belongs: disk type as well.
      
      - Make the initialization of ide main ide.c work with the new module
          initialization auto-magic instead of calling it explicitly in
          ll_rw_block.c This prevents the ide_init() from being called twice. We
          have BTW. renamed it to ata_module_init(), since  ata is more adequate
          then ide and xxx_module_init corresponds better to the naming
          conventions used elsewhere throughout the kernel.
      
          This BUG was there before any ide-clean.  It was worked around by a
          magic variable preventing the second call to succeed.  We have removed
          this variable in one of the previous patches and thus uncovered it.
      
      - Kill proc_ide_read_driver() and proc_ide_write_driver(). The drivers
          already report on syslog which drives they have taken care of.  (Or
          at least they should). In esp. the proc_ide_write_driver() was just
          too offending for me.  Beleve it or not the purpose of it was to
          *request a particular* driver for a device, by echoing some magic
          values to a magic file...
          More importantly this "back door" was getting in the way of a properly
          done modularization of the IDE stuff.
      
      - Made some not externally used functions static or not EXPORT-ed.
      
      - Provide the start of a proper modularization between the main module
          and drivers for particular device types. Changing the name-space
          polluting DRIVER() macro to ata_ops() showed how inconsistently the
          busy (read: module  busy!) field from ide_driver_t
          is currently used across the    different device type modules.
          This has to be fixed soon.
      
      - Make the ide code use the similar device type ID numbers as the SCSI
          code :-).  This is just tedious, but it will help in a distant
          feature. It helps reading the code anyway.
      
      - Mark repettitive code with /* ATA-PATTERN */ comments for later
          consolidation at places where we did came across it.
      
      - Various comments and notes added where some explanations was missing.
      48ba6e98
    • Martin Dalecki's avatar
      [PATCH] 2.5.6-pre1 IDE clean 13a · b62bbbcb
      Martin Dalecki authored
      This is finally moving the ide-pci.c file into a shape where
      the host chip detection lists can finally be moved to where they
      belong - into the particular chipset specific files.
      
      This is accomplished, by a rather obivous removal of macro magic,
      which was just making entries to the global device type
      list nonfunctional, instead of making them conditional on the
      corresponding CONFIG_BLHA options.
      
      The second thing was to add a flag field to the device recognition
      list, which made it possible to compress many of the
      multi || chip id conditionals go away.
      
      The only other file affected is ide.h - here is the change in the size
      of the name field, which apparently slipped through ide-clean-12...
      b62bbbcb
    • Martin Dalecki's avatar
      [PATCH] 2.5.5 IDE cleanup 12 · c0bf9449
      Martin Dalecki authored
      1. Add some notes to Documentation/driver-model.txt about how and
           and where to mount the driverfs.
      
      2. Reorganize and prepare the PCI scanning code for proper device
      dependant splitup. Basically tedious cleanup of macro games.
      
      3. Use struct pci_dev name field as the name of PCI host dapaters
      instead of invention ambigious IDE special names. This makes
      the kernel bootup messages look a bit shifted, since those names are bit
      longer, but makes up for consistance and should allow one later
      to rearage things to fit into the generic PCI device initialization
      mechanisms provided by the kernel.
      
      4. Set 3. Allowed us to make the host chip specific
      pci_init_xxx class functions have the proper signature of
      module initializers. This will make it possible to make true
      modules out of them later.
      
      5. Make some functions in cmd64x.c static which where not used
      elsewhere.
      
      6. rename ide_special_settings to trust_pci_irq - this is reflecting
      it's functionality better. And make it match the pci device vendor
      as well as the device ID. It was a BUG to match only the device id!.
      
      7. Make the chanell setup more tollerant for BIOS-es which don't
      report IO and MEM bases properly. The code found previously there
      tryed but was inconsistant.
      
      8. Start to use proper terminology in ide-pci.c: host chip, channel,
      drive instead of hwif, port, drive...
      
      9. Enlarge the name field from ide_hwif_t to 64 bytes. It was only 6
      previously and there where custom names there which where exceeding
      this!!! But since we use the proper pci devce name there now instead,
      we had to extend the size of this field anyway.
      
      10. Add some explanatory comments and fix misguiding comments here and
      there.
      
      11. Kill the proc_ide_write_config and proc_ide_read_config brain
      damage! Those where backdoors to the pci configuration registers on PCI
      devices and IO registers on directly connected ISA ATA controllers.
      They didn't discrement between them!
      
      Access to both of them *simply* doesn't belong into an operating system,
      which is supposed to abstract out the access to hardware! Did I mention
      that access to both can be done from user land without an IDE special
      interface! Any program which was using them (I hardly beleve there is
      one) just deserves to loose. The programmer responsible for it
      deserves to be fired immediately.
      
      12. Move ide_map_xx and ide_unmap_xx tinny bio level wrappers away
      from the "global" ide.h to where those are actually used and kill
      trivial wrappers for otherwise generic bio_ routines. Just fighting
      code obfuscation. The "rq->bio is used or is not there" brain
      damage in ide-taskfile.c has to be fixed later. Possibly by killing
      ide-taskfile.c alltogether, becouse this should be a driver for
      users and not a driver for ATA disk disaster recovery companys...
      
      13. Kill hwif->pci_devid and hwif->pci_venid. Just use the already
      present hwif->pci_dev field instead.
      
      14. Kill unused big switch ide_reinit_drive function. This silly
      functon was switching upon every possible device driver cathegory
      and calling the correspondng reinit function directly. This
      idiocy was fortunately not used.
      
      That's all... Most will be clear if one starts looking at the changes
      in ide.h of course...
      
      In contrast to the previous patches this one is actually fixing two
      serious bugs.
      
      
      The next direct step will be to kill the sigle place global PCI device
      type recognition list from ide-pci.c by pushing the entries to where
      they belong -> the host chips setup modules.
      c0bf9449
    • Martin Dalecki's avatar
      [PATCH] 2.5.6-pre1 IDE cleanup 11 · ce43a9ec
      Martin Dalecki authored
      1. Start of driver tree usage upon suggestion from Pavel Machek.
           This still will needs a lot of further work in the future, but
           the current code doesn't hurt anything and allowa Pavel to work
           further from the base line. In esp. natively implemented
            suspend to file requires this - which I would love to see comming
           in,since I'm quite frequently using a notebook myself.
      
      2. Kill the _IDE_C macro, which was playing games on entierly
           unnecessary declarations inside of header files in esp ide_modes.h
      
      3. Replace the functionally totally equal system_bus_block() and
           ide_system_bus_speed() functions with one simple global
           variable: system_bus_speed. This saves quite a significatn amount of
           code. Unfortunately this is the part, which is makeing this
           patch to appear bigger then it really is...
      
      4. Use ide_devalidate_drive() directly instead of idedisk_revalidate().
      
      5. Kill conditional CONFIG_KMOD as well as some other minor tweaks.
      
      Well this isn't that much in terms of functionality,  but it took me
      quite q bit of time to catch up on the patch-2.5.5.gz ;-)
      ce43a9ec
    • Martin Dalecki's avatar
      [PATCH] 2.5.6-pre1 IDE cleanup 10 · f0a86f5a
      Martin Dalecki authored
      This is finishing the cleanup parts already started in ide-clean-9.
      
      It kills the ide_register_module() and ide_unregister_module() as well
      as associated idiosyncracies alltogether. It turns out
      that this patch is actually fixing a bug which was present in the
      driver before: the sub-module initialization functions where called
      at least twice - which is an abundance.
      
      Tough there is a bit of global namespace pollution caused by this
      patch - but I'm aware of it and will fix it just a bit later.
      (The terminology used inside the IDE code is anyway nothing common
      else in the linux universum...)
      
      The next targets will be:
      
      1. Code obfuscation by "wrappers" around generic BIO level functions.
      
      2. ide_hwgroup_t - which is only used to serialize multiple
      discs on the same interrupt and similar. This is however a tough one.
      
      3. There is a plenty of code waste in the chipset drivers, where there
      is baroque informative code for the proc file system for static stuff,
      which in fact belongs just to syslog(). In fact the default RedHat
      distribution kernel is killing this gratitious abuse of the /proc
      concept since a long long time...
      
      I'm still awaiting the day of /proc/GPL, where GPL contains the
      full text of it...
      f0a86f5a
    • Linus Torvalds's avatar
      Shrink icache more aggressively - if we free the dentries, · 38b20d21
      Linus Torvalds authored
      go ahead and free the inodes too, don't try to age them any
      more (the aging has been done on a dentry level).
      38b20d21
  3. 27 Feb, 2002 8 commits