1. 07 Aug, 2003 2 commits
    • Patrick Mochel's avatar
      [power] Improve device suspend/resume sequence. · 9c823fa4
      Patrick Mochel authored
      - Split calls into 
        - device_pm_suspend() [ Saving device state. ]
        - device_pm_power_down() [ Powering devices down. ]
        - device_pm_power_up() [ Powering devices up. ]
        - device_pm_resume() [ Restoring device state. ]
      
      - Walk local dpm_active list when suspending devices, and move devices to 
        dpm_suspended list when ->suspend() is called. 
      - Walk dpm_suspended list to power down devices (with interrrupts enabled.)
        - Try to power down devices with IRQs on. 
        - If they succeed, move them to dpm_off list.
        - If they return -EAGAIN, move them to dpm_off_irq list. 
      - Disable interrupts and suspend devices needed interrupts off. 
      
      - Do converse on resume 
        - power on devices that need interrupts off and move them to 
          dpm_suspended.
        - Enable interrupts.
        - Power on all other devices and move them to dpm_suspended.
        - Restore state of all devices and move them to dpm_active. 
      9c823fa4
    • Patrick Mochel's avatar
      Merge osdl.org:/home/mochel/src/kernel/devel/linux-2.5-virgin · 44a245c3
      Patrick Mochel authored
      into osdl.org:/home/mochel/src/kernel/devel/linux-2.5-power
      44a245c3
  2. 06 Aug, 2003 8 commits
    • Jens Axboe's avatar
      [PATCH] Proper block queue reference counting · ace416a3
      Jens Axboe authored
      To be able to properly be able to keep references to block queues,
      we make blk_init_queue() return the queue that it initialized, and
      let it be independently allocated and then cleaned up on the last
      reference.
      
      I have grepped high and low, and there really shouldn't be any broken
      uses of blk_init_queue() in the kernel drivers left.  The added bonus
      being blk_init_queue() error checking is explicit now, most of the
      drivers were broken in this regard (even IDE/SCSI).
      
      No drivers have embedded request queue structures. Drivers that don't
      use blk_init_queue() but blk_queue_make_request(), should allocate the
      queue with blk_alloc_queue(gfp_mask). I've converted all of them to do
      that, too. They can call blk_cleanup_queue() now too, using the define
      blk_put_queue() is probably cleaner though.
      ace416a3
    • Linus Torvalds's avatar
      Merge bk://kernel.bkbits.net/davem/net-2.5 · 7dc429b6
      Linus Torvalds authored
      into home.osdl.org:/home/torvalds/v2.5/linux
      7dc429b6
    • Jens Axboe's avatar
      [PATCH] Fix bio RW_AHEAD test · 63fb0aa4
      Jens Axboe authored
      This patch fixes the BIO_RW_AHEAD being tested at the wrong end
      in the bio layer.
      63fb0aa4
    • Andrew Morton's avatar
      [PATCH] remove PF_READAHEAD · 7ec6fb01
      Andrew Morton authored
      The problem with PF_READAHEAD is that if someone does a non-GFP_ATOMIC memory
      allocation we can enter page reclaim and then call writepage, while
      PF_READAHEAD is set.  The block layer then drops writes or the wrong reads on
      the floor.  It can cause data loss.
      
      A fix is complex (well, intrusive).  Given that the readahead code is now
      skipping the entire readahead attempt if the queue is congested, the setting
      of PF_READAHEAD probably is not doing anything useful anyway, so simply
      remove it.
      7ec6fb01
    • Dave Jones's avatar
      [PATCH] Athlon Machine Check fix · a9c7b26b
      Dave Jones authored
      There seemed to be increase in Athlon users reporting MCEs in 2.6 that
      they never saw in 2.4 and I didn't buy the "2.6 pushes hardware harder"
      for a second given folks are running 2.4+preempt+O(1) etc patchkits
      without problems.
      
      So I did a mini-audit of the mcheck code.
      
      How embarressing. Another fix that went into 2.4 that never made
      it forward. Once I'm done with various Red Hat administrivia
      I'll see if I can devote some time to going through the changesets
      mailing list. I wonder just how many other really stupid bugs
      like this got fixed and not brought forward.
      a9c7b26b
    • David S. Miller's avatar
      Merge davem@nuts.ninka.net:/home/davem/src/BK/net-2.5 · 9bba0d1c
      David S. Miller authored
      into kernel.bkbits.net:/home/davem/net-2.5
      9bba0d1c
    • Linus Torvalds's avatar
      Merge bk://cifs.bkbits.net/linux-2.5cifs · 29fa971b
      Linus Torvalds authored
      into home.osdl.org:/home/torvalds/v2.5/linux
      29fa971b
    • Linus Torvalds's avatar
      Merge bk://bk.arm.linux.org.uk/linux-2.5-pcmcia · a58eef7f
      Linus Torvalds authored
      into home.osdl.org:/home/torvalds/v2.5/linux
      a58eef7f
  3. 07 Aug, 2003 3 commits
    • Russell King's avatar
      [PCMCIA] Report subsystem vendor/device IDs · 5dda7b29
      Russell King authored
      In order to properly track down who needs to program the IRQ MUX
      register, add the subsystem vendor and device IDs to the kernel
      message indicating discovery of the cardbus bridge.
      5dda7b29
    • Russell King's avatar
      [PCMCIA] Disable IRQ steering and don't change the IRQ MUX register. · 4c698cc5
      Russell King authored
      The IRQ steering code operates too early at present, and actually
      prevents us detecting ISA interrupts.
      
      We should not touch the IRQ MUX register on TI bridges - only the
      machine itself knows the right value for this.  The kernel doesn't
      have the knowledge to know what function the cardbus controllers
      multi-function pins have been assigned by the hardware manufacturer.
      4c698cc5
    • Russell King's avatar
      [PCMCIA] Fix cardbus init failure paths. · 054446cf
      Russell King authored
      Currently, yenta does not try to clean up after an error occurs while
      initialising a cardbus socket.  This cset ensures that we release
      resources.  We also claim the cardbus MMIO memory resource.
      054446cf
  4. 06 Aug, 2003 17 commits
    • Adam Belay's avatar
      [PCMCIA] Fix PnP Probing in i82365.c · 6b8ed7d3
      Adam Belay authored
      pnp_x_valid returns 1 if valid.  Therefore we should be using
      !pnp_port_valid.  Also cleans up some formatting issues.
      6b8ed7d3
    • David S. Miller's avatar
      Merge nuts.ninka.net:/home/davem/src/BK/network-2.5 · 2db950ee
      David S. Miller authored
      into nuts.ninka.net:/home/davem/src/BK/net-2.5
      2db950ee
    • Patrick Mochel's avatar
      [power] Add PM info structure to struct device and PM registration functions. · 63dd56a0
      Patrick Mochel authored
      - struct device_pm_info 
        - Defined in include/linux/pm.h.
        - Statically allocated in struct device (->power)
        - Body is empty if CONFIG_PM=n
      
      - deivce_pm_{add,remove}
        - Called from device_{add,del} respectively.
        - Adds device to internal list of power managed objects and creates
          attribute group for device. 
          (Group currently empty, but placeholder directory is created for now)
        - Are defined as empty statc inline's when CONFIG_PM=n.
      63dd56a0
    • David S. Miller's avatar
      Merge http://linux-lksctp.bkbits.net/lksctp-2.5 · f6578e8d
      David S. Miller authored
      into nuts.ninka.net:/home/davem/src/BK/net-2.5
      f6578e8d
    • Stephen Hemminger's avatar
      [NET] X.25 async net_device fixup · aa2b4427
      Stephen Hemminger authored
      Convert X.25 async driver to have dynamic net_device's.
      This driver is a lot like SLIP so the code changes were similar.  
              - Added similar locking to SLIP
              - replaced code that snooped for MTU changes with the
                net_device change mtu callback.
              - cleaned up the statistics by using the net_device_stats structure.
      
      Patch is against 2.6.0-test2.
      
      Not sure if anyone ever uses this.  I tested by bringing up an x.25 async
      line using a modified version of slattach.
      aa2b4427
    • Stephen Hemminger's avatar
      [NET] Fix X.25 use after free. · ee1dc142
      Stephen Hemminger authored
      The conversion from cli/sti to locking in X.25 must not have been tested
      on a real SMP with memory debugging enabled.  It OOPS right away if
      I do:
              modprobe x25; ifconfig -a
      
      The problem is that it dereferences the socket after it has already been
      freed.  The fix for this is to make the call to sock_put, later in
      x25_destroy_socket do the free.  Also, need a go to avoid references
      in x25_release.
      ee1dc142
    • Stephen Hemminger's avatar
      [NET] Fix use after free in AX.25 · ca8c5e0e
      Stephen Hemminger authored
      This patch is against 2.6.0-test2.  The problem is that the ax25_destroy_socket
      function frees the socket buffer, but then ax25_release dereferences this causing
      an OOPS.  To reproduce:
              modprobe ax25; ifconfig -a
      
      Replaced sk_free with sock_put which will free if this is the last reference.
      ca8c5e0e
    • Stephen Hemminger's avatar
      [NET] Convert ROSE to seq_file · bdba9fe9
      Stephen Hemminger authored
      The existing ROSE /proc interface has no module owner, and doesn't check for
      bounds overflow.  Easier to just convert it to the seq_file wrapper functions.
      
      This patch is against 2.6.0-test2 (offsets assume earlier patch).
      bdba9fe9
    • Stephen Hemminger's avatar
      [NET] Dynamically allocate net_device structures for ROSE · 6ae0b08d
      Stephen Hemminger authored
      This patch changes the ROSE protocol to allocate an array of pointers and each network device
      separately.  This sets up later change where network_device object's are released on last use
      which may be after the module is unloaded.
      
      The patch is against 2.6.0-test2 (though this code hasn't changed in a long time).
      
      
      Allocation is done via alloc_netdev so the dev->priv area is already reserved and
      doesn't need to be allocated separately. 
      6ae0b08d
    • Patrick Mochel's avatar
      Merge osdl.org:/home/mochel/src/kernel/devel/linux-2.5-core · 274e497b
      Patrick Mochel authored
      into osdl.org:/home/mochel/src/kernel/devel/linux-2.5-power
      274e497b
    • Patrick Mochel's avatar
      [sysfs] Add attribute groups · 7bf68565
      Patrick Mochel authored
      Attribute groups provide the ability to register a set of sysfs attributes
      for a kobject all at once, and optionally create a subdirectory to hold 
      them.
      
      The constructs are simple:
                                                                                                               
      struct attribute_group {
              char                    * name;
              struct attribute        * attrs;
      };
      
      int sysfs_create_group(struct kobject *, struct attribute_group *);
      void sysfs_remove_group(struct kobject *, struct attribute_group *);
      
      
      If ->name is not NULL, then we create a subdirectory of that name to hold
      the attributes. We then iterate over ->attrs and create a file for each,
      in the subdirectory if we created one.
      
      This prevents one from having to register a kobject (and define a new
      kobj_type) to create a subdirectory for a group of attributes. Attributes
      currently defined in that way can be converted to use attribute_groups
      easily, with one caveat:
      
      The attributes that are added for a kobject, even if in a subdirectory,
      must be declared as the high-level attribute type (with an embedded struct
      attribute) for the kobject, and conform to the kobj_type's calling
      convention for reading/writing attributes.
      
      The kobject that you're creating attributes for owns the directory, and
      will assume ownership of the subdirectory. sysfs will reference this
      kobject, and it's kobj_type, when the attribute file is opened to
      determine the methods for reading/writing the attribute.
      
      sysfs will call the kobj_type's show()/store() methods, which will convert
      the kobject into a high-level object type, and convert the attribute into
      a high-level attribute type, which (depending on the kobj_type) is
      expected to have a show() and/or store() method.
      
      Note that this makes it only slightly easier to create attributes en masse,
      though it is a bit technically superior, since it doesn't require a new 
      kobj_type and kobject register. More will come in this area.. 
      7bf68565
    • Patrick Mochel's avatar
      [power] Split device PM functions · 2d7681a4
      Patrick Mochel authored
      - Create drivers/base/power/
      - Move drivers/base/power.c there.
      - Split into shutdown.c suspend.c and resume.c
      2d7681a4
    • Patrick Mochel's avatar
      [power] Move pm.c and mark functions depcrecated. · f670dfba
      Patrick Mochel authored
      - Move kernel/pm.c to kernel/power/pm.c 
      - Move poweroff sysrq registration to kernel/power/poweroff.c
      - Mark pm_* functions deprecated to prevent new uers. 
      f670dfba
    • Steve French's avatar
      Fix blocksize and allocation size mismatch · e8aea2e4
      Steve French authored
      e8aea2e4
    • Patrick Mochel's avatar
      [power] Fix #ifdef in ACPI sleep code. · 49bb8042
      Patrick Mochel authored
      Remove dependency on CONFIG_SOFTWARE_SUSPEND, since CONFIG_ACPI_SLEEP is 
      sufficient. 
      
      From Pavel Machek.
      49bb8042
    • Patrick Mochel's avatar
      [power] Fix some incorrect comments. · 0bc118af
      Patrick Mochel authored
      From Pavel Machek.
      0bc118af
    • Patrick Mochel's avatar
      Merge osdl.org:/home/mochel/src/kernel/devel/linux-2.5-virgin · 1ab04085
      Patrick Mochel authored
      into osdl.org:/home/mochel/src/kernel/devel/linux-2.5-power
      1ab04085
  5. 05 Aug, 2003 10 commits