[patch 00/16] 2.6.25.20-stable review - Kernel

This is a discussion on [patch 00/16] 2.6.25.20-stable review - Kernel ; This is the start of the stable review cycle for the 2.6.25.20 release. There are 16 patches in this series, all will be posted as a response to this one. If anyone has any issues with these being applied, please ...

+ Reply to Thread
Results 1 to 6 of 6

Thread: [patch 00/16] 2.6.25.20-stable review

  1. [patch 00/16] 2.6.25.20-stable review

    This is the start of the stable review cycle for the 2.6.25.20 release.
    There are 16 patches in this series, all will be posted as a response to
    this one. If anyone has any issues with these being applied, please let
    us know. If anyone is a maintainer of the proper subsystem, and wants
    to add a Signed-off-by: line to the patch, please respond with it.

    These patches are sent out with a number of different people on the
    Cc: line. If you wish to be a reviewer, please email stable@kernel.org
    to add your name to the list. If you want to be off the reviewer list,
    also email us.

    Responses should be made by Monday, November 10, 20:00:00 UTC. Anything
    received after that time might be too late.

    The whole patch series can be found in one patch at:
    kernel.org/pub/linux/kernel/v2.6/stable-review/patch-2.6.25.20-rc1.gz
    and the diffstat can be found below.


    thanks,

    greg k-h

    -----------------

    Makefile | 2
    arch/sparc64/kernel/trampoline.S | 18 ++-
    drivers/acpi/dock.c | 5 -
    drivers/acpi/video.c | 123 ++++++++++++++-----------
    drivers/edac/cell_edac.c | 2
    drivers/gpio/gpiolib.c | 2
    drivers/net/wireless/libertas/scan.c | 4
    fs/ext2/dir.c | 60 +++++++-----
    fs/ext3/dir.c | 10 +-
    fs/ext4/dir.c | 11 +-
    include/linux/sched.h | 4
    include/math-emu/op-common.h | 17 ++-
    include/net/scm.h | 5 -
    net/core/dev.c | 27 +----
    net/core/rtnetlink.c | 2
    net/core/scm.c | 24 ++++
    net/ipv4/netfilter/nf_conntrack_l3proto_ipv4.c | 2
    net/ipv4/netfilter/nf_nat_snmp_basic.c | 1
    net/ipv6/tcp_ipv6.c | 2
    net/netfilter/xt_iprange.c | 8 -
    security/commoncap.c | 6 -
    sound/core/control.c | 4
    22 files changed, 206 insertions(+), 133 deletions(-)
    --
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/

  2. [patch 07/16] ALSA: use correct lock in snd_ctl_dev_disconnect()

    2.6.25-stable review patch. If anyone has any objections, please let us know.

    ------------------

    From: Takashi Iwai

    commit d8009882e9f5e1a76986c741f071edd2ad760c97 upstream

    The lock used in snd_ctl_dev_disconnect() should be card->ctl_files_rwlock
    for protection of card->ctl_files entries, instead of card->controls_rwsem.

    Reported-by: Vegard Nossum
    Signed-off-by: Takashi Iwai
    Signed-off-by: Jaroslav Kysela
    Cc: Chris Wedgwood
    Signed-off-by: Greg Kroah-Hartman

    ---
    sound/core/control.c | 4 ++--
    1 file changed, 2 insertions(+), 2 deletions(-)

    --- a/sound/core/control.c
    +++ b/sound/core/control.c
    @@ -1426,12 +1426,12 @@ static int snd_ctl_dev_disconnect(struct
    cardnum = card->number;
    snd_assert(cardnum >= 0 && cardnum < SNDRV_CARDS, return -ENXIO);

    - down_read(&card->controls_rwsem);
    + read_lock(&card->ctl_files_rwlock);
    list_for_each_entry(ctl, &card->ctl_files, list) {
    wake_up(&ctl->change_sleep);
    kill_fasync(&ctl->fasync, SIGIO, POLL_ERR);
    }
    - up_read(&card->controls_rwsem);
    + read_unlock(&card->ctl_files_rwlock);

    if ((err = snd_unregister_device(SNDRV_DEVICE_TYPE_CONTROL,
    card, -1)) < 0)

    --
    --
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/

  3. [patch 14/16] netfilter: xt_iprange: fix range inversion match


    2.6.25-stable review patch. If anyone has any objections, please let us know.

    ------------------

    From: Alexey Dobriyan

    netfilter: xt_iprange: fix range inversion match

    Upstream commit 6def1eb48:

    Inverted IPv4 v1 and IPv6 v0 matches don't match anything since 2.6.25-rc1!

    Signed-off-by: Alexey Dobriyan
    Acked-by: Jan Engelhardt
    Signed-off-by: Patrick McHardy
    Signed-off-by: Greg Kroah-Hartman

    ---
    net/netfilter/xt_iprange.c | 8 ++++----
    1 file changed, 4 insertions(+), 4 deletions(-)

    --- a/net/netfilter/xt_iprange.c
    +++ b/net/netfilter/xt_iprange.c
    @@ -67,7 +67,7 @@ iprange_mt4(const struct sk_buff *skb, c
    if (info->flags & IPRANGE_SRC) {
    m = ntohl(iph->saddr) < ntohl(info->src_min.ip);
    m |= ntohl(iph->saddr) > ntohl(info->src_max.ip);
    - m ^= info->flags & IPRANGE_SRC_INV;
    + m ^= !!(info->flags & IPRANGE_SRC_INV);
    if (m) {
    pr_debug("src IP " NIPQUAD_FMT " NOT in range %s"
    NIPQUAD_FMT "-" NIPQUAD_FMT "\n",
    @@ -81,7 +81,7 @@ iprange_mt4(const struct sk_buff *skb, c
    if (info->flags & IPRANGE_DST) {
    m = ntohl(iph->daddr) < ntohl(info->dst_min.ip);
    m |= ntohl(iph->daddr) > ntohl(info->dst_max.ip);
    - m ^= info->flags & IPRANGE_DST_INV;
    + m ^= !!(info->flags & IPRANGE_DST_INV);
    if (m) {
    pr_debug("dst IP " NIPQUAD_FMT " NOT in range %s"
    NIPQUAD_FMT "-" NIPQUAD_FMT "\n",
    @@ -123,14 +123,14 @@ iprange_mt6(const struct sk_buff *skb, c
    if (info->flags & IPRANGE_SRC) {
    m = iprange_ipv6_sub(&iph->saddr, &info->src_min.in6) < 0;
    m |= iprange_ipv6_sub(&iph->saddr, &info->src_max.in6) > 0;
    - m ^= info->flags & IPRANGE_SRC_INV;
    + m ^= !!(info->flags & IPRANGE_SRC_INV);
    if (m)
    return false;
    }
    if (info->flags & IPRANGE_DST) {
    m = iprange_ipv6_sub(&iph->daddr, &info->dst_min.in6) < 0;
    m |= iprange_ipv6_sub(&iph->daddr, &info->dst_max.in6) > 0;
    - m ^= info->flags & IPRANGE_DST_INV;
    + m ^= !!(info->flags & IPRANGE_DST_INV);
    if (m)
    return false;
    }

    --
    --
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/

  4. [patch 06/16] file caps: always start with clear bprm->caps_*

    2.6.25-stable review patch. If anyone has any objections, please let us know.

    ------------------

    From: Serge Hallyn

    commit 3318a386e4ca68c76e0294363d29bdc46fcad670 upstream

    While Linux doesn't honor setuid on scripts. However, it mistakenly
    behaves differently for file capabilities.

    This patch fixes that behavior by making sure that get_file_caps()
    begins with empty bprm->caps_*. That way when a script is loaded,
    its bprm->caps_* may be filled when binfmt_misc calls prepare_binprm(),
    but they will be cleared again when binfmt_elf calls prepare_binprm()
    next to read the interpreter's file capabilities.

    Signed-off-by: Serge Hallyn
    Acked-by: David Howells
    Acked-by: Andrew G. Morgan
    Signed-off-by: Linus Torvalds
    Signed-off-by: Greg Kroah-Hartman

    ---
    security/commoncap.c | 6 +++---
    1 file changed, 3 insertions(+), 3 deletions(-)

    --- a/security/commoncap.c
    +++ b/security/commoncap.c
    @@ -244,10 +244,10 @@ static int get_file_caps(struct linux_bi
    struct vfs_cap_data vcaps;
    struct inode *inode;

    - if (bprm->file->f_vfsmnt->mnt_flags & MNT_NOSUID) {
    - bprm_clear_caps(bprm);
    + bprm_clear_caps(bprm);
    +
    + if (bprm->file->f_vfsmnt->mnt_flags & MNT_NOSUID)
    return 0;
    - }

    dentry = dget(bprm->file->f_dentry);
    inode = dentry->d_inode;

    --
    --
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/

  5. [patch 10/16] net: Fix netdev_run_todo dead-lock

    2.6.25-stable review patch. If anyone has any objections, please let us know.

    ------------------

    From: Herbert Xu

    [ Upstream commit 58ec3b4db9eb5a28e3aec5f407a54e28f7039c19 ]

    Benjamin Thery tracked down a bug that explains many instances
    of the error

    unregister_netdevice: waiting for %s to become free. Usage count = %d

    It turns out that netdev_run_todo can dead-lock with itself if
    a second instance of it is run in a thread that will then free
    a reference to the device waited on by the first instance.

    The problem is really quite silly. We were trying to create
    parallelism where none was required. As netdev_run_todo always
    follows a RTNL section, and that todo tasks can only be added
    with the RTNL held, by definition you should only need to wait
    for the very ones that you've added and be done with it.

    There is no need for a second mutex or spinlock.

    This is exactly what the following patch does.

    Signed-off-by: Herbert Xu
    Signed-off-by: David S. Miller
    Signed-off-by: Greg Kroah-Hartman

    ---
    net/core/dev.c | 27 ++++++---------------------
    net/core/rtnetlink.c | 2 +-
    2 files changed, 7 insertions(+), 22 deletions(-)

    --- a/net/core/dev.c
    +++ b/net/core/dev.c
    @@ -3593,14 +3593,11 @@ static int dev_new_index(struct net *net
    }

    /* Delayed registration/unregisteration */
    -static DEFINE_SPINLOCK(net_todo_list_lock);
    static LIST_HEAD(net_todo_list);

    static void net_set_todo(struct net_device *dev)
    {
    - spin_lock(&net_todo_list_lock);
    list_add_tail(&dev->todo_list, &net_todo_list);
    - spin_unlock(&net_todo_list_lock);
    }

    static void rollback_registered(struct net_device *dev)
    @@ -3909,33 +3906,24 @@ static void netdev_wait_allrefs(struct n
    * free_netdev(y1);
    * free_netdev(y2);
    *
    - * We are invoked by rtnl_unlock() after it drops the semaphore.
    + * We are invoked by rtnl_unlock().
    * This allows us to deal with problems:
    * 1) We can delete sysfs objects which invoke hotplug
    * without deadlocking with linkwatch via keventd.
    * 2) Since we run with the RTNL semaphore not held, we can sleep
    * safely in order to wait for the netdev refcnt to drop to zero.
    + *
    + * We must not return until all unregister events added during
    + * the interval the lock was held have been completed.
    */
    -static DEFINE_MUTEX(net_todo_run_mutex);
    void netdev_run_todo(void)
    {
    struct list_head list;

    - /* Need to guard against multiple cpu's getting out of order. */
    - mutex_lock(&net_todo_run_mutex);
    -
    - /* Not safe to do outside the semaphore. We must not return
    - * until all unregister events invoked by the local processor
    - * have been completed (either by this todo run, or one on
    - * another cpu).
    - */
    - if (list_empty(&net_todo_list))
    - goto out;
    -
    /* Snapshot list, allow later requests */
    - spin_lock(&net_todo_list_lock);
    list_replace_init(&net_todo_list, &list);
    - spin_unlock(&net_todo_list_lock);
    +
    + __rtnl_unlock();

    while (!list_empty(&list)) {
    struct net_device *dev
    @@ -3965,9 +3953,6 @@ void netdev_run_todo(void)
    /* Free network device */
    kobject_put(&dev->dev.kobj);
    }
    -
    -out:
    - mutex_unlock(&net_todo_run_mutex);
    }

    static struct net_device_stats *internal_stats(struct net_device *dev)
    --- a/net/core/rtnetlink.c
    +++ b/net/core/rtnetlink.c
    @@ -73,7 +73,7 @@ void __rtnl_unlock(void)

    void rtnl_unlock(void)
    {
    - mutex_unlock(&rtnl_mutex);
    + /* This fellow will unlock it for us. */
    netdev_run_todo();
    }


    --
    --
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/

  6. [patch 16/16] netfilter: restore lost ifdef guarding defrag exception

    2.6.25-stable review patch. If anyone has any objections, please let us know.

    ------------------

    From: Patrick McHardy

    netfilter: restore lost #ifdef guarding defrag exception

    Upstream commit 38f7ac3eb:

    Nir Tzachar reported a warning when sending
    fragments over loopback with NAT:

    [ 6658.338121] WARNING: at net/ipv4/netfilter/nf_nat_standalone.c:89 nf_nat_fn+0x33/0x155()

    The reason is that defragmentation is skipped for already tracked connections.
    This is wrong in combination with NAT and ip_conntrack actually had some ifdefs
    to avoid this behaviour when NAT is compiled in.

    The entire "optimization" may seem a bit silly, for now simply restoring the
    lost #ifdef is the easiest solution until we can come up with something better.

    Signed-off-by: Patrick McHardy
    Signed-off-by: Greg Kroah-Hartman

    ---
    net/ipv4/netfilter/nf_conntrack_l3proto_ipv4.c | 2 ++
    1 file changed, 2 insertions(+)

    --- a/net/ipv4/netfilter/nf_conntrack_l3proto_ipv4.c
    +++ b/net/ipv4/netfilter/nf_conntrack_l3proto_ipv4.c
    @@ -138,10 +138,12 @@ static unsigned int ipv4_conntrack_defra
    const struct net_device *out,
    int (*okfn)(struct sk_buff *))
    {
    +#if !defined(CONFIG_NF_NAT) && !defined(CONFIG_NF_NAT_MODULE)
    /* Previously seen (loopback)? Ignore. Do this before
    fragment check. */
    if (skb->nfct)
    return NF_ACCEPT;
    +#endif

    /* Gather fragments. */
    if (ip_hdr(skb)->frag_off & htons(IP_MF | IP_OFFSET)) {

    --
    --
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/

+ Reply to Thread