1. 28 Feb, 2002 4 commits
    • 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
  2. 27 Feb, 2002 25 commits
  3. 26 Feb, 2002 11 commits
    • Linus Torvalds's avatar
      Merge bk://bk.arm.linux.org.uk · b324327d
      Linus Torvalds authored
      into penguin.transmeta.com:/home/penguin/torvalds/repositories/kernel/linux
      b324327d
    • Brett Pemberton's avatar
      [PATCH] 2.5 scsi changes : qlogicfas.c fixed (resend) · dde3d25b
      Brett Pemberton authored
      This patch allows my qlogic pcmcia scsi card to compile again, as broken
      by the recent scsi layer changes. 
      
      Despite davem's apparent suggestion that it'd be better to rewrite the
      driver, i'd rather not _just_ right now :)
      
      	/ Brett Pemberton
      dde3d25b
    • Dave Jones's avatar
      [PATCH] MTD update. · 5a22d00c
      Dave Jones authored
      Numerous bugfixes brought forward from 2.4. I added some quick bio fixes
      to mtdblock.c, which seemed to work for me whilst testing JFFS2 changes.
      5a22d00c
    • Dave Jones's avatar
      [PATCH] updates. · 34a7eea9
      Dave Jones authored
      Forward ports from 2.4, Various janitor bits, and some fixes by me to
      make the thing work again in 2.5.  I munged the MTDRAM driver to work
      also (seperate patch to follow), and it seems to work.
      
      David Woodhouse gave this the once over, and approved the changes.
      Complete changelog below:
      
      o   Don't create two slabcaches with the same name.
      o   Don't corrupt eraseblock lists on mount
      o   Don't mark nodes obsolete during mount
      o   __attribute__((packed)) on the node definitions.
      o   Fix up() without down() in jffs2_readdir().
      o   Fix duplicate version number usage - s/highest_version++/++highest_version/
      o   Fix (i.e. implement) mtime/ctime on directories.
          maybe too busy with the bk stuff
      o   Don't allow hardlinks of directories.
      o   s/(mode&S_IFMT)==S_IFLNK/S_ISLNK(mode)/ et al to keep Al happy.
      o   Fix for garbage-collection of holes, where we used to write nodes out
          with csize/dsize swapped. Workarounds for existing such brokenness.
      o   Improve wear levelling by rotating node lists on mount, to avoid starting
           at one end of the flash every time.
      o   Remember to get internal inode-semaphore on symlink operations.
      34a7eea9
    • Linus Torvalds's avatar
      update version · efc9d68f
      Linus Torvalds authored
      efc9d68f
    • Neil Brown's avatar
      [PATCH] PATCH 16/16: NFSD: TCP: enable NFS over TCP via config option · 51cba214
      Neil Brown authored
      Enable NFS over TCP via config option
      51cba214
    • Neil Brown's avatar
      [PATCH] PATCH 15/16: NFSD: TCP: Limit number of active tcp connections to an RPC service · afdb4fa2
      Neil Brown authored
      Limit number of active tcp connections to an RPC service
      
      If a connection comes in and that results in number of
      connections being more than 5 times the number of threads,
      then we close a connection.
      
      We randomly drop with the oldest or the newest connection.
      
      Thus if we are flooded with connection requests, some will
      get in and hopefully stay long enough to service at least one request.
      afdb4fa2
    • Neil Brown's avatar
      [PATCH] PATCH 14/16: NFSD: TCP: Declare max response sizes for NFS and NLM · 4e2f6bfe
      Neil Brown authored
      Declare response sizes for nfs/lockd requests
      
      This allows sndbuf reservation to be more accurate.
      
      For lockd we just say "0" for now, meaning assume the max.
      This could be improved, but it isn't critical.
      4e2f6bfe
    • Neil Brown's avatar
      [PATCH] PATCH 13/16: NFSD: TCP: Reserve space on sndbuf so we never block when writing · a87d7392
      Neil Brown authored
      Make sure there is alway adequate sndbuf space for replies.
      
      We keep track of how much space might be needed for replies
      and never dequeue a request unless there is adequate space
      for a maximal reply.  We assume each request will generate a maximal
      sized reply until the request is partly decoded.
      Each RPC program/procedure can specify the maximum size
      of a reply to the precedure (though they don't yet).
      
      The wspace callback is used to enqueue sockets that may be waiting
      for sndbuf space to become available.
      
      As there should always be enough buffer space to the full
      reply, the only reason that sock_sendmsg could block is due
      to a kmalloc delay.  As this is likely to be fairly quick (and if
      it isn't the server is clagged anyway) we remove the MSG_DONTWAIT
      flag, but set a 30 second timeout on waiting.  If the wait
      ever times out, we close the connection.  If it doesn't we can
      be sure that we did a complete write.
      
      
      When a request completes, we make sure that the space
      used for the reply does not exceed the space reserved.  This
      is an internal consistancy check.
      
      This patchs sets the sndbuf and rcvbuf sizes for all sockets
      used for rpc service.  This size if dependant on the servers bufsize (S) and
      partially on the number of threads (N).
      
      For UDP
          sndbuf == 5*S
          rcvbuf == (N+2)*S
      for TCP
          sndbuf == N*S
          rcvbuf == 3*S
      
      see code for rationale (in comments).
      a87d7392
    • Neil Brown's avatar
      [PATCH] PATCH 12/16: NFSD: TCP: Close idle TCP connections · cbf593fc
      Neil Brown authored
      Close idle rpc/tcp sockets
      
      We split the list of sv_allsocks into two, one
      of permanent sockets (udp, tcp listener) and one
      of temporary sockets (tcp data).
      
      Whenever we complete a successful receive on a temp socket,
      it gets pushed to the end of the list.
      
      Whenever a thread wants to do something, it first checks if
      the oldest temp socket has not has a receive for 6 mintutes
      (should possibly be configurable).  It so, we simulate
      a close.
      
      Finally we make sure that threads wake up every few minutes
      so that if the server is completely idle, all temp
      sockets will get closed.
      cbf593fc
    • Neil Brown's avatar
      [PATCH] PATCH 11/16: NFSD: TCP: close bad connections · 84e9f22a
      Neil Brown authored
      Detect and close tcp connections that we cannot work with.
      
      If an rpc fragment that arrives on a tcp connection
      is non-terminal or too large for our buffer, then we
      have to close the connection.
      Also, if a write fails on a tcp connection, we close
      the connection.
      84e9f22a