]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
Merge remote-tracking branch 'trivial/for-next'
authorThierry Reding <treding@nvidia.com>
Thu, 24 Oct 2013 12:37:14 +0000 (14:37 +0200)
committerThierry Reding <treding@nvidia.com>
Thu, 24 Oct 2013 12:37:14 +0000 (14:37 +0200)
Conflicts:
net/netfilter/xt_set.c

34 files changed:
1  2 
arch/arc/kernel/kprobes.c
arch/s390/kernel/kprobes.c
drivers/base/dma-contiguous.c
drivers/clk/clk-fixed-factor.c
drivers/cpufreq/Kconfig.x86
drivers/cpufreq/exynos-cpufreq.c
drivers/dma/Kconfig
drivers/gpu/drm/drm_irq.c
drivers/input/serio/i8042.c
drivers/md/raid5.h
drivers/media/i2c/s5c73m3/s5c73m3-core.c
drivers/mfd/Kconfig
drivers/mtd/nand/docg4.c
drivers/net/ethernet/mellanox/mlx4/fw.c
drivers/net/ethernet/qlogic/qlcnic/qlcnic_83xx_hw.c
drivers/net/wireless/ath/ath10k/pci.c
drivers/regulator/tps65910-regulator.c
drivers/scsi/bfa/bfad.c
drivers/scsi/bnx2i/bnx2i_hwi.c
drivers/scsi/fnic/fnic_main.c
drivers/scsi/hpsa.c
drivers/scsi/lpfc/lpfc_init.c
drivers/scsi/megaraid/megaraid_sas_base.c
drivers/scsi/qla2xxx/qla_os.c
fs/btrfs/Kconfig
include/linux/devfreq.h
include/linux/netdevice.h
include/net/bluetooth/l2cap.h
init/Kconfig
kernel/kexec.c
kernel/time/timekeeping.c
mm/Kconfig
mm/slub.c
net/netfilter/xt_set.c

Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
index 51329905bfaafda1c290a26103914d5879144a01,7170b4b434e16e8ce90f3d823797f9ced23e82f1..c853b16de4efde38a501440ce58ca260a379e5da
@@@ -238,9 -237,8 +238,9 @@@ struct l2cap_conn_rsp 
  /* protocol/service multiplexer (PSM) */
  #define L2CAP_PSM_SDP         0x0001
  #define L2CAP_PSM_RFCOMM      0x0003
 +#define L2CAP_PSM_3DSP                0x0021
  
- /* channel indentifier */
+ /* channel identifier */
  #define L2CAP_CID_SIGNALING   0x0001
  #define L2CAP_CID_CONN_LESS   0x0002
  #define L2CAP_CID_A2MP                0x0003
