12 May, 2006

2 commits

  • * master.kernel.org:/home/rmk/linux-2.6-serial:
    [SERIAL] 8250: add locking to console write function
    [SERIAL] Remove unconditional enable of TX irq for console
    [SERIAL] 8250: set divisor register correctly for AMD Alchemy SoC uart
    [SERIAL] AMD Alchemy UART: claim memory range
    [SERIAL] Clean up serial locking when obtaining a reference to a port

    Linus Torvalds
     
  • * master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6:
    [NET_SCHED]: HFSC: fix thinko in hfsc_adjust_levels()
    [IPV6]: skb leakage in inet6_csk_xmit
    [BRIDGE]: Do sysfs registration inside rtnl.
    [NET]: Do sysfs registration as part of register_netdevice.
    [TG3]: Fix possible NULL deref in tg3_run_loopback().
    [NET] linkwatch: Handle jiffies wrap-around
    [IRDA]: Switching to a workqueue for the SIR work
    [IRDA]: smsc-ircc: Minimal hotplug support.
    [IRDA]: Removing unused EXPORT_SYMBOLs
    [IRDA]: New maintainer.
    [NET]: Make netdev_chain a raw notifier.
    [IPV4]: ip_options_fragment() has no effect on fragmentation
    [NET]: Add missing operstates documentation.

    Linus Torvalds
     

11 May, 2006

3 commits


09 May, 2006

1 commit


07 May, 2006

2 commits

  • Atomically create attributes when class device is added. This avoids
    the race between registering class_device (which generates hotplug
    event), and the creation of attribute groups.

    Signed-off-by: Stephen Hemminger
    Signed-off-by: Greg Kroah-Hartman
    Signed-off-by: David S. Miller

    Stephen Hemminger
     
  • Extend the support of attribute groups in class_device's to allow
    groups to be created as part of the registration process. This allows
    network device's to avoid race between registration and creating
    groups.

    Note that unlike attributes that are a property of the class object,
    the groups are a property of the class_device object. This is done
    because there are different types of network devices (wireless for
    example).

    Signed-off-by: Stephen Hemminger
    Signed-off-by: Greg Kroah-Hartman
    Signed-off-by: David S. Miller

    Stephen Hemminger
     

05 May, 2006

3 commits

  • * 'merge' of git://git.kernel.org/pub/scm/linux/kernel/git/paulus/powerpc:
    [PATCH] powerpc: Use the ibm,pa-features property if available
    powerpc: Fix incorrect might_sleep in __get_user/__put_user on kernel addresses
    [PATCH] ppc32 CPM_UART: fixes and improvements
    [PATCH] ppc32 CPM_UART: Fixed break send on SCC
    [PATCH] powerpc/kprobes: fix singlestep out-of-line
    [PATCH] powerpc/pseries: avoid crash in PCI code if mem system not up

    Linus Torvalds
     
  • * master.kernel.org:/home/rmk/linux-2.6-mmc:
    [MMC] Move set_ios debugging into mmc.c
    [MMC] Correct mmc_request_done comments
    [MMC] PXA: reduce the number of lines PXAMCI debug uses
    [MMC] PXA and i.MX: don't avoid sending stop command on error
    [MMC] extend data timeout for writes
    [ARM] 3485/1: i.MX: MX1 SD/MMC fix of unintentional double start possibility

    Linus Torvalds
     
  • * 'splice' of git://brick.kernel.dk/data/git/linux-2.6-block:
    [PATCH] compat_sys_vmsplice: one-off in UIO_MAXIOV check
    [PATCH] splice: redo page lookup if add_to_page_cache() returns -EEXIST
    [PATCH] splice: rename remaining info variables to pipe
    [PATCH] splice: LRU fixups
    [PATCH] splice: fix unlocking of page on error ->prepare_write()

    Linus Torvalds
     

04 May, 2006

2 commits


03 May, 2006

