18 Apr, 2014

2 commits

  • Convert some ints to bools.

    Signed-off-by: Corey Minyard
    Signed-off-by: Linus Torvalds

    Corey Minyard
     
  • The IPMI driver would wake up periodically looking for events and
    watchdog pretimeouts. If there is nothing waiting for these events,
    it's really kind of pointless to be checking for them. So modify the
    driver so the message handler can pass down if it needs the lower layer
    to be waiting for these. Modify the system interface lower layer to
    turn off all timer and thread activity if the upper layer doesn't need
    anything and it is not currently handling messages. And modify the
    message handler to not restart the timer if its timer is not needed.

    The timers and kthread will still be enabled if:
    - the SI interface is handling a message.
    - a user has enabled watching for events.
    - the IPMI watchdog timer is in use (since it uses pretimeouts).
    - the message handler is waiting on a remote response.
    - a user has registered to receive commands.

    This mostly affects interfaces without interrupts. Interfaces with
    interrupts already don't use CPU in the system interface when the
    interface is idle.

    Signed-off-by: Corey Minyard
    Signed-off-by: Linus Torvalds

    Corey Minyard
     

19 Nov, 2012

1 commit


16 Mar, 2012

1 commit

  • The header includes a lot of stuff, and
    it in turn gets a lot of use just for the basic "struct device"
    which appears so often.

    Clean up the users as follows:

    1) For those headers only needing "struct device" as a pointer
    in fcn args, replace the include with exactly that.

    2) For headers not really using anything from device.h, simply
    delete the include altogether.

    3) For headers relying on getting device.h implicitly before
    being included themselves, now explicitly include device.h

    4) For files in which doing #1 or #2 uncovers an implicit
    dependency on some other header, fix by explicitly adding
    the required header(s).

    Any C files that were implicitly relying on device.h to be
    present have already been dealt with in advance.

    Total removals from #1 and #2: 51. Total additions coming
    from #3: 9. Total other implicit dependencies from #4: 7.

    As of 3.3-rc1, there were 110, so a net removal of 42 gives
    about a 38% reduction in device.h presence in include/*

    Signed-off-by: Paul Gortmaker

    Paul Gortmaker
     

01 Nov, 2011

1 commit

  • The pretty much brings in the kitchen sink along
    with it, so it should be avoided wherever reasonably possible in
    terms of being included from other commonly used
    files, as it results in a measureable increase on compile times.

    The worst culprit was probably device.h since it is used everywhere.
    This file also had an implicit dependency/usage of mutex.h which was
    masked by module.h, and is also fixed here at the same time.

    There are over a dozen other headers that simply declare the
    struct instead of pulling in the whole file, so follow their lead
    and simply make it a few more.

    Most of the implicit dependencies on module.h being present by
    these headers pulling it in have been now weeded out, so we can
    finally make this change with hopefully minimal breakage.

    Signed-off-by: Paul Gortmaker

    Paul Gortmaker
     

27 May, 2011

1 commit


14 Dec, 2010

1 commit

  • The IPMI smi_watcher will be used to catch the IPMI interface as they
    come or go. In order to communicate with the correct IPMI device, it
    should be confirmed whether it is what we wanted especially on the
    system with multiple IPMI devices. But the new_smi callback function
    of smi_watcher provides very limited info(only the interface number
    and dev pointer) and there is no detailed info about the low level
    interface. For example: which mechansim registers the IPMI
    interface(ACPI, PCI, DMI and so on).

    This is to add one interface that can get more info of low-level IPMI
    device. For example: the ACPI device handle will be returned for the
    pnp_acpi IPMI device.

    Signed-off-by: Zhao Yakui
    Signed-off-by: Corey Minyard
    Signed-off-by: Len Brown

    Zhao Yakui
     

13 Mar, 2010

1 commit


31 Mar, 2009

1 commit

  • Setting ->owner as done currently (pde->owner = THIS_MODULE) is racy
    as correctly noted at bug #12454. Someone can lookup entry with NULL
    ->owner, thus not pinning enything, and release it later resulting
    in module refcount underflow.

    We can keep ->owner and supply it at registration time like ->proc_fops
    and ->data.

    But this leaves ->owner as easy-manipulative field (just one C assignment)
    and somebody will forget to unpin previous/pin current module when
    switching ->owner. ->proc_fops is declared as "const" which should give
    some thoughts.

    ->read_proc/->write_proc were just fixed to not require ->owner for
    protection.

    rmmod'ed directories will be empty and return "." and ".." -- no harm.
    And directories with tricky enough readdir and lookup shouldn't be modular.
    We definitely don't want such modular code.

    Removing ->owner will also make PDE smaller.

    So, let's nuke it.

    Kudos to Jeff Layton for reminding about this, let's say, oversight.

    http://bugzilla.kernel.org/show_bug.cgi?id=12454

    Signed-off-by: Alexey Dobriyan

    Alexey Dobriyan
     

29 Apr, 2008

2 commits


30 Oct, 2007

1 commit

  • Coverity spotted some incorrect code in a recent change to the IPMI driver;
    this patch make sure the data is really long enough to pull the
    manufacturer id and product id out of a get device id message.

    Signed-off-by: Corey Minyard
    Cc: Adrian Bunk
    Cc: Stian Jordet
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Corey Minyard
     

20 Oct, 2007

1 commit


19 Oct, 2007

1 commit

  • Add support for IPMI 0.9 systems to the IPMI driver. Just handle a shorter
    get device ID command with less information.

    Signed-off-by: Corey Minyard
    Cc: Stian Jordet
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Corey Minyard
     

08 Dec, 2006

2 commits

  • Some commands and operations on a BMC can cause the BMC to "go away" for a
    while. This can cause the automatic flag processing and other things of that
    nature to timeout and generate annoying logs, or possibly cause other bad
    things to happen when in firmware update mode.

    Add detection of those commands (cold reset, warm reset, and any firmware
    command) and turns off automatic processing for 30 seconds. It also add a
    manual override either way.

    Signed-off-by: Corey Minyard
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Corey Minyard
     
  • Pass in the sysfs name from the lower-level IPMI driver, as the coming IPMI
    serial driver will need that to link properly from the serial device sysfs
    directory.

    Signed-off-by: Corey Minyard
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Corey Minyard
     

01 Apr, 2006

1 commit

  • Matt Domsch noticed a startup race with the IPMI kernel thread, it was
    possible (though extraordinarly unlikely) that a message could come in
    before the upper layer was ready to handle it. This patch splits the
    startup processing of an IPMI interface into two parts, one to get ready
    and one to actually start the processes to receive messages from the
    interface.

    [akpm@osdl.org: cleanups]
    Signed-off-by: Corey Minyard
    Cc: Matt Domsch
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Corey Minyard
     

27 Mar, 2006

1 commit

  • Add full driver model support for the IPMI driver. It links in the proper
    bus and device support.

    It adds an "ipmi" driver interface that has each BMC discovered by the
    driver (as a device). These BMCs appear in the devices/platform directory.
    If there are multiple interfaces to the same BMC, the driver should
    discover this and will only have one BMC entry. The BMC entry will have
    pointers to each interface device that connects to it.

    The device information (statistics and config information) has not yet been
    ported over to the driver model from proc, that will come later.

    This work was based on work by Yani Ioannou. I basically rewrote it using
    that code as a guide, but he still deserves credit :).

    [bunk@stusta.de: make ipmi_find_bmc_guid() static]
    Signed-off-by: Corey Minyard
    Signed-off-by: Yani Ioannou
    Cc: Greg KH
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Corey Minyard
     

17 Apr, 2005

1 commit

  • Initial git repository build. I'm not bothering with the full history,
    even though we have it. We can create a separate "historical" git
    archive of that later if we want to, and in the meantime it's about
    3.2GB when imported into git - space that would just make the early
    git days unnecessarily complicated, when we don't have a lot of good
    infrastructure for it.

    Let it rip!

    Linus Torvalds