13 Dec, 2011

1 commit

  • Found one system with UEFI/iBFT, kernel does not detect the iBFT during
    iscsi_ibft module loading.

    Root cause: on x86 (UEFI), we are calling of find_ibft_region() much earlier
    - specifically in setup_arch() before ACPI is enabled.

    Try to split acpi checking code out and call that later

    At that time ACPI iBFT already get permanent mapped with ioremap.
    So isa_virt_to_bus() will get wrong phys from right virt address.
    We could just skip that phys address printing.

    For legacy one, print the found address early.

    -v2: update comments and description according to Konrad.
    -v3: fix problem about module use case that is found by Konrad.
    -v4: use acpi_get_table() instead of acpi_table_parse() to handle module use case that is found by Konrad again..
    Signed-off-by: Yinghai Lu
    Signed-off-by: Konrad Rzeszutek Wilk

    Yinghai Lu
     

09 Jun, 2011

1 commit

  • int i is only needed if CONFIG_ACPI is set
    so move it within a new ifdef so kernels without ACPI
    don't allocate space for nothing. Fixes warning too.

    Signed-off-by: Connor Hansen
    Signed-off-by: Peter Jones
    [v2: Fixed warning when CONFIG_ACPI was defined]
    Signed-off-by: Konrad Rzeszutek Wilk

    Connor Hansen
     

15 Apr, 2011

1 commit

  • Broadcom iscsi offload firmware uses a non standard ibft sign of "BIFT".
    When we added support for boot, the anaconda team and I were using
    older firmware (I guess 4 years old), so boot does not work on current
    cards.

    This patch modifies the ibft search code to search for "BIFT" along
    with the other possible values.

    Broadcom has tested the patch and reported it works with their
    firmware. Mike has tested Chelsio and Intel cards.

    [v2:
    - Add ACPI_SIG_IBFT to ibft_signs
    - replace break with goto in find_ibft_in_mem innner loop.]
    Signed-off-by: Mike Christie
    Signed-off-by: Peter Jones
    Signed-off-by: Konrad Rzeszutek Wilk

    Mike Christie
     

12 May, 2010

3 commits


08 Apr, 2010

1 commit

  • …git/x86/linux-2.6-tip

    * 'x86-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/x86/linux-2.6-tip:
    x86: Fix double enable_IR_x2apic() call on SMP kernel on !SMP boards
    x86: Increase CONFIG_NODES_SHIFT max to 10
    ibft, x86: Change reserve_ibft_region() to find_ibft_region()
    x86, hpet: Fix bug in RTC emulation
    x86, hpet: Erratum workaround for read after write of HPET comparator
    bootmem, x86: Fix 32bit numa system without RAM on node 0
    nobootmem, x86: Fix 32bit numa system without RAM on node 0
    x86: Handle overlapping mptables
    x86: Make e820_remove_range to handle all covered case
    x86-32, resume: do a global tlb flush in S4 resume

    Linus Torvalds
     

02 Apr, 2010

1 commit

  • This allows arch code could decide the way to reserve the ibft.

    And we should reserve ibft as early as possible, instead of BOOTMEM
    stage, in case the table is in RAM range and is not reserved by BIOS
    (this will often be the case.)

    Move to just after find_smp_config().

    Also when CONFIG_NO_BOOTMEM=y, We will not have reserve_bootmem() anymore.

    -v2: fix typo about ibft pointed by Konrad Rzeszutek Wilk

    Signed-off-by: Yinghai Lu
    LKML-Reference:
    Cc: Pekka Enberg
    Cc: Peter Jones
    Cc: Konrad Rzeszutek Wilk
    CC: Jan Beulich
    Signed-off-by: H. Peter Anvin

    Yinghai Lu
     

30 Mar, 2010