2 commits

  • A number of small issues are fixed, and added the header file, missed from the
    original series. With this, driver should be pretty stable as tested among
    both platform-device-driven and "old way" boards. Also added missing GPL
    statement , and updated year field on existing ones to reflect
    code update.

    Signed-off-by: Vitaly Bordug
    Signed-off-by: Paul Mackerras

    Vitaly Bordug
     
  • The CSD contains a "read2write factor" which determines the multiplier to
    be applied to the read timeout to obtain the write timeout. We were
    ignoring this parameter, resulting in the possibility for writes being
    timed out too early.

    Signed-off-by: Russell King

    Russell King
     

02 May, 2006

9 commits

  • Apply the same rules as the anon pipe pages, only allow stealing
    if no one else is using the page.

    Signed-off-by: Jens Axboe

    Jens Axboe
     
  • Currently we rely on the PIPE_BUF_FLAG_LRU flag being set correctly
    to know whether we need to fiddle with page LRU state after stealing it,
    however for some origins we just don't know if the page is on the LRU
    list or not.

    So remove PIPE_BUF_FLAG_LRU and do this check/add manually in pipe_to_file()
    instead.

    Signed-off-by: Jens Axboe

    Jens Axboe
     
  • * 'audit.b10' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/audit-current:
    [PATCH] Audit Filter Performance
    [PATCH] Rework of IPC auditing
    [PATCH] More user space subject labels
    [PATCH] Reworked patch for labels on user space messages
    [PATCH] change lspp ipc auditing
    [PATCH] audit inode patch
    [PATCH] support for context based audit filtering, part 2
    [PATCH] support for context based audit filtering
    [PATCH] no need to wank with task_lock() and pinning task down in audit_syscall_exit()
    [PATCH] drop task argument of audit_syscall_{entry,exit}
    [PATCH] drop gfp_mask in audit_log_exit()
    [PATCH] move call of audit_free() into do_exit()
    [PATCH] sockaddr patch
    [PATCH] deal with deadlocks in audit_free()

    Linus Torvalds
     
  • When iptables userspace adds an ipt_standard_target, it calculates the size
    of the entire entry as:

    sizeof(struct ipt_entry) + XT_ALIGN(sizeof(struct ipt_standard_target))

    ipt_standard_target looks like this:

    struct xt_standard_target
    {
    struct xt_entry_target target;
    int verdict;
    };

    xt_entry_target contains a pointer, so when compiled for 64 bit the
    structure gets an extra 4 byte of padding at the end. On 32 bit
    architectures where iptables aligns to 8 byte it will also have 4
    byte padding at the end because it is only 36 bytes large.

    The compat_ipt_standard_fn in the kernel adjusts the offsets by

    sizeof(struct ipt_standard_target) - sizeof(struct compat_ipt_standard_target),

    which will always result in 4, even if the structure from userspace
    was already padded to a multiple of 8. On x86 this works out by
    accident because userspace only aligns to 4, on all other
    architectures this is broken and causes incorrect adjustments to
    the size and following offsets.

    Thanks to Linus for lots of debugging help and testing.

    Signed-off-by: Patrick McHardy
    Signed-off-by: Linus Torvalds

    Patrick McHardy
     
  • * 'splice' of git://brick.kernel.dk/data/git/linux-2.6-block:
    [PATCH] vmsplice: allow user to pass in gift pages
    [PATCH] pipe: enable atomic copying of pipe data to/from user space
    [PATCH] splice: call handle_ra_miss() on failure to lookup page
    [PATCH] Add ->splice_read/splice_write to def_blk_fops
    [PATCH] pipe: introduce ->pin() buffer operation
    [PATCH] splice: fix bugs in pipe_to_file()
    [PATCH] splice: fix bugs with stealing regular pipe pages

    Linus Torvalds
     
  • If SPLICE_F_GIFT is set, the user is basically giving this pages away to
    the kernel. That means we can steal them for eg page cache uses instead
    of copying it.

    The data must be properly page aligned and also a multiple of the page size
    in length.

    Signed-off-by: Jens Axboe

    Jens Axboe
     
  • The pipe ->map() method uses kmap() to virtually map the pages, which
    is both slow and has known scalability issues on SMP. This patch enables
    atomic copying of pipe pages, by pre-faulting data and using kmap_atomic()
    instead.

    lmbench bw_pipe and lat_pipe measurements agree this is a Good Thing. Here
    are results from that on a UP machine with highmem (1.5GiB of RAM), running
    first a UP kernel, SMP kernel, and SMP kernel patched.

    Vanilla-UP:
    Pipe bandwidth: 1622.28 MB/sec
    Pipe bandwidth: 1610.59 MB/sec
    Pipe bandwidth: 1608.30 MB/sec
    Pipe latency: 7.3275 microseconds
    Pipe latency: 7.2995 microseconds
    Pipe latency: 7.3097 microseconds

    Vanilla-SMP:
    Pipe bandwidth: 1382.19 MB/sec
    Pipe bandwidth: 1317.27 MB/sec
    Pipe bandwidth: 1355.61 MB/sec
    Pipe latency: 9.6402 microseconds
    Pipe latency: 9.6696 microseconds
    Pipe latency: 9.6153 microseconds

    Patched-SMP:
    Pipe bandwidth: 1578.70 MB/sec
    Pipe bandwidth: 1579.95 MB/sec
    Pipe bandwidth: 1578.63 MB/sec
    Pipe latency: 9.1654 microseconds
    Pipe latency: 9.2266 microseconds
    Pipe latency: 9.1527 microseconds

    Signed-off-by: Jens Axboe

    Jens Axboe
     
  • The ->map() function is really expensive on highmem machines right now,
    since it has to use the slower kmap() instead of kmap_atomic(). Splice
    rarely needs to access the virtual address of a page, so it's a waste
    of time doing it.

    Introduce ->pin() to take over the responsibility of making sure the
    page data is valid. ->map() is then reduced to just kmap(). That way we
    can also share a most of the pipe buffer ops between pipe.c and splice.c

    Signed-off-by: Jens Axboe

    Jens Axboe
     
  • Found by Oleg Nesterov , fixed by me.

    - Only allow full pages to go to the page cache.
    - Check page != buf->page instead of using PIPE_BUF_FLAG_STOLEN.
    - Remember to clear 'stolen' if add_to_page_cache() fails.

    And as a cleanup on that:

    - Make the bottom fall-through logic a little less convoluted. Also make
    the steal path hold an extra reference to the page, so we don't have
    to differentiate between stolen and non-stolen at the end.

    Signed-off-by: Jens Axboe

    Jens Axboe
     

