16 Nov, 2012

2 commits


15 Oct, 2012

2 commits

  • Pull MIPS update from Ralf Baechle:
    "Cleanups and fixes for breakage that occured earlier during this merge
    phase. Also a few patches that didn't make the first pull request.
    Of those is the Alchemy work that merges code for many of the SOCs and
    evaluation boards thus among other code shrinkage, reduces the number
    of MIPS defconfigs by 5."

    * 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus: (22 commits)
    MIPS: SNI: Switch RM400 serial to SCCNXP driver
    MIPS: Remove unused empty_bad_pmd_table[] declaration.
    MIPS: MT: Remove kspd.
    MIPS: Malta: Fix section mismatch.
    MIPS: asm-offset.c: Delete unused irq_cpustat_t struct offsets.
    MIPS: Alchemy: Merge PB1100/1500 support into DB1000 code.
    MIPS: Alchemy: merge PB1550 support into DB1550 code
    MIPS: Alchemy: Single kernel for DB1200/1300/1550
    MIPS: Optimize TLB refill for RI/XI configurations.
    MIPS: proc: Cleanup printing of ASEs.
    MIPS: Hardwire detection of DSP ASE Rev 2 for systems, as required.
    MIPS: Add detection of DSP ASE Revision 2.
    MIPS: Optimize pgd_init and pmd_init
    MIPS: perf: Add perf functionality for BMIPS5000
    MIPS: perf: Split the Kconfig option CONFIG_MIPS_MT_SMP
    MIPS: perf: Remove unnecessary #ifdef
    MIPS: perf: Add cpu feature bit for PCI (performance counter interrupt)
    MIPS: perf: Change the "mips_perf_event" table unsupported indicator.
    MIPS: Align swapper_pg_dir to 64K for better TLB Refill code.
    vmlinux.lds.h: Allow architectures to add sections to the front of .bss
    ...

    Linus Torvalds
     
  • Pull module signing support from Rusty Russell:
    "module signing is the highlight, but it's an all-over David Howells frenzy..."

    Hmm "Magrathea: Glacier signing key". Somebody has been reading too much HHGTTG.

    * 'modules-next' of git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux: (37 commits)
    X.509: Fix indefinite length element skip error handling
    X.509: Convert some printk calls to pr_devel
    asymmetric keys: fix printk format warning
    MODSIGN: Fix 32-bit overflow in X.509 certificate validity date checking
    MODSIGN: Make mrproper should remove generated files.
    MODSIGN: Use utf8 strings in signer's name in autogenerated X.509 certs
    MODSIGN: Use the same digest for the autogen key sig as for the module sig
    MODSIGN: Sign modules during the build process
    MODSIGN: Provide a script for generating a key ID from an X.509 cert
    MODSIGN: Implement module signature checking
    MODSIGN: Provide module signing public keys to the kernel
    MODSIGN: Automatically generate module signing keys if missing
    MODSIGN: Provide Kconfig options
    MODSIGN: Provide gitignore and make clean rules for extra files
    MODSIGN: Add FIPS policy
    module: signature checking hook
    X.509: Add a crypto key parser for binary (DER) X.509 certificates
    MPILIB: Provide a function to read raw data into an MPI
    X.509: Add an ASN.1 decoder
    X.509: Add simple ASN.1 grammar compiler
    ...

    Linus Torvalds
     

14 Oct, 2012

