17 Oct, 2008

1 commit


15 Oct, 2008

9 commits

  • * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/hid: (55 commits)
    HID: build drivers for all quirky devices by default
    HID: add missing blacklist entry for Apple ATV ircontrol
    HID: add support for Bright ABNT2 brazilian device
    HID: Don't let Avermedia Radio FM800 be handled by usb hid drivers
    HID: fix numlock led on Dell device 0x413c/0x2105
    HID: remove warn() macro from usb hid drivers
    HID: remove info() macro from usb HID drivers
    HID: add appletv IR receiver quirk
    HID: fix a lockup regression when using force feedback on a PID device
    HID: hiddev.h: Fix example code.
    HID: hiddev.h: Fix mixed space and tabs in example code.
    HID: convert to dev_* prints
    HID: remove hid-ff
    HID: move zeroplus FF processing
    HID: move thrustmaster FF processing
    HID: move pantherlord FF processing
    HID: fix incorrent length condition in hidraw_write()
    HID: fix ttyhid deadlock
    HID: ignore iBuddy devices
    HID: report descriptor fix for remaining MacBook JIS keyboards
    ...

    Linus Torvalds
     
  • Move connecting from usbhid to the hid layer and fix also hidp in
    that manner.
    This removes all the ignore/force hidinput/hiddev connecting quirks.

    Signed-off-by: Jiri Slaby
    Signed-off-by: Jiri Kosina

    Jiri Slaby
     
  • Move them from the core code to a separate driver.

    Signed-off-by: Jiri Slaby
    Signed-off-by: Jiri Kosina

    Jiri Slaby
     
  • Move ignore quirks from usbhid-quirks into hid-core code. Also don't output
    warning when ENODEV is error code in usbhid and try ordinal input in hidp
    when that error is returned.

    Signed-off-by: Jiri Slaby
    Signed-off-by: Jiri Kosina

    Jiri Slaby
     
  • Next step for complete hid bus, this patch includes:
    - call parser either from probe or from hid-core if there is no probe.
    - add ll_driver structure and centralize some stuff there (open, close...)
    - split and merge usb_hid_configure and hid_probe into several functions
    to allow hooks/fixes between them

    Signed-off-by: Jiri Slaby
    Signed-off-by: Jiri Kosina

    Jiri Slaby
     
  • Make a bus from hid core. This is the first step for converting all the
    quirks and separate almost-drivers into real drivers attached to this bus.

    It's implemented to change behaviour in very tiny manner, so that no driver
    needs to be changed this time.

    Also add generic drivers for both usb and bt into usbhid or hidp
    respectively which will bind all non-blacklisted device. Those blacklisted
    will be either grabbed by special drivers or by nobody if they are broken at
    the very rude base.

    Signed-off-by: Jiri Slaby
    Signed-off-by: Jiri Kosina

    Jiri Slaby
     
  • * 'for-2.6.28' of git://linux-nfs.org/~bfields/linux: (59 commits)
    svcrdma: Fix IRD/ORD polarity
    svcrdma: Update svc_rdma_send_error to use DMA LKEY
    svcrdma: Modify the RPC reply path to use FRMR when available
    svcrdma: Modify the RPC recv path to use FRMR when available
    svcrdma: Add support to svc_rdma_send to handle chained WR
    svcrdma: Modify post recv path to use local dma key
    svcrdma: Add a service to register a Fast Reg MR with the device
    svcrdma: Query device for Fast Reg support during connection setup
    svcrdma: Add FRMR get/put services
    NLM: Remove unused argument from svc_addsock() function
    NLM: Remove "proto" argument from lockd_up()
    NLM: Always start both UDP and TCP listeners
    lockd: Remove unused fields in the nlm_reboot structure
    lockd: Add helper to sanity check incoming NOTIFY requests
    lockd: change nlmclnt_grant() to take a "struct sockaddr *"
    lockd: Adjust nlmsvc_lookup_host() to accomodate AF_INET6 addresses
    lockd: Adjust nlmclnt_lookup_host() signature to accomodate non-AF_INET
    lockd: Support non-AF_INET addresses in nlm_lookup_host()
    NLM: Convert nlm_lookup_host() to use a single argument
    svcrdma: Add Fast Reg MR Data Types
    ...

    Linus Torvalds
     
  • * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6:
    qlge: Fix page size ifdef test.
    net: Rationalise email address: Network Specific Parts
    dsa: fix compile bug on s390
    netns: mib6 section fixlet
    enic: Fix Kconfig headline description
    de2104x: wrong MAC address fix
    s390: claw compile fixlet
    net: export genphy_restart_aneg
    cxgb3: extend copyrights to 2008
    cxgb3: update driver version
    net/phy: add missing kernel-doc
    pktgen: fix skb leak in case of failure
    mISDN/dsp_cmx.c: fix size checks
    misdn: use nonseekable_open()
    net: fix driver build errors due to missing net/ip6_checksum.h include

    Linus Torvalds
     
  • For some m68k configs, I get:

    | net/rfkill/rfkill-input.c: In function 'rfkill_start':
    | net/rfkill/rfkill-input.c:208: error: dereferencing pointer to incomplete type

    As the incomplete type is `struct task_struct', including fixes
    it.

    Signed-off-by: Geert Uytterhoeven
    Signed-off-by: Linus Torvalds

    Geert Uytterhoeven
     

14 Oct, 2008

6 commits

  • Clean up the various different email addresses of mine listed in the code
    to a single current and valid address. As Dave says his network merges
    for 2.6.28 are now done this seems a good point to send them in where
    they won't risk disrupting real changes.

    Signed-off-by: Alan Cox
    Signed-off-by: David S. Miller

    Alan Cox
     
  • git commit 45cec1bac0719c904bb5f4405c2937f7e715888c
    "dsa: Need to select PHYLIB." causes this build bug on s390:

    drivers/built-in.o: In function `phy_stop_interrupts':
    /home/heicarst/linux-2.6/drivers/net/phy/phy.c:631: undefined reference to `free_irq'
    /home/heicarst/linux-2.6/drivers/net/phy/phy.c:646: undefined reference to `enable_irq'
    drivers/built-in.o: In function `phy_start_interrupts':
    /home/heicarst/linux-2.6/drivers/net/phy/phy.c:601: undefined reference to `request_irq'
    drivers/built-in.o: In function `phy_interrupt':
    /home/heicarst/linux-2.6/drivers/net/phy/phy.c:528: undefined reference to `disable_irq_nosync'
    drivers/built-in.o: In function `phy_change':
    /home/heicarst/linux-2.6/drivers/net/phy/phy.c:674: undefined reference to `enable_irq'
    /home/heicarst/linux-2.6/drivers/net/phy/phy.c:692: undefined reference to `disable_irq'

    PHYLIB has alread a depend on !S390, however select PHYLIB at DSA overrides
    that unfortunately. So add a depend on !S390 to DSA as well.

    Signed-off-by: Heiko Carstens
    Signed-off-by: David S. Miller

    Heiko Carstens
     
  • LD net/ipv6/ipv6.o
    WARNING: net/ipv6/ipv6.o(.text+0xd8): Section mismatch in reference from the function inet6_net_init() to the function .init.text:ipv6_init_mibs()

    Signed-off-by: Alexey Dobriyan
    Signed-off-by: David S. Miller

    Alexey Dobriyan
     
  • Seems that skb goes into void unless something magic happened
    in pskb_expand_head in case of failure.

    Signed-off-by: Ilpo Järvinen
    Acked-by: Arnaldo Carvalho de Melo
    Signed-off-by: David S. Miller

    Ilpo Järvinen
     
  • This is a much better version of a previous patch to make the parser
    tables constant. Rather than changing the typedef, we put the "const" in
    all the various places where its required, allowing the __initconst
    exception for nfsroot which was the cause of the previous trouble.

    This was posted for review some time ago and I believe its been in -mm
    since then.

    Signed-off-by: Steven Whitehouse
    Cc: Alexander Viro
    Signed-off-by: Linus Torvalds

    Steven Whitehouse
     
  • * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6:
    net/mac80211/rx.c: fix build error
    acpi: Make ACPI_TOSHIBA depend on INPUT.
    net/bfin_mac.c MDIO namespace fixes
    jme: remove unused #include
    netfilter: remove unused #include
    net: Fix off-by-one in skb_dma_map
    smc911x: Add support for LAN921{5,7,8} chips from SMSC
    qlge: remove duplicated #include
    wireless: remove duplicated #include
    net/au1000_eth.c MDIO namespace fixes
    net/tc35815.c: fix compilation
    sky2: Fix WOL regression
    r8169: NULL pointer dereference on r8169 load

    Linus Torvalds
     

13 Oct, 2008

5 commits

  • older versions of gcc do not recognize that ieee80211_rx_h_mesh_fwding()
    is unused when CONFIG_MAC80211_MESH is disabled:

    net/built-in.o: In function `ieee80211_rx_h_mesh_fwding':
    rx.c:(.text+0xd89af): undefined reference to `mpp_path_lookup'
    rx.c:(.text+0xd89c6): undefined reference to `mpp_path_add'

    as this code construct:

    if (ieee80211_vif_is_mesh(&sdata->vif))
    CALL_RXH(ieee80211_rx_h_mesh_fwding);

    still causes ieee80211_rx_h_mesh_fwding() to be linked in.

    Protect these places with an #ifdef.

    commit b0dee578 ("Fix modpost failure when rx handlers are not inlined.")
    solved part of this problem - this patch is still needed.

    Signed-off-by: Ingo Molnar
    Signed-off-by: David S. Miller

    Ingo Molnar
     
  • The file(s) below do not use LINUX_VERSION_CODE nor KERNEL_VERSION.
    net/netfilter/nf_tproxy_core.c

    This patch removes the said #include .

    Signed-off-by: Huang Weiyi
    Signed-off-by: David S. Miller

    Huang Weiyi
     
  • The unwind loop iterates down to -1 instead of stopping at 0 and ends up
    accessing ->frags[-1].

    Signed-off-by: Dimitris Michailidis
    Signed-off-by: David S. Miller

    Dimitris Michailidis
     
  • Removed duplicated include in
    net/wireless/core.c.

    Signed-off-by: Huang Weiyi
    Acked-by: Johannes Berg
    Signed-off-by: David S. Miller

    Huang Weiyi
     
  • James Morris
     