1 commit

  • …it slab.h inclusion from percpu.h

    percpu.h is included by sched.h and module.h and thus ends up being
    included when building most .c files. percpu.h includes slab.h which
    in turn includes gfp.h making everything defined by the two files
    universally available and complicating inclusion dependencies.

    percpu.h -> slab.h dependency is about to be removed. Prepare for
    this change by updating users of gfp and slab facilities include those
    headers directly instead of assuming availability. As this conversion
    needs to touch large number of source files, the following script is
    used as the basis of conversion.

    http://userweb.kernel.org/~tj/misc/slabh-sweep.py

    The script does the followings.

    * Scan files for gfp and slab usages and update includes such that
    only the necessary includes are there. ie. if only gfp is used,
    gfp.h, if slab is used, slab.h.

    * When the script inserts a new include, it looks at the include
    blocks and try to put the new include such that its order conforms
    to its surrounding. It's put in the include block which contains
    core kernel includes, in the same order that the rest are ordered -
    alphabetical, Christmas tree, rev-Xmas-tree or at the end if there
    doesn't seem to be any matching order.

    * If the script can't find a place to put a new include (mostly
    because the file doesn't have fitting include block), it prints out
    an error message indicating which .h file needs to be added to the
    file.

    The conversion was done in the following steps.

    1. The initial automatic conversion of all .c files updated slightly
    over 4000 files, deleting around 700 includes and adding ~480 gfp.h
    and ~3000 slab.h inclusions. The script emitted errors for ~400
    files.

    2. Each error was manually checked. Some didn't need the inclusion,
    some needed manual addition while adding it to implementation .h or
    embedding .c file was more appropriate for others. This step added
    inclusions to around 150 files.

    3. The script was run again and the output was compared to the edits
    from #2 to make sure no file was left behind.

    4. Several build tests were done and a couple of problems were fixed.
    e.g. lib/decompress_*.c used malloc/free() wrappers around slab
    APIs requiring slab.h to be added manually.

    5. The script was run on all .h files but without automatically
    editing them as sprinkling gfp.h and slab.h inclusions around .h
    files could easily lead to inclusion dependency hell. Most gfp.h
    inclusion directives were ignored as stuff from gfp.h was usually
    wildly available and often used in preprocessor macros. Each
    slab.h inclusion directive was examined and added manually as
    necessary.

    6. percpu.h was updated not to include slab.h.

    7. Build test were done on the following configurations and failures
    were fixed. CONFIG_GCOV_KERNEL was turned off for all tests (as my
    distributed build env didn't work with gcov compiles) and a few
    more options had to be turned off depending on archs to make things
    build (like ipr on powerpc/64 which failed due to missing writeq).

    * x86 and x86_64 UP and SMP allmodconfig and a custom test config.
    * powerpc and powerpc64 SMP allmodconfig
    * sparc and sparc64 SMP allmodconfig
    * ia64 SMP allmodconfig
    * s390 SMP allmodconfig
    * alpha SMP allmodconfig
    * um on x86_64 SMP allmodconfig

    8. percpu.h modifications were reverted so that it could be applied as
    a separate patch and serve as bisection point.

    Given the fact that I had only a couple of failures from tests on step
    6, I'm fairly confident about the coverage of this conversion patch.
    If there is a breakage, it's likely to be something in one of the arch
    headers which should be easily discoverable easily on most builds of
    the specific arch.

    Signed-off-by: Tejun Heo <tj@kernel.org>
    Guess-its-ok-by: Christoph Lameter <cl@linux-foundation.org>
    Cc: Ingo Molnar <mingo@redhat.com>
    Cc: Lee Schermerhorn <Lee.Schermerhorn@hp.com>

    Tejun Heo
     

06 Oct, 2009

1 commit

  • In virtual environments (namely, Xen Dom0) virt phys and
    virt isa-bus translations cannot be freely interchanged (and
    even outside such environments it is not really correct to do so).
    When looking at memory below 1M, the latter translations should
    always be used.

    iscsi_ibft_find.c part from: Martin Wilck .

    Signed-off-by: Jan Beulich
    Signed-off-by: Peter Jones
    Signed-off-by: Konrad Rzeszutek Wilk
    Signed-off-by: Linus Torvalds

    Jan Beulich
     

31 Jul, 2008

1 commit


29 Apr, 2008

1 commit


20 Apr, 2008

1 commit

  • Add /sysfs/firmware/ibft/[initiator|targetX|ethernetX] directories along with
    text properties which export the the iSCSI Boot Firmware Table (iBFT)
    structure.

    What is iSCSI Boot Firmware Table? It is a mechanism for the iSCSI tools to
    extract from the machine NICs the iSCSI connection information so that they
    can automagically mount the iSCSI share/target. Currently the iSCSI
    information is hard-coded in the initrd. The /sysfs entries are read-only
    one-name-and-value fields.

    The usual set of data exposed is:

    # for a in `find /sys/firmware/ibft/ -type f -print`; do echo -n "$a: "; cat $a; done
    /sys/firmware/ibft/target0/target-name: iqn.2007.com.intel-sbx44:storage-10gb
    /sys/firmware/ibft/target0/nic-assoc: 0
    /sys/firmware/ibft/target0/chap-type: 0
    /sys/firmware/ibft/target0/lun: 00000000
    /sys/firmware/ibft/target0/port: 3260
    /sys/firmware/ibft/target0/ip-addr: 192.168.79.116
    /sys/firmware/ibft/target0/flags: 3
    /sys/firmware/ibft/target0/index: 0
    /sys/firmware/ibft/ethernet0/mac: 00:11:25:9d:8b:01
    /sys/firmware/ibft/ethernet0/vlan: 0
    /sys/firmware/ibft/ethernet0/gateway: 192.168.79.254
    /sys/firmware/ibft/ethernet0/origin: 0
    /sys/firmware/ibft/ethernet0/subnet-mask: 255.255.252.0
    /sys/firmware/ibft/ethernet0/ip-addr: 192.168.77.41
    /sys/firmware/ibft/ethernet0/flags: 7
    /sys/firmware/ibft/ethernet0/index: 0
    /sys/firmware/ibft/initiator/initiator-name: iqn.2007-07.com:konrad.initiator
    /sys/firmware/ibft/initiator/flags: 3
    /sys/firmware/ibft/initiator/index: 0

    For full details of the IBFT structure please take a look at:
    ftp://ftp.software.ibm.com/systems/support/system_x_pdf/ibm_iscsi_boot_firmware_table_v1.02.pdf

    [akpm@linux-foundation.org: fix build]
    Signed-off-by: Konrad Rzeszutek
    Cc: Mike Christie
    Cc: Peter Jones
    Cc: James Bottomley
    Cc: Ingo Molnar
    Cc: Thomas Gleixner
    Signed-off-by: Andrew Morton
    Signed-off-by: Greg Kroah-Hartman

    Konrad Rzeszutek