01 May, 2006

8 commits

  • * master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6:
    [TG3]: Update version and reldate
    [TG3]: Fix bug in nvram write
    [TG3]: Add reset_phy parameter to chip reset functions
    [TG3]: Reset chip when changing MAC address
    [TG3]: Add phy workaround
    [TG3]: Call netif_carrier_off() during phy reset
    [IPV6]: Fix race in route selection.
    [XFRM]: fix incorrect xfrm_policy_afinfo_lock use
    [XFRM]: fix incorrect xfrm_state_afinfo_lock use
    [TCP]: Fix unlikely usage in tcp_transmit_skb()
    [XFRM]: fix softirq-unsafe xfrm typemap->lock use
    [IPSEC]: Fix IP ID selection
    [NET]: use hlist_unhashed()
    [IPV4]: inet_init() -> fs_initcall
    [NETLINK]: cleanup unused macro in net/netlink/af_netlink.c
    [PKT_SCHED] netem: fix loss
    [X25]: fix for spinlock recurse and spinlock lockup with timer handler

    Linus Torvalds
     
  • 1) The audit_ipc_perms() function has been split into two different
    functions:
    - audit_ipc_obj()
    - audit_ipc_set_perm()

    There's a key shift here... The audit_ipc_obj() collects the uid, gid,
    mode, and SElinux context label of the current ipc object. This
    audit_ipc_obj() hook is now found in several places. Most notably, it
    is hooked in ipcperms(), which is called in various places around the
    ipc code permforming a MAC check. Additionally there are several places
    where *checkid() is used to validate that an operation is being
    performed on a valid object while not necessarily having a nearby
    ipcperms() call. In these locations, audit_ipc_obj() is called to
    ensure that the information is captured by the audit system.

    The audit_set_new_perm() function is called any time the permissions on
    the ipc object changes. In this case, the NEW permissions are recorded
    (and note that an audit_ipc_obj() call exists just a few lines before
    each instance).

    2) Support for an AUDIT_IPC_SET_PERM audit message type. This allows
    for separate auxiliary audit records for normal operations on an IPC
    object and permissions changes. Note that the same struct
    audit_aux_data_ipcctl is used and populated, however there are separate
    audit_log_format statements based on the type of the message. Finally,
    the AUDIT_IPC block of code in audit_free_aux() was extended to handle
    aux messages of this new type. No more mem leaks I hope ;-)

    Signed-off-by: Al Viro

    Steve Grubb
     
  • Hi,

    The patch below builds upon the patch sent earlier and adds subject label to
    all audit events generated via the netlink interface. It also cleans up a few
    other minor things.

    Signed-off-by: Steve Grubb

    Signed-off-by: Al Viro

    Steve Grubb
     
  • The below patch should be applied after the inode and ipc sid patches.
    This patch is a reworking of Tim's patch that has been updated to match
    the inode and ipc patches since its similar.

    [updated:
    > Stephen Smalley also wanted to change a variable from isec to tsec in the
    > user sid patch. ]

    Signed-off-by: Steve Grubb
    Signed-off-by: Al Viro

    Steve Grubb
     
  • Hi,

    The patch below converts IPC auditing to collect sid's and convert to context
    string only if it needs to output an audit record. This patch depends on the
    inode audit change patch already being applied.

    Signed-off-by: Steve Grubb

    Signed-off-by: Al Viro

    Steve Grubb
     
  • Previously, we were gathering the context instead of the sid. Now in this patch,
    we gather just the sid and convert to context only if an audit event is being
    output.

    This patch brings the performance hit from 146% down to 23%

    Signed-off-by: Al Viro

    Steve Grubb
     
  • The following patch provides selinux interfaces that will allow the audit
    system to perform filtering based on the process context (user, role, type,
    sensitivity, and clearance). These interfaces will allow the selinux
    module to perform efficient matches based on lower level selinux constructs,
    rather than relying on context retrievals and string comparisons within
    the audit module. It also allows for dominance checks on the mls portion
    of the contexts that are impossible with only string comparisons.

    Signed-off-by: Darrel Goeddel
    Signed-off-by: Al Viro

    Darrel Goeddel
     
  • ... it's always current, and that's a good thing - allows simpler locking.

    Signed-off-by: Al Viro

    Al Viro
     