12 Oct, 2008

2 commits

  • Brown paper bag error of calling memset with sizeof(p) instead
    of sizeof(*p).

    Signed-off-by: Herbert Xu
    Signed-off-by: David S. Miller

    Herbert Xu
     
  • Linus noted a build failure case:

    net/netfilter/ipvs/ip_vs_xmit.c: In function 'ip_vs_tunnel_xmit':
    net/netfilter/ipvs/ip_vs_xmit.c:616: error: implicit declaration of function 'ip_select_ident'

    The proper include file (net/ip.h) is being included in ip_vs_xmit.c to get
    that declaration. So the only possible case where this can happen is if
    CONFIG_INET is not enabled.

    This seems to be purely a missing dependency in the ipvs/Kconfig file IP_VS
    entry.

    Also, while we're here, remove the out of date "EXPERIMENTAL" string in the
    IP_VS config help header line. IP_VS no longer depends upon CONFIG_EXPERIMENTAL

    Signed-off-by: David S. Miller

    David S. Miller
     

11 Oct, 2008

3 commits


10 Oct, 2008

14 commits

  • Add the necessary NetLabel support for the new CIPSO mapping,
    CIPSO_V4_MAP_LOCAL, which allows full LSM label/context support.

    Signed-off-by: Paul Moore
    Reviewed-by: James Morris

    Paul Moore
     
  • This patch accomplishes three minor tasks: add a new tag type for local
    labeling, rename the CIPSO_V4_MAP_STD define to CIPSO_V4_MAP_TRANS and
    replace some of the CIPSO "magic numbers" with constants from the header
    file. The first change allows CIPSO to support full LSM labels/contexts,
    not just MLS attributes. The second change brings the mapping names inline
    with what userspace is using, compatibility is preserved since we don't
    actually change the value. The last change is to aid readability and help
    prevent mistakes.

    Signed-off-by: Paul Moore

    Paul Moore
     
  • Previous work enabled the use of address based NetLabel selectors, which while
    highly useful, brought the potential for additional per-packet overhead when
    used. This patch attempts to solve that by applying NetLabel socket labels
    when sockets are connect()'d. This should alleviate the per-packet NetLabel
    labeling for all connected sockets (yes, it even works for connected DGRAM
    sockets).

    Signed-off-by: Paul Moore
    Reviewed-by: James Morris

    Paul Moore
     
  • This patch builds upon the new NetLabel address selector functionality by
    providing the NetLabel KAPI and CIPSO engine support needed to enable the
    new packet-based labeling. The only new addition to the NetLabel KAPI at
    this point is shown below:

    * int netlbl_skbuff_setattr(skb, family, secattr)

    ... and is designed to be called from a Netfilter hook after the packet's
    IP header has been populated such as in the FORWARD or LOCAL_OUT hooks.

    This patch also provides the necessary SELinux hooks to support this new
    functionality. Smack support is not currently included due to uncertainty
    regarding the permissions needed to expand the Smack network access controls.

    Signed-off-by: Paul Moore
    Reviewed-by: James Morris

    Paul Moore
     
  • This patch extends the NetLabel traffic labeling capabilities to individual
    packets based not only on the LSM domain but the by the destination address
    as well. The changes here only affect the core NetLabel infrastructre,
    changes to the NetLabel KAPI and individial protocol engines are also
    required but are split out into a different patch to ease review.

    Signed-off-by: Paul Moore
    Reviewed-by: James Morris

    Paul Moore
     
  • Create an ordered IP address linked list mechanism similar to the core
    kernel's linked list construct. The idea behind this list functionality
    is to create an extensibile linked list ordered by IP address mask to
    ease the matching of network addresses. The linked list is ordered with
    larger address masks at the front of the list and shorter address masks
    at the end to facilitate overriding network entries with individual host
    or subnet entries.

    Signed-off-by: Paul Moore
    Reviewed-by: James Morris

    Paul Moore
     
  • NetLabel has always had a list of backpointers in the CIPSO DOI definition
    structure which pointed to the NetLabel LSM domain mapping structures which
    referenced the CIPSO DOI struct. The rationale for this was that when an
    administrator removed a CIPSO DOI from the system all of the associated
    NetLabel LSM domain mappings should be removed as well; a list of
    backpointers made this a simple operation.

    Unfortunately, while the backpointers did make the removal easier they were
    a bit of a mess from an implementation point of view which was making
    further development difficult. Since the removal of a CIPSO DOI is a
    realtively rare event it seems to make sense to remove this backpointer
    list as the optimization was hurting us more then it was helping. However,
    we still need to be able to track when a CIPSO DOI definition is being used
    so replace the backpointer list with a reference count. In order to
    preserve the current functionality of removing the associated LSM domain
    mappings when a CIPSO DOI is removed we walk the LSM domain mapping table,
    removing the relevant entries.

    Signed-off-by: Paul Moore
    Reviewed-by: James Morris

    Paul Moore
     
  • At some point I think I messed up and dropped the calls to netlbl_skbuff_err()
    which are necessary for CIPSO to send error notifications to remote systems.
    This patch re-introduces the error handling calls into the SELinux code.

    Signed-off-by: Paul Moore
    Acked-by: James Morris

    Paul Moore
     
  • After some discussions with the Smack folks, well just Casey, I now have a
    better idea of what Smack wants out of NetLabel in the future so I think it
    is now safe to do some API "pruning". If another LSM comes along that
    needs this functionality we can always add it back in, but I don't see any
    LSMs on the horizon which might make use of these functions.

    Thanks to Rami Rosen who suggested removing netlbl_cfg_cipsov4_del() back
    in February 2008.

    Signed-off-by: Paul Moore
    Reviewed-by: James Morris

    Paul Moore
     
  • Fix a few sparse warnings. One dealt with a RCU lock being held on error,
    another dealt with an improper type caused by a signed/unsigned mixup while
    the rest appeared to be caused by using rcu_dereference() in a
    list_for_each_entry_rcu() call. The latter probably isn't a big deal, but
    I derive a certain pleasure from knowing that the net/netlabel is nice and
    clean.

    Thanks to James Morris for pointing out the issues and demonstrating how
    to run sparse.

    Signed-off-by: Paul Moore

    Paul Moore
     
  • This patch fix error with CONFIG_TCP_MD5SIG disabled.

    Signed-off-by: Guo-Fu Tseng
    Signed-off-by: David S. Miller

    Guo-Fu Tseng
     
  • While looking at UDP port randomization, I noticed it
    was litle bit pessimistic, not looking at type of sockets
    (IPV6/IPV4) and not looking at bound addresses if any.

    We should perform same tests than when binding to a
    specific port.

    This permits a cleanup of udp_lib_get_port()

    Signed-off-by: Eric Dumazet
    Signed-off-by: David S. Miller

    Eric Dumazet
     
  • $ codiff tcp_ipv6.o.old tcp_ipv6.o.new
    net/ipv6/tcp_ipv6.c:
    tcp_v6_md5_hash_hdr | -144
    tcp_v6_send_ack | -585
    tcp_v6_send_reset | -540
    3 functions changed, 1269 bytes removed, diff: -1269

    net/ipv6/tcp_ipv6.c:
    tcp_v6_send_response | +791
    1 function changed, 791 bytes added, diff: +791

    tcp_ipv6.o.new:
    4 functions changed, 791 bytes added, 1269 bytes removed, diff: -478

    I choose to leave the reset related netns comment in place (not
    the one that is killed) as I cannot understand its English so
    it's a bit hard for me to evaluate its usefulness :-).

    Signed-off-by: Ilpo Järvinen
    Signed-off-by: David S. Miller

    Ilpo Järvinen
     
  • after this I get:

    $ diff-funcs tcp_v6_send_reset tcp_ipv6.c tcp_ipv6.c tcp_v6_send_ack
    --- tcp_ipv6.c:tcp_v6_send_reset()
    +++ tcp_ipv6.c:tcp_v6_send_ack()
    @@ -1,4 +1,5 @@
    -static void tcp_v6_send_reset(struct sock *sk, struct sk_buff *skb)
    +static void tcp_v6_send_ack(struct sk_buff *skb, u32 seq, u32 ack, u32 win,
    u32 ts,
    + struct tcp_md5sig_key *key)
    {
    struct tcphdr *th = tcp_hdr(skb), *t1;
    struct sk_buff *buff;
    @@ -7,31 +8,14 @@
    struct sock *ctl_sk = net->ipv6.tcp_sk;
    unsigned int tot_len = sizeof(struct tcphdr);
    __be32 *topt;
    -#ifdef CONFIG_TCP_MD5SIG
    - struct tcp_md5sig_key *key;
    -#endif
    -
    - if (th->rst)
    - return;
    -
    - if (!ipv6_unicast_destination(skb))
    - return;

    + if (ts)
    + tot_len += TCPOLEN_TSTAMP_ALIGNED;
    #ifdef CONFIG_TCP_MD5SIG
    - if (sk)
    - key = tcp_v6_md5_do_lookup(sk, &ipv6_hdr(skb)->daddr);
    - else
    - key = NULL;
    -
    if (key)
    tot_len += TCPOLEN_MD5SIG_ALIGNED;
    #endif

    - /*
    - * We need to grab some memory, and put together an RST,
    - * and then put it into the queue to be sent.
    - */
    -
    buff = alloc_skb(MAX_HEADER + sizeof(struct ipv6hdr) + tot_len,
    GFP_ATOMIC);
    if (buff == NULL)
    @@ -46,18 +30,20 @@
    t1->dest = th->source;
    t1->source = th->dest;
    t1->doff = tot_len / 4;
    - t1->rst = 1;
    -
    - if(th->ack) {
    - t1->seq = th->ack_seq;
    - } else {
    - t1->ack = 1;
    - t1->ack_seq = htonl(ntohl(th->seq) + th->syn + th->fin
    - + skb->len - (th->doff<seq = htonl(seq);
    + t1->ack_seq = htonl(ack);
    + t1->ack = 1;
    + t1->window = htons(win);

    topt = (__be32 *)(t1 + 1);

    + if (ts) {
    + *topt++ = htonl((TCPOPT_NOP << 24) | (TCPOPT_NOP << 16) |
    + (TCPOPT_TIMESTAMP << 8) |
    TCPOLEN_TIMESTAMP);
    + *topt++ = htonl(tcp_time_stamp);
    + *topt++ = htonl(ts);
    + }
    +
    #ifdef CONFIG_TCP_MD5SIG
    if (key) {
    *topt++ = htonl((TCPOPT_NOP << 24) | (TCPOPT_NOP << 16) |
    @@ -84,15 +70,10 @@
    fl.fl_ip_sport = t1->source;
    security_skb_classify_flow(skb, &fl);

    - /* Pass a socket to ip6_dst_lookup either it is for RST
    - * Underlying function will use this to retrieve the network
    - * namespace
    - */
    if (!ip6_dst_lookup(ctl_sk, &buff->dst, &fl)) {
    if (xfrm_lookup(&buff->dst, &fl, NULL, 0) >= 0) {
    ip6_xmit(ctl_sk, buff, &fl, NULL, 0);
    TCP_INC_STATS_BH(net, TCP_MIB_OUTSEGS);
    - TCP_INC_STATS_BH(net, TCP_MIB_OUTRSTS);
    return;
    }
    }

    ...which starts to be trivial to combine.

    Signed-off-by: Ilpo Järvinen
    Signed-off-by: David S. Miller

    Ilpo Järvinen