diff --cc init/Kconfig
Simple merge
diff --cc kernel/kexec.c
Simple merge
Simple merge
diff --cc mm/Kconfig
Simple merge
diff --cc mm/slub.c
Simple merge
index e7c4e0e01ff5de40fb32cdeddd70cb204b84ea32,4b9d6b4f1eb0886028cddf687e659ee468edd4bf..80c2e2d603e00c718ad1744804ef29f926b9d404
@@@ -81,10 -81,10 +81,10 @@@ set_match_v0_checkentry(const struct xt
        struct xt_set_info_match_v0 *info = par->matchinfo;
        ip_set_id_t index;
  
 -      index = ip_set_nfnl_get_byindex(info->match_set.index);
 +      index = ip_set_nfnl_get_byindex(par->net, info->match_set.index);
  
        if (index == IPSET_INVALID_ID) {
-               pr_warning("Cannot find set indentified by id %u to match\n",
+               pr_warning("Cannot find set identified by id %u to match\n",
                           info->match_set.index);
                return -ENOENT;
        }
@@@ -106,104 -106,9 +106,104 @@@ set_match_v0_destroy(const struct xt_mt
  {
        struct xt_set_info_match_v0 *info = par->matchinfo;
  
 -      ip_set_nfnl_put(info->match_set.index);
 +      ip_set_nfnl_put(par->net, info->match_set.index);
  }
  
-               pr_warning("Cannot find set indentified by id %u to match\n",
 +/* Revision 1 match */
 +
 +static bool
 +set_match_v1(const struct sk_buff *skb, struct xt_action_param *par)
 +{
 +      const struct xt_set_info_match_v1 *info = par->matchinfo;
 +      ADT_OPT(opt, par->family, info->match_set.dim,
 +              info->match_set.flags, 0, UINT_MAX);
 +
 +      if (opt.flags & IPSET_RETURN_NOMATCH)
 +              opt.cmdflags |= IPSET_FLAG_RETURN_NOMATCH;
 +
 +      return match_set(info->match_set.index, skb, par, &opt,
 +                       info->match_set.flags & IPSET_INV_MATCH);
 +}
 +
 +static int
 +set_match_v1_checkentry(const struct xt_mtchk_param *par)
 +{
 +      struct xt_set_info_match_v1 *info = par->matchinfo;
 +      ip_set_id_t index;
 +
 +      index = ip_set_nfnl_get_byindex(par->net, info->match_set.index);
 +
 +      if (index == IPSET_INVALID_ID) {
++              pr_warning("Cannot find set identified by id %u to match\n",
 +                         info->match_set.index);
 +              return -ENOENT;
 +      }
 +      if (info->match_set.dim > IPSET_DIM_MAX) {
 +              pr_warning("Protocol error: set match dimension "
 +                         "is over the limit!\n");
 +              ip_set_nfnl_put(par->net, info->match_set.index);
 +              return -ERANGE;
 +      }
 +
 +      return 0;
 +}
 +
 +static void
 +set_match_v1_destroy(const struct xt_mtdtor_param *par)
 +{
 +      struct xt_set_info_match_v1 *info = par->matchinfo;
 +
 +      ip_set_nfnl_put(par->net, info->match_set.index);
 +}
 +
 +/* Revision 3 match */
 +
 +static bool
 +match_counter(u64 counter, const struct ip_set_counter_match *info)
 +{
 +      switch (info->op) {
 +      case IPSET_COUNTER_NONE:
 +              return true;
 +      case IPSET_COUNTER_EQ:
 +              return counter == info->value;
 +      case IPSET_COUNTER_NE:
 +              return counter != info->value;
 +      case IPSET_COUNTER_LT:
 +              return counter < info->value;
 +      case IPSET_COUNTER_GT:
 +              return counter > info->value;
 +      }
 +      return false;
 +}
 +
 +static bool
 +set_match_v3(const struct sk_buff *skb, struct xt_action_param *par)
 +{
 +      const struct xt_set_info_match_v3 *info = par->matchinfo;
 +      ADT_OPT(opt, par->family, info->match_set.dim,
 +              info->match_set.flags, info->flags, UINT_MAX);
 +      int ret;
 +
 +      if (info->packets.op != IPSET_COUNTER_NONE ||
 +          info->bytes.op != IPSET_COUNTER_NONE)
 +              opt.cmdflags |= IPSET_FLAG_MATCH_COUNTERS;
 +
 +      ret = match_set(info->match_set.index, skb, par, &opt,
 +                      info->match_set.flags & IPSET_INV_MATCH);
 +
 +      if (!(ret && opt.cmdflags & IPSET_FLAG_MATCH_COUNTERS))
 +              return ret;
 +
 +      if (!match_counter(opt.ext.packets, &info->packets))
 +              return 0;
 +      return match_counter(opt.ext.bytes, &info->bytes);
 +}
 +
 +#define set_match_v3_checkentry       set_match_v1_checkentry
 +#define set_match_v3_destroy  set_match_v1_destroy
 +
 +/* Revision 0 interface: backward compatible with netfilter/iptables */
 +
  static unsigned int
  set_target_v0(struct sk_buff *skb, const struct xt_action_param *par)
  {