2 commits

  • Pull UAPI disintegration for include/linux/{,byteorder/}*.h from David Howells:
    "The patches contained herein do the following:

    (1) Remove kernel-only stuff in linux/ppp-comp.h from the UAPI. I checked
    this with Paul Mackerras before I created the patch and he suggested some
    extra bits to unexport.

    (2) Remove linux/blk_types.h entirely from the UAPI as none of it is userspace
    applicable, and remove from the UAPI that part of linux/fs.h that was the
    reason for linux/blk_types.h being exported in the first place. I
    discussed this with Jens Axboe before creating the patch.

    (3) The big patch of the series to disintegrate include/linux/*.h as a unit.
    This could be split up, though there would be collisions in moving stuff
    between the two Kbuild files when the parts are merged as that file is
    sorted alphabetically rather than being grouped by subsystem.

    Of this set of headers, 17 files have changed in the UAPI exported region
    since the 4th and only 8 since the 9th so there isn't much change in this
    area - as one might expect.

    It should be pretty obvious and straightforward if it does come to fixing
    up: stuff in __KERNEL__ guards stays where it is and stuff outside moves
    to the same file in the include/uapi/linux/ directory.

    If a new file appears then things get a bit more complicated as the
    "headers +=" line has to move to include/uapi/linux/Kbuild. Only one new
    file has appeared since the 9th and I judge this type of event relatively
    unlikely.

    (4) A patch to disintegrate include/linux/byteorder/*.h as a unit.

    Signed-off-by: David Howells "

    * tag 'disintegrate-main-20121013' of git://git.infradead.org/users/dhowells/linux-headers:
    UAPI: (Scripted) Disintegrate include/linux/byteorder
    UAPI: (Scripted) Disintegrate include/linux
    UAPI: Unexport linux/blk_types.h
    UAPI: Unexport part of linux/ppp-comp.h

    Linus Torvalds
     
  • Pull spi UAPI disintegration from David Howells:
    "This is to complete part of the Userspace API (UAPI) disintegration
    for which the preparatory patches were pulled recently. After these
    patches, userspace headers will be segregated into:

    include/uapi/linux/.../foo.h

    for the userspace interface stuff, and:

    include/linux/.../foo.h

    for the strictly kernel internal stuff.

    Signed-off-by: David Howells
    Acked-by: Grant Likely "

    * tag 'disintegrate-spi-20121009' of git://git.infradead.org/users/dhowells/linux-headers:
    UAPI: (Scripted) Disintegrate include/linux/spi

    Linus Torvalds
     

13 Oct, 2012

22 commits

  • Signed-off-by: David Howells
    Acked-by: Arnd Bergmann
    Acked-by: Thomas Gleixner
    Acked-by: Michael Kerrisk
    Acked-by: Paul E. McKenney
    Acked-by: Dave Jones

    David Howells
     
  • Signed-off-by: David Howells
    Acked-by: Arnd Bergmann
    Acked-by: Thomas Gleixner
    Acked-by: Michael Kerrisk
    Acked-by: Paul E. McKenney
    Acked-by: Dave Jones

    David Howells
     
  • It seems that was linux/blk_types.h incorrectly exported to fix up some missing
    bits required by the exported parts of linux/fs.h (READ, WRITE, READA, etc.).

    So unexport linux/blk_types.h and unexport the relevant bits of linux/fs.h.

    Signed-off-by: David Howells
    cc: Jens Axboe
    cc: Tejun Heo
    cc: Al Viro

    David Howells
     
  • Unexport part of linux/ppp-comp.h as userspace can't make use of that bit.

    Signed-off-by: David Howells
    cc: Paul Mackerras
    cc: David Miller

    David Howells
     
  • Pull ACPI & Thermal updates from Len Brown:
    "The generic Linux thermal layer is gaining some new capabilities
    (generic cooling via cpufreq) and some new customers (ARM).

    Also, an ACPI EC bug fix plus a regression fix."

    * 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux: (30 commits)
    tools/power/acpi/acpidump: remove duplicated include from acpidump.c
    ACPI idle, CPU hotplug: Fix NULL pointer dereference during hotplug
    cpuidle / ACPI: fix potential NULL pointer dereference
    ACPI: EC: Add a quirk for CLEVO M720T/M730T laptop
    ACPI: EC: Make the GPE storm threshold a module parameter
    thermal: Exynos: Fix NULL pointer dereference in exynos_unregister_thermal()
    Thermal: Fix bug on cpu_cooling, cooling device's id conflict problem.
    thermal: exynos: Use devm_* functions
    ARM: exynos: add thermal sensor driver platform data support
    thermal: exynos: register the tmu sensor with the kernel thermal layer
    thermal: exynos5: add exynos5250 thermal sensor driver support
    hwmon: exynos4: move thermal sensor driver to driver/thermal directory
    thermal: add generic cpufreq cooling implementation
    Fix a build error.
    thermal: Fix potential NULL pointer accesses
    thermal: add Renesas R-Car thermal sensor support
    thermal: fix potential out-of-bounds memory access
    Thermal: Introduce locking for cdev.thermal_instances list.
    Thermal: Unify the code for both active and passive cooling
    Thermal: Introduce simple arbitrator for setting device cooling state
    ...

    Linus Torvalds
     
  • Pull OpenRISC updates from Jonas Bonn:
    "Fixups for some corner cases, build issues, and some obvious bugs in
    IRQ handling. No major changes."

    * tag 'for-3.7' of git://openrisc.net/jonas/linux:
    openrisc: mask interrupts in irq_mask_ack function
    openrisc: fix typos in comments and warnings
    openrisc: PIC should act on domain-local irqs
    openrisc: Make cpu_relax() invoke barrier()
    audit: define AUDIT_ARCH_OPENRISC
    openrisc: delay: fix handling of counter overflow
    openrisc: delay: fix loops calculation for __const_udelay

    Linus Torvalds
     
  • Pull KGDB/KDB fixes and cleanups from Jason Wessel:
    "Cleanups
    - Clean up compile warnings in kgdboc.c and x86/kernel/kgdb.c
    - Add module event hooks for simplified debugging with gdb
    Fixes
    - Fix kdb to stop paging with 'q' on bta and dmesg
    - Fix for data that scrolls off the vga console due to line wrapping
    when using the kdb pager
    New
    - The debug core registers for kernel module events which allows a
    kernel aware gdb to automatically load symbols and break on entry
    to a kernel module
    - Allow kgdboc=kdb to setup kdb on the vga console"

    * tag 'for_linus-3.7' of git://git.kernel.org/pub/scm/linux/kernel/git/jwessel/kgdb:
    tty/console: fix warnings in drivers/tty/serial/kgdboc.c
    kdb,vt_console: Fix missed data due to pager overruns
    kdb: Fix dmesg/bta scroll to quit with 'q'
    kgdboc: Accept either kbd or kdb to activate the vga + keyboard kdb shell
    kgdb,x86: fix warning about unused variable
    mips,kgdb: fix recursive page fault with CONFIG_KPROBES
    kgdb: Add module event hooks

    Linus Torvalds
     
  • …kernel/git/konrad/xen

    Pull Xen UAPI disintegration from Konrad Rzeszutek Wilk:
    "This has the UAPI disintegration work done by David Howells"

    * tag 'stable/for-linus-3.7-uapi-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/konrad/xen:
    UAPI: (Scripted) Disintegrate include/xen

    Linus Torvalds
     
  • Pull two more mmc changes from Chris Ball:

    - Disintegrate UAPI

    - fix a mismerge that caused a build error.

    * tag 'mmc-merge-for-3.7-rc1-part2' of git://git.kernel.org/pub/scm/linux/kernel/git/cjb/mmc:
    UAPI: (Scripted) Disintegrate include/linux/mmc
    mmc: mxs-mmc: Fix merge issue causing build error

    Linus Torvalds
     
  • Pull misc SCSI updates from James Bottomley:
    "This is an assorted set of stragglers into the merge window with
    driver updates for megaraid_sas, lpfc, bfi and mvumi. It also
    includes some fairly major fixes for virtio-scsi (scatterlist init),
    scsi_debug (off by one error), storvsc (use after free) and qla2xxx
    (potential deadlock).

    Signed-off-by: James Bottomley "

    * tag 'scsi-misc' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi: (49 commits)
    [SCSI] storvsc: Account for in-transit packets in the RESET path
    [SCSI] qla2xxx: fix potential deadlock on ha->hardware_lock
    [SCSI] scsi_debug: Fix off-by-one bug when unmapping region
    [SCSI] Shorten the path length of scsi_cmd_to_driver()
    [SCSI] virtio-scsi: support online resizing of disks
    [SCSI] virtio-scsi: fix LUNs greater than 255
    [SCSI] virtio-scsi: initialize scatterlist structure
    [SCSI] megaraid_sas: Version, Changelog, Copyright update
    [SCSI] megaraid_sas: Remove duplicate code
    [SCSI] megaraid_sas: Add SystemPD FastPath support
    [SCSI] megaraid_sas: Add array boundary check for SystemPD
    [SCSI] megaraid_sas: Load io_request DataLength in bytes
    [SCSI] megaraid_sas: Add module param for configurable MSI-X vector count
    [SCSI] megaraid_sas: Remove un-needed completion_lock spinlock calls
    [SCSI] lpfc 8.3.35: Update lpfc version for 8.3.35 driver release
    [SCSI] lpfc 8.3.35: Fixed not reporting logical link speed to SCSI midlayer when QoS not on
    [SCSI] lpfc 8.3.35: Fix error with fabric service parameters causing performance issues
    [SCSI] lpfc 8.3.35: Fixed SCSI host create showing wrong link speed on SLI3 HBA ports
    [SCSI] lpfc 8.3.35: Fixed not checking solicition in progress bit when verifying FCF record for use
    [SCSI] lpfc 8.3.35: Fixed messages for misconfigured port errors
    ...

    Linus Torvalds
     
  • Pull input layer updates from Dmitry Torokhov:
    "2nd round of updates for the input subsystem. With it input core no
    longer limits number of character devices per event handler (such as
    evdev) to 32, but switches to dynamic minors once legacy range is
    exhausted. This should get multi-seat installations that currently
    run our of event devices very quickly.

    You will also get an update for Wacom driver and a couple of driver
    fixes."

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input:
    Input: extend the number of event (and other) devices
    Input: mousedev - mark mousedev interfaces as non-seekable
    Input: mousedev - rename mixdev_open to opened_by_mixdev
    Input: mousedev - reformat structure initializers
    Input: mousedev - factor out psaux code to reduce #ifdefery
    Input: samsung-keypad - add clk_prepare and clk_unprepare
    Input: atmel_mxt_ts - simplify mxt_dump_message
    Input: wacom - clean up wacom_query_tablet_data
    Input: wacom - introduce wacom_fix_phy_from_hid
    Input: wacom - allow any multi-input Intuos device to set prox
    Input: wacom - report correct touch contact size for I5/Bamboo

    Linus Torvalds
     
  • Pull nfsd update from J Bruce Fields:
    "Another relatively quiet cycle. There was some progress on my
    remaining 4.1 todo's, but a couple of them were just of the form
    "check that we do X correctly", so didn't have much affect on the
    code.

    Other than that, a bunch of cleanup and some bugfixes (including an
    annoying NFSv4.0 state leak and a busy-loop in the server that could
    cause it to peg the CPU without making progress)."

    * 'for-3.7' of git://linux-nfs.org/~bfields/linux: (46 commits)
    UAPI: (Scripted) Disintegrate include/linux/sunrpc
    UAPI: (Scripted) Disintegrate include/linux/nfsd
    nfsd4: don't allow reclaims of expired clients
    nfsd4: remove redundant callback probe
    nfsd4: expire old client earlier
    nfsd4: separate session allocation and initialization
    nfsd4: clean up session allocation
    nfsd4: minor free_session cleanup
    nfsd4: new_conn_from_crses should only allocate
    nfsd4: separate connection allocation and initialization
    nfsd4: reject bad forechannel attrs earlier
    nfsd4: enforce per-client sessions/no-sessions distinction
    nfsd4: set cl_minorversion at create time
    nfsd4: don't pin clientids to pseudoflavors
    nfsd4: fix bind_conn_to_session xdr comment
    nfsd4: cast readlink() bug argument
    NFSD: pass null terminated buf to kstrtouint()
    nfsd: remove duplicate init in nfsd4_cb_recall
    nfsd4: eliminate redundant nfs4_free_stateid
    fs/nfsd/nfs4idmap.c: adjust inconsistent IS_ERR and PTR_ERR
    ...

    Linus Torvalds
     
  • Pull networking updates from David Miller:

    1) Alexey Kuznetsov noticed we routed TCP resets improperly in the
    assymetric routing case, fix this by reverting a change that made us
    use the incoming interface in the outgoing route key when we didn't
    have a socket context to work with.

    2) TCP sysctl kernel memory leakage to userspace fix from Alan Cox.

    3) Move UAPI bits from David Howells, WIMAX and CAN this time.

    4) Fix TX stalls in e1000e wrt. Byte Queue Limits, from Hiroaki
    SHIMODA, Denys Fedoryshchenko, and Jesse Brandeburg.

    5) Fix IPV6 crashes in packet generator module, from Amerigo Wang.

    6) Tidies and fixes in the new VXLAN driver from Stephen Hemminger.

    7) Bridge IP options parse doesn't check first if SKB header has at
    least an IP header's worth of content present. Fix from Sarveshwar
    Bandi.

    8) The kernel now generates compound pages on transmit and the Xen
    netback drivers needs some adjustments in order to handle this. Fix
    from Ian Campbell.

    9) Turn off ASPM in JME driver, from Kevin Bardon and Matthew Garrett.

    * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net: (43 commits)
    mcs7830: Fix link state detection
    net: add doc for in4_pton()
    net: add doc for in6_pton()
    vti: fix sparse bit endian warnings
    tcp: resets are misrouted
    usbnet: Support devices reporting idleness
    Add CDC-ACM support for the CX93010-2x UCMxx USB Modem
    net/ethernet/jme: disable ASPM
    tcp: sysctl interface leaks 16 bytes of kernel memory
    kaweth: print correct debug ptr
    e1000e: Change wthresh to 1 to avoid possible Tx stalls
    ipv4: fix route mark sparse warning
    xen: netback: handle compound page fragments on transmit.
    bridge: Pull ip header into skb->data before looking into ip header.
    isdn: fix a wrapping bug in isdn_ppp_ioctl()
    vxlan: fix oops when give unknown ifindex
    vxlan: fix receive checksum handling
    vxlan: add additional headroom
    vxlan: allow configuring port range
    vxlan: associate with tunnel socket on transmit
    ...

    Linus Torvalds
     
  • Pull perf updates from Ingo Molnar:
    "This tree includes some late late perf items that missed the first
    round:

    tools:

    - Bash auto completion improvements, now we can auto complete the
    tools long options, tracepoint event names, etc, from Namhyung Kim.

    - Look up thread using tid instead of pid in 'perf sched'.

    - Move global variables into a perf_kvm struct, from David Ahern.

    - Hists refactorings, preparatory for improved 'diff' command, from
    Jiri Olsa.

    - Hists refactorings, preparatory for event group viewieng work, from
    Namhyung Kim.

    - Remove double negation on optional feature macro definitions, from
    Namhyung Kim.

    - Remove several cases of needless global variables, on most
    builtins.

    - misc fixes

    kernel:

    - sysfs support for IBS on AMD CPUs, from Robert Richter.

    - Support for an upcoming Intel CPU, the Xeon-Phi / Knights Corner
    HPC blade PMU, from Vince Weaver.

    - misc fixes"

    * 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (46 commits)
    perf: Fix perf_cgroup_switch for sw-events
    perf: Clarify perf_cpu_context::active_pmu usage by renaming it to ::unique_pmu
    perf/AMD/IBS: Add sysfs support
    perf hists: Add more helpers for hist entry stat
    perf hists: Move he->stat.nr_events initialization to a template
    perf hists: Introduce struct he_stat
    perf diff: Removing the total_period argument from output code
    perf tool: Add hpp interface to enable/disable hpp column
    perf tools: Removing hists pair argument from output path
    perf hists: Separate overhead and baseline columns
    perf diff: Refactor diff displacement possition info
    perf hists: Add struct hists pointer to struct hist_entry
    perf tools: Complete tracepoint event names
    perf/x86: Add support for Intel Xeon-Phi Knights Corner PMU
    perf evlist: Remove some unused methods
    perf evlist: Introduce add_newtp method
    perf kvm: Move global variables into a perf_kvm struct
    perf tools: Convert to BACKTRACE_SUPPORT
    perf tools: Long option completion support for each subcommands
    perf tools: Complete long option names of perf command
    ...

    Linus Torvalds
     
  • Pull third pile of kernel_execve() patches from Al Viro:
    "The last bits of infrastructure for kernel_thread() et.al., with
    alpha/arm/x86 use of those. Plus sanitizing the asm glue and
    do_notify_resume() on alpha, fixing the "disabled irq while running
    task_work stuff" breakage there.

    At that point the rest of kernel_thread/kernel_execve/sys_execve work
    can be done independently for different architectures. The only
    pending bits that do depend on having all architectures converted are
    restrictred to fs/* and kernel/* - that'll obviously have to wait for
    the next cycle.

    I thought we'd have to wait for all of them done before we start
    eliminating the longjump-style insanity in kernel_execve(), but it
    turned out there's a very simple way to do that without flagday-style
    changes."

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/signal:
    alpha: switch to saner kernel_execve() semantics
    arm: switch to saner kernel_execve() semantics
    x86, um: convert to saner kernel_execve() semantics
    infrastructure for saner ret_from_kernel_thread semantics
    make sure that kernel_thread() callbacks call do_exit() themselves
    make sure that we always have a return path from kernel_execve()
    ppc: eeh_event should just use kthread_run()
    don't bother with kernel_thread/kernel_execve for launching linuxrc
    alpha: get rid of switch_stack argument of do_work_pending()
    alpha: don't bother passing switch_stack separately from regs
    alpha: take SIGPENDING/NOTIFY_RESUME loop into signal.c
    alpha: simplify TIF_NEED_RESCHED handling

    Linus Torvalds
     
  • Pull third pile of VFS updates from Al Viro:
    "Stuff from Jeff Layton, mostly. Sanitizing interplay between audit
    and namei, removing a lot of insanity from audit_inode() mess and
    getting things ready for his ESTALE patchset."

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:
    procfs: don't need a PATH_MAX allocation to hold a string representation of an int
    vfs: embed struct filename inside of names_cache allocation if possible
    audit: make audit_inode take struct filename
    vfs: make path_openat take a struct filename pointer
    vfs: turn do_path_lookup into wrapper around struct filename variant
    audit: allow audit code to satisfy getname requests from its names_list
    vfs: define struct filename and have getname() return it
    vfs: unexport getname and putname symbols
    acct: constify the name arg to acct_on
    vfs: allocate page instead of names_cache buffer in mount_block_root
    audit: overhaul __audit_inode_child to accomodate retrying
    audit: optimize audit_compare_dname_path
    audit: make audit_compare_dname_path use parent_len helper
    audit: remove dirlen argument to audit_compare_dname_path
    audit: set the name_len in audit_inode for parent lookups
    audit: add a new "type" field to audit_names struct
    audit: reverse arguments to audit_inode_child
    audit: no need to walk list in audit_inode if name is NULL
    audit: pass in dentry to audit_copy_inode wherever possible
    audit: remove unnecessary NULL ptr checks from do_path_lookup

    Linus Torvalds
     
  • In the common case where a name is much smaller than PATH_MAX, an extra
    allocation for struct filename is unnecessary. Before allocating a
    separate one, try to embed the struct filename inside the buffer first. If
    it turns out that that's not long enough, then fall back to allocating a
    separate struct filename and redoing the copy.

    Signed-off-by: Jeff Layton
    Signed-off-by: Al Viro

    Jeff Layton
     
  • Keep a pointer to the audit_names "slot" in struct filename.

    Have all of the audit_inode callers pass a struct filename ponter to
    audit_inode instead of a string pointer. If the aname field is already
    populated, then we can skip walking the list altogether and just use it
    directly.

    Signed-off-by: Jeff Layton
    Signed-off-by: Al Viro

    Jeff Layton
     
  • ...and fix up the callers. For do_file_open_root, just declare a
    struct filename on the stack and fill out the .name field. For
    do_filp_open, make it also take a struct filename pointer, and fix up its
    callers to call it appropriately.

    For filp_open, add a variant that takes a struct filename pointer and turn
    filp_open into a wrapper around it.

    Signed-off-by: Jeff Layton
    Signed-off-by: Al Viro

    Jeff Layton
     
  • Currently, if we call getname() on a userland string more than once,
    we'll get multiple copies of the string and multiple audit_names
    records.

    Add a function that will allow the audit_names code to satisfy getname
    requests using info from the audit_names list, avoiding a new allocation
    and audit_names records.

    Signed-off-by: Jeff Layton
    Signed-off-by: Al Viro

    Jeff Layton
     
  • getname() is intended to copy pathname strings from userspace into a
    kernel buffer. The result is just a string in kernel space. It would
    however be quite helpful to be able to attach some ancillary info to
    the string.

    For instance, we could attach some audit-related info to reduce the
    amount of audit-related processing needed. When auditing is enabled,
    we could also call getname() on the string more than once and not
    need to recopy it from userspace.

    This patchset converts the getname()/putname() interfaces to return
    a struct instead of a string. For now, the struct just tracks the
    string in kernel space and the original userland pointer for it.

    Later, we'll add other information to the struct as it becomes
    convenient.

    Signed-off-by: Jeff Layton
    Signed-off-by: Al Viro

    Jeff Layton
     
  • * allow kernel_execve() leave the actual return to userland to
    caller (selected by CONFIG_GENERIC_KERNEL_EXECVE). Callers
    updated accordingly.
    * architecture that does select GENERIC_KERNEL_EXECVE in its
    Kconfig should have its ret_from_kernel_thread() do this:
    call schedule_tail
    call the callback left for it by copy_thread(); if it ever
    returns, that's because it has just done successful kernel_execve()
    jump to return from syscall
    IOW, its only difference from ret_from_fork() is that it does call the
    callback.
    * such an architecture should also get rid of ret_from_kernel_execve()
    and __ARCH_WANT_KERNEL_EXECVE

    This is the last part of infrastructure patches in that area - from
    that point on work on different architectures can live independently.

    Signed-off-by: Al Viro

    Al Viro
     

12 Oct, 2012

12 commits

  • Pull Xen fixes from Konrad Rzeszutek Wilk:
    "This has four bug-fixes and one tiny feature that I forgot to put
    initially in my tree due to oversight.

    The feature is for kdump kernels to speed up the /proc/vmcore reading.
    There is a ram_is_pfn helper function that the different platforms can
    register for. We are now doing that.

    The bug-fixes cover some embarrassing struct pv_cpu_ops variables
    being set to NULL on Xen (but not baremetal). We had a similar issue
    in the past with {write|read}_msr_safe and this fills the three
    missing ones. The other bug-fix is to make the console output (hvc)
    be capable of dealing with misbehaving backends and not fall flat on
    its face. Lastly, a quirk for older XenBus implementations that came
    with an ancient v3.4 hypervisor (so RHEL5 based) - reading of certain
    non-existent attributes just hangs the guest during bootup - so we
    take precaution of not doing that on such older installations.

    Feature:
    - Register a pfn_is_ram helper to speed up reading of /proc/vmcore.
    Bug-fixes:
    - Three pvops call for Xen were undefined causing BUG_ONs.
    - Add a quirk so that the shutdown watches (used by kdump) are not
    used with older Xen (3.4).
    - Fix ungraceful state transition for the HVC console."

    * tag 'stable/for-linus-3.7-rc0-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/konrad/xen:
    xen/pv-on-hvm kexec: add quirk for Xen 3.4 and shutdown watches.
    xen/bootup: allow {read|write}_cr8 pvops call.
    xen/bootup: allow read_tscp call for Xen PV guests.
    xen pv-on-hvm: add pfn_is_ram helper for kdump
    xen/hvc: handle backend CLOSED without CLOSING

    Linus Torvalds
     
  • Pull timer core update from Thomas Gleixner:
    - Bug fixes (one for a longstanding dead loop issue)
    - Rework of time related vsyscalls
    - Alarm timer updates
    - Jiffies updates to remove compile time dependencies

    * 'timers-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    timekeeping: Cast raw_interval to u64 to avoid shift overflow
    timers: Fix endless looping between cascade() and internal_add_timer()
    time/jiffies: bring back unconditional LATCH definition
    time: Convert x86_64 to using new update_vsyscall
    time: Only do nanosecond rounding on GENERIC_TIME_VSYSCALL_OLD systems
    time: Introduce new GENERIC_TIME_VSYSCALL
    time: Convert CONFIG_GENERIC_TIME_VSYSCALL to CONFIG_GENERIC_TIME_VSYSCALL_OLD
    time: Move update_vsyscall definitions to timekeeper_internal.h
    time: Move timekeeper structure to timekeeper_internal.h for vsyscall changes
    jiffies: Remove compile time assumptions about CLOCK_TICK_RATE
    jiffies: Kill unused TICK_USEC_TO_NSEC
    alarmtimer: Rename alarmtimer_remove to alarmtimer_dequeue
    alarmtimer: Remove unused helpers & defines
    alarmtimer: Use hrtimer per-alarm instead of per-base
    alarmtimer: Implement minimum alarm interval for allowing suspend

    Linus Torvalds
     
  • The con_debug_leave/con_debug_enter functions are stubbed out
    by defining them to (0), which causes harmless build warnings.
    Using proper inline functions is the normal way to deal with
    this.

    Without this patch, building the ARM bcm2835_defconfig results in:

    drivers/tty/serial/kgdboc.c: In function 'kgdboc_pre_exp_handler':
    drivers/tty/serial/kgdboc.c:279:3: warning: statement with no effect [-Wunused-value]
    drivers/tty/serial/kgdboc.c: In function 'kgdboc_post_exp_handler':
    drivers/tty/serial/kgdboc.c:293:3: warning: statement with no effect [-Wunused-value]

    Signed-off-by: Arnd Bergmann
    Cc: Anton Vorontsov
    Cc: Greg Kroah-Hartman
    Signed-off-by: Jason Wessel

    Arnd Bergmann
     
  • First, it's incorrect to call putname() after __getname_gfp() since the
    bare __getname_gfp() call skips the auditing code, while putname()
    doesn't.

    mount_block_root allocates a PATH_MAX buffer via __getname_gfp, and then
    calls get_fs_names to fill the buffer. That function can call
    get_filesystem_list which assumes that that buffer is a full page in
    size. On arches where PAGE_SIZE != 4k, then this could potentially
    overrun.

    In practice, it's hard to imagine the list of filesystem names even
    approaching 4k, but it's best to be safe. Just allocate a page for this
    purpose instead.

    With this, we can also remove the __getname_gfp() definition since there
    are no more callers.

    Signed-off-by: Jeff Layton
    Signed-off-by: Al Viro

    Jeff Layton
     
  • In order to accomodate retrying path-based syscalls, we need to add a
    new "type" argument to audit_inode_child. This will tell us whether
    we're looking for a child entry that represents a create or a delete.

    If we find a parent, don't automatically assume that we need to create a
    new entry. Instead, use the information we have to try to find an
    existing entry first. Update it if one is found and create a new one if
    not.

    Signed-off-by: Jeff Layton
    Signed-off-by: Al Viro

    Jeff Layton
     
  • Currently, this gets set mostly by happenstance when we call into
    audit_inode_child. While that might be a little more efficient, it seems
    wrong. If the syscall ends up failing before audit_inode_child ever gets
    called, then you'll have an audit_names record that shows the full path
    but has the parent inode info attached.

    Fix this by passing in a parent flag when we call audit_inode that gets
    set to the value of LOOKUP_PARENT. We can then fix up the pathname for
    the audit entry correctly from the get-go.

    While we're at it, clean up the no-op macro for audit_inode in the
    !CONFIG_AUDITSYSCALL case.

    Signed-off-by: Jeff Layton
    Signed-off-by: Al Viro

    Jeff Layton
     
  • For now, we just have two possibilities:

    UNKNOWN: for a new audit_names record that we don't know anything about yet
    NORMAL: for everything else

    In later patches, we'll add other types so we can distinguish and update
    records created under different circumstances.

    Signed-off-by: Jeff Layton
    Signed-off-by: Al Viro

    Jeff Layton
     
  • Most of the callers get called with an inode and dentry in the reverse
    order. The compiler then has to reshuffle the arg registers and/or
    stack in order to pass them on to audit_inode_child.

    Reverse those arguments for a micro-optimization.

    Reported-by: Eric Paris
    Signed-off-by: Jeff Layton
    Signed-off-by: Al Viro

    Jeff Layton
     
  • Pull second set of media updates from Mauro Carvalho Chehab:
    "Despite its size, most of the stuff here is trivial. This series
    contains:

    - s5p-mfc: additions at the driver and at the core to support H.264
    hardware codec;
    - Some improvements at s5p and davinci embedded drivers;
    - Some V4L2 compliance fixes applied on a few drivers;
    - Several random trivial patches, including several fixes and a few
    new board support additions;

    Notes:

    1) Some Exynos media patches were dependent on some -arm fixes that
    got merged on changeset 782cd9e. That's why this pull request is
    based that changeset.

    2) As promised, I reviewed the pending VB2 DMABUF series.

    While setting a test environment, it was noticed that the upstream
    support for Samsung Exynos 4 boards (smdk310 and Origen) are
    broken upstream, likely due to regressions: both defconfigs are
    wrong and regulator settings for both boards are broken. That,
    allied with some bug at the dummy regulator driver, causes OOPSes
    during boot time.

    Long story short: even fixing the above, the proposed patches
    OOPSed when running the DMABUF test. Not sure yet if the OOPSes
    are due to some other undetected regressions, or due to some bug
    on the patches.

    Due to the above, DMABUF patches for vb2 got NACKed for 3.7."

    * 'v4l_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media: (109 commits)
    [media] m5mols: Add missing #include
    [media] stk1160: Add support for S-Video input
    Revert "[media] omap3isp: Replace cpu_is_omap3630() with ISP revision check"
    [media] dvb: LNA implementation changes
    [media] v4l2-ioctl: fix W=1 warnings
    [media] v4l2-ioctl: add blocks check for VIDIOC_SUBDEV_G/S_EDID
    [media] omap3isp: Fix compilation error in ispreg.h
    [media] rc-msi-digivox-ii: Add full scan keycodes
    [media] cx25821: testing the wrong variable
    [media] tda18271-common: hold the I2C adapter during write transfers
    [media] ds3000: add module parameter to force firmware upload
    [media] drivers/media: Remove unnecessary semicolon
    [media] winbond: remove space from driver name
    [media] iguanair: cannot send data from the stack
    [media] omap3isp: Replace cpu_is_omap3630() with ISP revision check
    [media] dvb-usb: print small buffers via %*ph
    [media] uvc: Add return code check at vb2_queue_init()
    [media] em28xx: Replace memcpy with struct assignment
    [media] bt8xx: Add video4linux control V4L2_CID_COLOR_KILLER
    [media] mem2mem_testdev: Use devm_kzalloc() in probe
    ...

    Conflicts:
    arch/arm/mach-davinci/include/mach/da8xx.h

    Linus Torvalds
     
  • Pull pile 2 of vfs updates from Al Viro:
    "Stuff in this one - assorted fixes, lglock tidy-up, death to
    lock_super().

    There'll be a VFS pile tomorrow (with patches from Jeff Layton,
    sanitizing getname() and related parts of audit and preparing for
    ESTALE fixes), but I'd rather push the stuff in this one ASAP - some
    of the bugs closed here are quite unpleasant."

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:
    vfs: bogus warnings in fs/namei.c
    consitify do_mount() arguments
    lglock: add DEFINE_STATIC_LGLOCK()
    lglock: make the per_cpu locks static
    lglock: remove unused DEFINE_LGLOCK_LOCKDEP()
    MAX_LFS_FILESIZE definition for 64bit needs LL...
    tmpfs,ceph,gfs2,isofs,reiserfs,xfs: fix fh_len checking
    vfs: drop lock/unlock super
    ufs: drop lock/unlock super
    sysv: drop lock/unlock super
    hpfs: drop lock/unlock super
    fat: drop lock/unlock super
    ext3: drop lock/unlock super
    exofs: drop lock/unlock super
    dup3: Return an error when oldfd == newfd.
    fs: handle failed audit_log_start properly
    fs: prevent use after free in auditing when symlink following was denied

    Linus Torvalds
     
  • Pull kbuild changes from Michal Marek:
    "The main part of kbuild for v3.7 contains:
    - Fix for scripts/Makefile.modpost to not choke on a '.ko' substring
    in the build directory path
    - Two warning fixes (modpost and main Makefile)
    - __compiletime_error works also with gcc 4.3
    - make tar{gz,bz2,xz}-pkg uses default compression settings instead
    of saving as many bytes as possible (this should actually be in the
    misc branch, I don't know why I applied it here)."

    * 'kbuild' of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild:
    compiler-gcc4.h: correct verion check for __compiletime_error
    modpost: Permit .GCC.command.line sections
    Kbuild: use normal compression settings for tar*-pkg
    scripts/Makefile.modpost: error in finding modules from .mod files.
    kbuild: Remove useless warning while appending KCFLAGS

    Linus Torvalds
     
  • Pull fbdev updates from Florian Tobias Schandinat:
    "This includes:
    - large updates for OMAP
    - basic OMAP5 DSS support for DPI and DSI outputs
    - large cleanups and restructuring
    - some update to Exynos and da8xx-fb
    - removal of the pnx4008 driver (arch removed)
    - various other small patches"

    Fix up some trivial conflicts (mostly just include line changes, but
    also some due to the renaming of the deferred work functions by Tejun).

    * tag 'fbdev-updates-for-3.7' of git://github.com/schandinat/linux-2.6: (193 commits)
    gbefb: fix compile error
    video: mark nuc900fb_map_video_memory as __devinit
    video/mx3fb: set .owner to prevent module unloading while being used
    video: exynos_dp: use clk_prepare_enable and clk_disable_unprepare
    drivers/video/exynos/exynos_mipi_dsi.c: fix error return code
    drivers/video/savage/savagefb_driver.c: fix error return code
    video: s3c-fb: use clk_prepare_enable and clk_disable_unprepare
    da8xx-fb: save and restore LCDC context across suspend/resume cycle
    da8xx-fb: add pm_runtime support
    video/udlfb: fix line counting in fb_write
    OMAPDSS: add missing include for string.h
    OMAPDSS: DISPC: Configure color conversion coefficients for writeback
    OMAPDSS: DISPC: Add manager like functions for writeback
    OMAPDSS: DISPC: Configure writeback FIFOs
    OMAPDSS: DISPC: Configure writeback specific parameters in dispc_wb_setup()
    OMAPDSS: DISPC: Configure overlay-like parameters in dispc_wb_setup
    OMAPDSS: DISPC: Add function to set channel in for writeback
    OMAPDSS: DISPC: Don't set chroma resampling bit for writeback
    OMAPDSS: DISPC: Downscale chroma if plane is writeback
    OMAPDSS: DISPC: Configure input and output sizes for writeback
    ...

    Linus Torvalds