1. 06 Jan, 2003 7 commits
  2. 05 Jan, 2003 10 commits
    • Patrick Mochel's avatar
      Introduce struct kset. · 3e815107
      Patrick Mochel authored
      struct kset is what struct subsystem should have originally been called. It
      is a set of kobjects, and nothing more, with a much less confusing name than
      'subsystem.'
      
      struct kset contains an embedded kobject, making it possible to represent it
      in the object hierarchy, and sysfs. This also provides a means for objects
      to easily express a list of subordinate objects. 
      
      struct subsystem still exists, and contains an rwsem, which its subordinate
      ksets use to protect their lists. 
      
      An arbitrary number of ksets may belong to a subsystem. A ksets specifies
      the subsystem it belongs to via its ->subsys field. 
      
      struct subsystem also contains a default kset, which may be used without
      having to define a separate kset. 
      
      The objects that defined subordinate subsystems (bus and class drivers) have
      been converted to use subordinate ksets instead.
      
      
      Note that the usage of ksets is flexible. 
      - ksets may contain a list of objects of any type, not just kobjects.
      - The objects registered with a kset do not have to be registered.
      - ksets themselves do not have to be registered. One can be used by
        simply calling kset_init(). 
      - ksets do not need a name if they are not registered. 
      - Note however that locking must be done manually in these cases.
      3e815107
    • Patrick Mochel's avatar
      Merge osdl.org:/home/mochel/src/kernel/devel/linux-2.5-virgin · 5c29ea44
      Patrick Mochel authored
      into osdl.org:/home/mochel/src/kernel/devel/linux-2.5-core
      5c29ea44
    • Patrick Mochel's avatar
      Merge bk://linux.bkbits.net/linux-2.5 · efd526ef
      Patrick Mochel authored
      into osdl.org:/home/mochel/src/kernel/devel/linux-2.5-virgin
      efd526ef
    • Patrick Mochel's avatar
      Merge bk://linux.bkbits.net/linux-2.5 · d7677dc7
      Patrick Mochel authored
      into osdl.org:/home/mochel/src/kernel/devel/linux-2.5-virgin
      d7677dc7
    • Linus Torvalds's avatar
      Merge home.transmeta.com:/home/torvalds/v2.5/x86_64 · 2afbee76
      Linus Torvalds authored
      into home.transmeta.com:/home/torvalds/v2.5/linux
      2afbee76
    • Andi Kleen's avatar
      [PATCH] 2.5.54 AGP driver fixes for x86-64 · b45aba16
      Andi Kleen authored
      This is just to make x86-64 boot with IOMMU and compiled in AGP driver
      again.  Previously both AGP and the IOMMU code would set up an aperture,
      with AGP being winner, messing up pci_map_*.
      
      This is needed for the x86-64 update for 2.5.54 I sent earlier.
      
      Actually using /dev/agpgart still corrupts memory unfortunately, haven't
      tracked that down yet.
      
      I also commented on some (usually 64bit, but at least one 32bit) bugs in
      the driver too.
      
      These changes should be all nops on i386.
      
       - Export amd k8 init function for x86-64.  It needs to be called early
         by the iommu code.  Add some comments to warn about about that (the
         upcoming VIA and SIS K8 chipsets will have the same problem)
       - Declare gatt table as u32 following the AGP spec.
       - Comment some bugs.
      b45aba16
    • Andi Kleen's avatar
      [PATCH] x86-64 updates for 2.5.54 · 717db2f9
      Andi Kleen authored
      More x86-64 updates for 2.5.54.  Most noticeable change is that the
      64bit X server works again.
      
      This only changes x86-64 specific files.  It requires some AGP driver
      changes I'm sending separately.
      
       - Some Makefile cleanups from Sam Ravnborg
       - Make sure extended registers in 32bit processes are zeroed and not
         accessible/changeable from ptrace.  This is to avoid potential
         security bugs with non 64bit clean 32bit emulation functions (they
         often are overflow prone etc.)
       - Some 32bit emulation cleanups from Stephen Rothwell
       - Make copy_*_user source const to fix warnings.
       - Set fs/gs to dummy values when the 64bit segment base is set to not
         confuse the context switch (Karsten Keil, me)
      	* still one mysterious bug in this area unfortunately.
       - Make MAP_32BIT for 64bit processes only map in the first 31bit,
         because it is usually used to map small model code.  This fixes the X
         server crashes.  Some cleanups in this area.
       - Don't set O_LARGEFILE for 32bit open
       - Handle ptregs calls from 32bit syscall correctly.
       - Implement aio io_getevents for 32bit.
       - Remove buggy unused command handler in nfsd 32bit emulation.
       - Convert timespec in semtimedop (thanks to Anton for telling me about
         this)
       - Ignore long mode flag from 32bit modify_ldt.  This fixes Wine, which
         left it uninitialized (bug found by Karsten Keil)
       - Merge with i386
       - Handle new kallsyms
       - Remove some superfluous bootup printks
      717db2f9
    • Linus Torvalds's avatar
      Merge http://linux-scsi.bkbits.net/scsi-for-linus-2.5 · 4249e4ba
      Linus Torvalds authored
      into home.transmeta.com:/home/torvalds/v2.5/linux
      4249e4ba
    • James Bottomley's avatar
      Merge raven.il.steeleye.com:/home/jejb/BK/scsi-misc-2.5 · 755b8d21
      James Bottomley authored
      into raven.il.steeleye.com:/home/jejb/BK/scsi-for-linus-2.5
      755b8d21
    • Andries E. Brouwer's avatar
      [PATCH] scsi_scan.c · 3cf172fe
      Andries E. Brouwer authored
      Wondering why my CD-writer did not have a name in sysfs, I saw
      that when the name is longer than 50 bytes no name at all is used.
      The (much smaller) code below constructs a truncated name instead.
      3cf172fe
  3. 04 Jan, 2003 23 commits
    • Luca Barbieri's avatar
      [PATCH] Fix sysenter iopl · dae700f9
      Luca Barbieri authored
      This patch fixes the handling of IOPL when sysenter is used.
      
      Currently when entering kernel mode, IOPL is not changed and it is not
      presserved across context switches: thus, in the kernel, the IOPL value
      is random.
      
      This is not a problem when using iret, because it restores eflags, but
      the sysexit code currently doesn't, which means that that IOPL becomes
      random in user mode too which is of course not good.
      
      This patch fixes the problem by saving eflags across context switches.
      dae700f9
    • James Bottomley's avatar
      update ncr53c8xx to new dma_ API (needed to incorporate zalon) · a6257edd
      James Bottomley authored
      Also update zalon to C99 initialisers
      a6257edd
    • Patrick Mochel's avatar
      driver model: clean up struct device_class a bit. · 2e1c4037
      Patrick Mochel authored
      - Remove unused class_list.
      - Use lists in subordinate subsystems for storing lists of devices and
        drivers.
      - Rename 'drvsubsys' to 'drivers' and 'devsubsys' to 'devices', to be more
        meaningful.
      2e1c4037
    • Patrick Mochel's avatar
      driver model: clean up struct bus_type a bit. · 46dbdc4e
      Patrick Mochel authored
      - Remove devices list, in favor of using the list in the subordinate
        devices subsystem.
      - Rename devsubsys to 'devices' and drvsubsys to 'drivers'.
      - Use bus's rwsem when iterating over drivers, instead of the 
        subordinate driver subsystem's. (We use that one when adding the 
        driver, and binding it to devices).
      46dbdc4e
    • Patrick Mochel's avatar
      kobject: Introduce struct kobj_type. · 23066070
      Patrick Mochel authored
      This is the first step in morphing struct subsystem into something meaningful.
      
      A subsystem is defined simply as a list of kobjects of a certain type, which
      is far too generic. A subsystem should be representative of a large entity
      of code (i.e. a subsystem of the kernel), not just a simple list. 
      
      This changeset:
      
      - Creates struct kobj_type, a descriptor of the type a kobject is embedded
        in.
      
      - Extracts the fields that are specific to a particular object type from
        struct subsystem and puts them in struct kobj_type, which are
        - the object's release method.
        - the sysfs operations for the object type.
        - the default attributes of the object type.
      
      - Adds ptr to struct kobject to point to its type descriptor. 
      
      - Converts the existing subsystem definitions to define struct kobj_type. 
      
      
      struct kobj_type's are not registered, as they do not have any explicit
      representation in the object hierarchy, nor do they have any fields that
      need runtime initialization. 
      
      A kobject's ktype should be set when it is registered, like its subsystem.
      Note this obviates the need for defining a struct subsystem when an object
      type does not need to be kept in a global list. 
      23066070
    • Patrick Mochel's avatar
    • Patrick Mochel's avatar
      Merge bk://linux.bkbits.net/linux-2.5 · 8624ae3d
      Patrick Mochel authored
      into osdl.org:/home/mochel/src/kernel/devel/linux-2.5-virgin
      8624ae3d
    • James Bottomley's avatar
      29384203
    • Richard Hirst's avatar
      Add parisc Zalon SCSI card · 99ddcf1a
      Richard Hirst authored
      The Zalon card is a GSC 53c720 based card.  This driver adopts
      the ncr53c8xx driver for the purpose.
      99ddcf1a
    • Linus Torvalds's avatar
      Merge http://linux-isdn.bkbits.net/linux-2.5.isdn · 1d0619c5
      Linus Torvalds authored
      into home.transmeta.com:/home/torvalds/v2.5/linux
      1d0619c5
    • Kai Germaschewski's avatar
      Merge tp1.ruhr-uni-bochum.de:/home/kai/kernel/v2.5/linux-2.5 · 05cb64ba
      Kai Germaschewski authored
      into tp1.ruhr-uni-bochum.de:/home/kai/kernel/v2.5/linux-2.5.isdn
      05cb64ba
    • Kai Germaschewski's avatar
      ISDN/HiSax: "ops" structure for the shared xmit handling · 50765282
      Kai Germaschewski authored
      When separating out the duplicated xmit handling, we were lucky that
      we could reuse BC_Send_Data for our purposes. Introduce a more
      extensible "struct bc_l1_ops" instead, and initialize that in
      the code that provides the functionality, not in the users.
      50765282
    • Kai Germaschewski's avatar
      ISDN/HiSax: Remove unnecessary locking · 8119a9aa
      Kai Germaschewski authored
      Realize that *_empty_fifo() and *_fill_fifo() are always called
      under the card lock, so no additional protection when reading/writing
      fifos is needed.
      8119a9aa
    • Kai Germaschewski's avatar
      ISDN/HiSax: Un-inline jade_irq.c · 596e49ed
      Kai Germaschewski authored
      Same thing which just happened to hscx_irq.c - Use the struct
      bc_hw_ops instead of macros and inlining.
      596e49ed
    • Kai Germaschewski's avatar
      ISDN/HiSax: Un-inline hscx_irq.c · 7700b02a
      Kai Germaschewski authored
      Each driver for HSCX based cards defined some hardware access macros
      and #include'd hscx_irq.c. Instead, we now add the needed routines to
      the corresponding bc_hw_ops and use regular function calls. It's a slight
      bit less efficient, but shouldn't be noticable.
      7700b02a
    • Kai Germaschewski's avatar
      ISDN/HiSax: Use {isac,hscx}_{read,write} and friends · ef551c7e
      Kai Germaschewski authored
      Using {isac,hscx}_{read,write} instead of the low-level
      readreg/writereg simplifies the code a bit.
      ef551c7e
    • Kai Germaschewski's avatar
      ISDN/HiSax: Add B-Channel FIFO ops · 8fa894ae
      Kai Germaschewski authored
      Preparing for un-inlining hscx_irq.c, we add operations needed
      to access the B-Channel FIFO's, similar to what we already have
      for the D-Channel.
      8fa894ae
    • Kai Germaschewski's avatar
      ISDN/HiSax: Renaming ReadISAC -> isac_read etc. · 32610705
      Kai Germaschewski authored
      Basically only a cosmetic patch, with much renaming and a little
      rearranging of code.
      32610705
    • James Bottomley's avatar
      parisc update for 53c700/lasi700 · be7705e9
      James Bottomley authored
      mainly #include file shuffle
      be7705e9
    • Kai Germaschewski's avatar
      ISDN/HiSax: Use u8 instead of u_char · 9ca46b71
      Kai Germaschewski authored
      Just a simple search and replace, switch to the more commonly
      used "u8" type.
      9ca46b71
    • Kai Germaschewski's avatar
      ISDN/HiSax: Simplify readreg()/writereg() use · 24e904bd
      Kai Germaschewski authored
      In many cases, readreg()/writereg() users can be simplified by
      passing struct IsdnCardState instead of individual register
      addresses.
      24e904bd
    • Willem Riede's avatar
      fix ide-scsi oops with abort · 9696141f
      Willem Riede authored
      9696141f
    • Mikael Pettersson's avatar
      fix ide-cd/ide-scsi oopses after module unload · 5885ddb0
      Mikael Pettersson authored
      In 2.5 (the bug's been there since 2.5.42), rmmod:ing a
      modular IDE subdriver like ide-cd or ide-scsi and then
      rebooting causes an oops in device_shutdown(). This is because
      the IDE layer doesn't reset the drive->gendev.driver pointer
      that it previously set up to point to data structures in the
      subdriver module. device_shutdown() sees a non-NULL ->driver,
      dereferences it, and oopses.
      
      The patch below for 2.5.54 fixes two generic bugs related to
      unloading of modular IDE subdrivers, and one specific to ide-scsi:
      
      1. ata_attach() needs to set drive->gendev.driver = NULL
         when no specific driver claims the drive. This prevents a
         drive previously owned by a subdriver module from keeping
         its ->gendev.driver pointing into that module.
      
      2. ide_unregister_driver() needs to unregister &driver->gen_driver;
         this is to balance the corresponding register call in
         ide_register_driver(). [This part of the patch is originally
         by Patrick Mochel.]
      
      3. ide-scsi.c abuses ide_driver_t's busy field as a counter
         while the field in fact is a single-bit boolean. This causes
         the busyness of the driver to be incorrect while the driver
         is active. (From my recent patch for 2.4.20-ac2/2.4.21-pre2.)
      5885ddb0