30 Apr, 2006

2 commits


29 Apr, 2006

2 commits


28 Apr, 2006

4 commits

  • - Add new SA_PROBEIRQ which suppresses the new sharing-mismatch warning.
    Some drivers like to use request_irq() to find an unused interrupt slot.

    - Use it in i82365.c

    - Kill unused SA_PROBE.

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

    Andrew Morton
     
  • * master.kernel.org:/pub/scm/linux/kernel/git/gregkh/driver-2.6:
    [PATCH] Added URI of "linux kernel development process"
    [PATCH] Kobject: possible cleanups
    [PATCH] Fix OCFS2 warning when DEBUG_FS is not enabled
    [PATCH] Kobject: fix build error
    [PATCH] Frame buffer: remove cmap sysfs interface

    Linus Torvalds
     
  • This patch contains the following possible cleanups:
    - #if 0 the following unused global function:
    - subsys_remove_file()
    - remove the following unused EXPORT_SYMBOL's:
    - kset_find_obj
    - subsystem_init
    - remove the following unused EXPORT_SYMBOL_GPL:
    - kobject_add_dir

    Signed-off-by: Adrian Bunk
    Signed-off-by: Greg Kroah-Hartman

    Adrian Bunk
     
  • Fix the following warning which happens when OCFS2_FS is enabled but
    DEBUG_FS isn't:

    fs/ocfs2/dlmglue.c: In function `ocfs2_dlm_init_debug':
    fs/ocfs2/dlmglue.c:2036: warning: passing arg 5 of `debugfs_create_file' discards qualifiers from pointer target type

    Signed-off-by: Jean Delvare
    Cc: Arjan van de Ven
    Cc: Joel Becker
    Acked-by: Mark Fasheh
    Signed-off-by: Andrew Morton
    Signed-off-by: Greg Kroah-Hartman

    Jean Delvare