1. 05 1月, 2016 11 次提交
  2. 01 1月, 2016 7 次提交
    • D
      c07f30ad
    • L
      Merge tag 'pci-v4.4-fixes-3' of git://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci · 9c982e86
      Linus Torvalds 提交于
      Pull PCI bugfix from Bjorn Helgaas:
       "Here's another fix for v4.4.
      
        This fixes 32-bit config reads for the HiSilicon driver.  Obviously
        the driver is completely broken without this fix (apparently it
        actually was tested internally, but got broken somehow in the process
        of upstreaming it).
      
        Summary:
      
        HiSilicon host bridge driver
          Fix 32-bit config reads (Dongdong Liu)"
      
      * tag 'pci-v4.4-fixes-3' of git://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci:
        PCI: hisi: Fix hisi_pcie_cfg_read() 32-bit reads
      9c982e86
    • L
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc · 7c672dd6
      Linus Torvalds 提交于
      Pull sparc fixes from David Miller:
       "Just some missing syscall wire ups"
      
      * git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc:
        sparc: Wire up mlock2 system call.
        sparc: Add all necessary direct socket system calls.
      7c672dd6
    • L
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net · 8f5daf2a
      Linus Torvalds 提交于
      Pull networking fixes from David Miller:
      
       1) Prevent XFRM per-cpu counter updates for one namespace from being
          applied to another namespace.  Fix from DanS treetman.
      
       2) Fix RCU de-reference in iwl_mvm_get_key_sta_id(), from Johannes
          Berg.
      
       3) Remove ethernet header assumption in nft_do_chain_netdev(), from
          Pablo Neira Ayuso.
      
       4) Fix cpsw PHY ident with multiple slaves and fixed-phy, from Pascal
          Speck.
      
       5) Fix use after free in sixpack_close and mkiss_close.
      
       6) Fix VXLAN fw assertion on bnx2x, from Yuval Mintz.
      
       7) natsemi doesn't check for DMA mapping errors, from Alexey
          Khoroshilov.
      
       8) Fix inverted test in ip6addrlbl_get(), from ANdrey Ryabinin.
      
       9) Missing initialization of needed_headroom in geneve tunnel driver,
          from Paolo Abeni.
      
      10) Fix conntrack template leak in openvswitch, from Joe Stringer.
      
      11) Mission initialization of wq->flags in sock_alloc_inode(), from
          Nicolai Stange.
      
      * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net: (35 commits)
        sctp: sctp should release assoc when sctp_make_abort_user return NULL in sctp_close
        net, socket, socket_wq: fix missing initialization of flags
        drivers: net: cpsw: fix error return code
        openvswitch: Fix template leak in error cases.
        sctp: label accepted/peeled off sockets
        sctp: use GFP_USER for user-controlled kmalloc
        qlcnic: fix a loop exit condition better
        net: cdc_ncm: avoid changing RX/TX buffers on MTU changes
        geneve: initialize needed_headroom
        ipv6: honor ifindex in case we receive ll addresses in router advertisements
        addrconf: always initialize sysctl table data
        ipv6/addrlabel: fix ip6addrlbl_get()
        switchdev: bridge: Pass ageing time as clock_t instead of jiffies
        sh_eth: fix 16-bit descriptor field access endianness too
        veth: don’t modify ip_summed; doing so treats packets with bad checksums as good.
        net: usb: cdc_ncm: Adding Dell DW5813 LTE AT&T Mobile Broadband Card
        net: usb: cdc_ncm: Adding Dell DW5812 LTE Verizon Mobile Broadband Card
        natsemi: add checks for dma mapping errors
        rhashtable: Kill harmless RCU warning in rhashtable_walk_init
        openvswitch: correct encoding of set tunnel action attributes
        ...
      8f5daf2a
    • D
      sparc: Wire up mlock2 system call. · 42d85c52
      David S. Miller 提交于
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      42d85c52
    • D
      sparc: Add all necessary direct socket system calls. · 8b30ca73
      David S. Miller 提交于
      The GLIBC folks would like to eliminate socketcall support
      eventually, and this makes sense regardless so wire them
      all up.
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      8b30ca73
    • D
      Merge branch 'for-upstream' of... · 7b22a778
      David S. Miller 提交于
      Merge branch 'for-upstream' of git://git.kernel.org/pub/scm/linux/kernel/git/bluetooth/bluetooth-next
      
      Johan Hedberg says:
      
      ====================
      pull request: bluetooth-next 2015-12-31
      
      Here's (probably) the last bluetooth-next pull request for the 4.5
      kernel:
      
       - Add support for BCM2E65 ACPI ID
       - Minor fixes/cleanups in the bcm203x & bfusb drivers
       - Minor debugfs related fix in 6lowpan code
      
      Please let me know if there are any issues pulling. Thanks.
      ====================
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      7b22a778
  3. 31 12月, 2015 20 次提交
    • D
      Merge branch 'ethtool-phy-stats' · ccac0425
      David S. Miller 提交于
      Andrew Lunn says:
      
      ====================
      Ethtool support for phy stats
      
      This patchset add ethtool support for reading statistics from the PHY.
      The Marvell and Micrel Phys are then extended to report receiver
      packet errors and idle errors.
      
      v2:
        Fix linking when phylib is not enabled.
      v3:
        Inline helpers into ethtool.c, so fixing when phylib is a module.
      v4:
        Add missing static
      ====================
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      ccac0425
    • A
      phy: micrel: Add ethtool statistics counters · 2b2427d0
      Andrew Lunn 提交于
      The PHY counters receiver errors and errors while idle.
      Signed-off-by: NAndrew Lunn <andrew@lunn.ch>
      Reviewed-by: NFlorian Fainelli <f.fainelli@gmail.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      2b2427d0
    • A
      phy: marvell: Add ethtool statistics counters · d2fa47d9
      Andrew Lunn 提交于
      The PHY counters receiver errors and errors while idle.
      Signed-off-by: NAndrew Lunn <andrew@lunn.ch>
      Reviewed-by: NFlorian Fainelli <f.fainelli@gmail.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      d2fa47d9
    • A
      ethtool: Add phy statistics · f3a40945
      Andrew Lunn 提交于
      Ethernet PHYs can maintain statistics, for example errors while idle
      and receive errors. Add an ethtool mechanism to retrieve these
      statistics, using the same model as MAC statistics.
      Signed-off-by: NAndrew Lunn <andrew@lunn.ch>
      Reviewed-by: NFlorian Fainelli <f.fainelli@gmail.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      f3a40945
    • X
      sctp: sctp should release assoc when sctp_make_abort_user return NULL in sctp_close · 068d8bd3
      Xin Long 提交于
      In sctp_close, sctp_make_abort_user may return NULL because of memory
      allocation failure. If this happens, it will bypass any state change
      and never free the assoc. The assoc has no chance to be freed and it
      will be kept in memory with the state it had even after the socket is
      closed by sctp_close().
      
      So if sctp_make_abort_user fails to allocate memory, we should abort
      the asoc via sctp_primitive_ABORT as well. Just like the annotation in
      sctp_sf_cookie_wait_prm_abort and sctp_sf_do_9_1_prm_abort said,
      "Even if we can't send the ABORT due to low memory delete the TCB.
      This is a departure from our typical NOMEM handling".
      
      But then the chunk is NULL (low memory) and the SCTP_CMD_REPLY cmd would
      dereference the chunk pointer, and system crash. So we should add
      SCTP_CMD_REPLY cmd only when the chunk is not NULL, just like other
      places where it adds SCTP_CMD_REPLY cmd.
      Signed-off-by: NXin Long <lucien.xin@gmail.com>
      Acked-by: NMarcelo Ricardo Leitner <marcelo.leitner@gmail.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      068d8bd3
    • D
      Merge tag 'wireless-drivers-for-davem-2015-12-28' of... · a0ccc3f2
      David S. Miller 提交于
      Merge tag 'wireless-drivers-for-davem-2015-12-28' of git://git.kernel.org/pub/scm/linux/kernel/git/kvalo/wireless-drivers
      
      Kalle Valo says:
      
      ====================
      iwlwifi
      
      * don't load firmware that won't exist for 7260
      * fix RCU splat
      ====================
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      a0ccc3f2
    • N
      net, socket, socket_wq: fix missing initialization of flags · 574aab1e
      Nicolai Stange 提交于
      Commit ceb5d58b ("net: fix sock_wake_async() rcu protection") from
      the current 4.4 release cycle introduced a new flags member in
      struct socket_wq and moved SOCKWQ_ASYNC_NOSPACE and SOCKWQ_ASYNC_WAITDATA
      from struct socket's flags member into that new place.
      
      Unfortunately, the new flags field is never initialized properly, at least
      not for the struct socket_wq instance created in sock_alloc_inode().
      
      One particular issue I encountered because of this is that my GNU Emacs
      failed to draw anything on my desktop -- i.e. what I got is a transparent
      window, including the title bar. Bisection lead to the commit mentioned
      above and further investigation by means of strace told me that Emacs
      is indeed speaking to my Xorg through an O_ASYNC AF_UNIX socket. This is
      reproducible 100% of times and the fact that properly initializing the
      struct socket_wq ->flags fixes the issue leads me to the conclusion that
      somehow SOCKWQ_ASYNC_WAITDATA got set in the uninitialized ->flags,
      preventing my Emacs from receiving any SIGIO's due to data becoming
      available and it got stuck.
      
      Make sock_alloc_inode() set the newly created struct socket_wq's ->flags
      member to zero.
      
      Fixes: ceb5d58b ("net: fix sock_wake_async() rcu protection")
      Signed-off-by: NNicolai Stange <nicstange@gmail.com>
      Acked-by: NEric Dumazet <edumazet@google.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      574aab1e
    • D
      Merge branch '10GbE' of git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/next-queue · a3748a9c
      David S. Miller 提交于
      Jeff Kirsher says:
      
      ====================
      10GbE Intel Wired LAN Driver Updates 2015-12-29
      
      This series contains updates to ixgbe and ixgbevf.
      
      William Dauchy provides a fix for ixgbevf that was implemented for ixgbe,
      commit 5d6002b7 ("ixgbe: Fix handling of NAPI budget when multiple
      queues are enabled per vector"). The issue was that the polling routine
      would increase the budget for receive to at least 1 per queue if multiple
      queues were present, which resulted in receive packets being processed
      when the budget was 0.
      
      Emil provides minor cleanups for ixgbevf, one being that we need to
      check rx_itr_setting with == and not &, since it is not a mask.  Added
      QSFP PHY support in ixgbe to allow for more accurate reporting of port
      settings.  Fixed the max RSS limit for X550 which is 63, not 64.
      
      Veola fixes ixgbe ethtool reporting of backplane type interfaces as
      1000/10000baseT link modes, instead, report the media as KR, KX or KX4
      based on the backplane interface present.
      
      Mark cleans up redundancy in the setting of hw_enc_features that makes
      it appear that X550 has more encapsulation features than other devices.
      Also do not set NETIF_F_SG any longer since that is set by the
      register_netdev() call.  Also fixed the X550EM_x revision check, which
      needs to check a value, not just a bit.
      
      Alex Duyck fixes additional bugs in ixgbe_clear_vf_vlans(), one being
      that the mask was using a divide instead of a modulus, which resulted
      in the mask bit being incorrectly set to 0 or 1 based on the value of
      the VF being tested.  Alex also found that he was not consistent in
      using the "word" argument as an offset or as a register offset, so
      made the code consistently use word as the offset in the array.
      
      v2: dropped patch 8 of the original series, as it was undoing a part of
          the fix Alex Duyck was doing in patch 9 of the original series.
          Dropped based on feedback from Emil (the author).
      ====================
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      a3748a9c
    • D
      Merge branch 'be2net-next' · 1ab8c11f
      David S. Miller 提交于
      Sathya Perla says:
      
      ====================
      be2net: patch set
      
      The following patch set contains some feature additions, code re-organization
      and cleanup and a few non-critical fixes. Pls consider applying this to
      the net-next tree. Thanks.
      
      v3 changes: add a default case to the switch statement in patch 5 to
      satisfy the compiler (-Wswitch).
      v2 changes: replaced an if/else block that checks for error values with a
      switch/case statement in patch 5.
      
      Patch 1 fixes VF link state transition from disabled to auto that did
      not work due to an issue in the FW. This issue could not be fixed in FW due
      to some backward compatibility issues it causes with released drivers.
      The issue has been fixed by introducing a new version (v2) of the cmd
      from 10.6 FW onwards. This patch adds support for v2 version of this cmd.
      
      Patch 2 reports a EOPNOTSUPP status to ethtool when the user tries to
      configure BE3/SRIOV in VEPA mode as it is not supported by the chip.
      
      Patch 3 cleansup FW flash image related constant definitions. Many of these
      definitions (such as section offset values) were defined in decimal format
      rather than hexa-decimal. This makes this part of the code un-readable.
      Also some defines related to BE2 are labeld "g2" and defines related to BE3
      are labeled "g3".  This patch cleans up all of this to make this code more
      readable.
      
      Patch 4 moves the FW cmd code to be_cmds.c. All code relating to FW cmds
      has been in be_cmds.[ch], excepting FW flash cmd related code.
      This patch moves these routines from be_main.c to be_cmds.c.
      
      Patch 5 adds a log message to report digital signature errors while
      flashing a FW image. From FW version 11.0 onwards, the FW supports a new
      "secure mode" feature (based on a jumper setting on the adapter.) In this
      mode, the FW image when flashed is authenticated with a digital signature.
      
      Patch 6 removes a line of code that has no effect.
      
      Patch 7 removes some unused variables.
      
      Patch 8 fixes port resource descriptor query via the GET_PROFILE FW cmd.
      An earlier commit passed a specific pf_num while issuing this cmd as FW
      returns descriptors for all functions when pf_num is zero. But, when pf_num
      is set to a non-zero value, FW does not return the port resource descriptor.
      This patch fixes this by setting pf_num to 0 while issuing the query cmd
      and adds code to pick the correct NIC resource descriptor from the list of
      descriptors returned by FW.
      
      Patch 9 adds support for ethtool get-dump feature. In the past when this
      option was not yet available, this feature was supported via the
      --register-dump option as a workaround.  This patch removes support for
      FW-dump via --register-dump option as it is now available via --get-dump
      option. Even though the "ethtool --register-dump" cmd which used to work
      earlier, will now fail with ENOTSUPP error, we feel it is not an issue as
      this is used only for diagnostics purpose.
      
      Patch 10 bumps up the driver version.
      ====================
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      1ab8c11f
    • S
    • V
      be2net: support ethtool get-dump option · fd7ff6f0
      Venkat Duvvuru 提交于
      This patch adds support for ethtool's --get-dump option in be2net,
      to retrieve FW dump. In the past when this option was not yet available,
      this feature was supported via the --register-dump option as a workaround.
      This patch removes support for FW-dump via --register-dump option as it is
      now available via --get-dump option. Even though the
      "ethtool --register-dump" cmd which used to work earlier, will now fail
      with ENOTSUPP error, we feel it is not an issue as this is used only
      for diagnostics purpose.
      Signed-off-by: NVenkat Duvvuru <venkatkumar.duvvuru@avagotech.com>
      Signed-off-by: NSathya Perla <sathya.perla@avagotech.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      fd7ff6f0
    • S
      be2net: fix port-res desc query of GET_PROFILE_CONFIG FW cmd · 980df249
      Suresh Reddy 提交于
      Commit 72ef3a88 ("be2net: set pci_func_num while issuing
      GET_PROFILE_CONFIG cmd") passed a specific pf_num while issuing a
      GET_PROFILE_CONFIG cmd as FW returns descriptors for all functions when
      pf_num is zero. But, when pf_num is set to a non-zero value, FW does not
      return the Port resource descriptor.
      This patch fixes this by setting pf_num to 0 while issuing the query cmd
      and adds code to pick the correct NIC resource descriptor from the list of
      descriptors returned by FW.
      
      Fixes: 72ef3a88 ("be2net: set pci_func_num while issuing
      		     GET_PROFILE_CONFIG cmd")
      Signed-off-by: NSuresh Reddy <suresh.reddy@avagotech.com>
      Signed-off-by: NSathya Perla <sathya.perla@avagotech.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      980df249
    • V
      be2net: remove unused error variables · 04e888de
      Venkat Duvvuru 提交于
      eeh_error, fw_timeout, hw_error variables in the be_adapter structure are
      not used anymore. An earlier patch that introduced adapter->err_flags to
      store this information missed removing these variables.
      Signed-off-by: NVenkat Duvvuru <venkatkumar.duvvuru@avagotech.com>
      Signed-off-by: NSathya Perla <sathya.perla@avagotech.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      04e888de
    • S
      be2net: remove a line of code that has no effect · fdf81bfb
      Sathya Perla 提交于
      This patch removes a line of code that changes adapter->recommended_prio
      value followed by yet another assignment.
      Also, the variable is used to store the vlan priority value that is already
      shifted to the PCP bits position in the vlan tag format. Hence, the name of
      this variable is changed to recommended_prio_bits.
      Signed-off-by: NSathya Perla <sathya.perla@avagotech.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      fdf81bfb
    • S
      be2net: log digital signature errors while flashing FW image · 6b525782
      Suresh Reddy 提交于
      (based on a jumper setting on the adapter.) In this mode, the FW image when
      flashed is authenticated with a digital signature. This patch logs
      appropriate error messages and return a status to ethtool when errors
      relating to FW image authentication occur.
      Signed-off-by: NSuresh Reddy <suresh.reddy@avagotech.com>
      Signed-off-by: NSathya Perla <sathya.perla@avagotech.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      6b525782
    • S
      be2net: move FW flash cmd code to be_cmds.c · a23113b5
      Suresh Reddy 提交于
      All code relating to FW cmds is in be_cmds.[ch] excepting FW flash cmd
      related code. This patch moves these routines from be_main.c to be_cmds.c
      Signed-off-by: NSuresh Reddy <suresh.reddy@avagotech.com>
      Signed-off-by: NSathya Perla <sathya.perla@avagotech.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      a23113b5
    • S
      be2net: cleanup FW flash image related macro defines · 8836ff48
      Suresh Reddy 提交于
      Many constant definitions relating to the FW-image layout
      (such as section offset values) were defined in decimal format rather than
      hexa-decimal. This makes this part of the code un-readable. Also some
      defines related to BE2 are labeld "g2" and defines related to BE3 are
      labeled "g3".  This patch cleans up all of this to make this code more
      readable.
      Signed-off-by: NSuresh Reddy <suresh.reddy@avagotech.com>
      Signed-off-by: NSathya Perla <sathya.perla@avagotech.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      8836ff48
    • S
      be2net: avoid configuring VEPA mode on BE3 · ac0f5fba
      Suresh Reddy 提交于
      BE3 chip doesn't support VEPA mode.
      Signed-off-by: NSuresh Reddy <suresh.reddy@avagotech.com>
      Signed-off-by: NSathya Perla <sathya.perla@avagotech.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      ac0f5fba
    • S
      be2net: fix VF link state transition from disabled to auto · d9d426af
      Suresh Reddy 提交于
      The VF link state setting transition from "disable" to "auto" does not work
      due to a bug in SET_LOGICAL_LINK_CONFIG_V1 cmd in FW. This issue could not
      be fixed in FW due to some backward compatibility issues it causes with
      some released drivers. The issue has been fixed by introducing a new
      version (v2) of the cmd from 10.6 FW onwards. In v2, to set the VF link
      state to auto, both PLINK_ENABLE and PLINK_TRACK bits have to be set to 1.
      
      The VF link state setting feature now works on Lancer chips too from
      FW ver 10.6.315.0 onwards.
      Signed-off-by: NSuresh Reddy <suresh.reddy@avagotech.com>
      Signed-off-by: NSathya Perla <sathya.perla@avagotech.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      d9d426af
    • L
      Merge branch 'for-linus' of git://git.kernel.dk/linux-block · c6169202
      Linus Torvalds 提交于
      Pull block fixes from Jens Axboe:
       "Make the block layer great again.
      
        Basically three amazing fixes in this pull request, split into 4
        patches.  Believe me, they should go into 4.4.  Two of them fix a
        regression, the third and last fixes an easy-to-trigger bug.
      
         - Fix a bad irq enable through null_blk, for queue_mode=1 and using
           timer completions.  Add a block helper to restart a queue
           asynchronously, and use that from null_blk.  From me.
      
         - Fix a performance issue in NVMe.  Some devices (Intel Pxxxx) expose
           a stripe boundary, and performance suffers if we cross it.  We took
           that into account for merging, but not for the newer splitting
           code.  Fix from Keith.
      
         - Fix a kernel oops in lightnvm with multiple channels.  From Matias"
      
      * 'for-linus' of git://git.kernel.dk/linux-block:
        lightnvm: wrong offset in bad blk lun calculation
        null_blk: use async queue restart helper
        block: add blk_start_queue_async()
        block: Split bios on chunk boundaries
      c6169202
  4. 30 12月, 2015 2 次提交
    • A
      ixgbe: Fix bugs in ixgbe_clear_vf_vlans() · ab3a3b7b
      Alexander Duyck 提交于
      When I had rewritten the code for ixgbe_clear_vf_vlans() it looks like I
      had transitioned back and forth between using word as an offset and using
      word as a register offset.  As a result I honestly don't see how the code
      was working before other than the fact that resetting the VLANs on the VF
      like didn't do much to clear them.
      
      Another issue found is that the mask was using a divide instead of a
      modulus.  As a result the mask bit was incorrectly being set to either bit
      0 or 1 based on the value of the VF being tested.  As a result the wrong
      VFs were having their VLANs cleared if they were enabled.
      
      I have updated the code so that word represents the offset in the array.
      This way we can use the modulus and xor operations and they will make sense
      instead of being performed on a 4 byte aligned value.
      
      I replaced the statement "(word % 2) ^ 1" with "~word % 2" in order to
      reduce the line length as the line exceeded 80 characters with the register
      name inserted.  The two should be equivalent so the change should be safe.
      Reported-by: NEmil Tantilov <emil.s.tantilov@intel.com>
      Signed-off-by: NAlexander Duyck <aduyck@mirantis.com>
      Tested-by: NPhil Schmitt <phillip.j.schmitt@intel.com>
      Signed-off-by: NJeff Kirsher <jeffrey.t.kirsher@intel.com>
      ab3a3b7b
    • M
      ixgbe: Correct X550EM_x revision check · 3ca2b250
      Mark Rustad 提交于
      The X550EM_x revision check needs to check a value, not just a bit.
      Use a mask and check the value. Also remove the redundant check
      inside the ixgbe_enter_lplu_t_x550em, because it can only be called
      when both the mac type and revision check pass.
      Signed-off-by: NMark Rustad <mark.d.rustad@intel.com>
      Tested-by: NPhil Schmitt <phillip.j.schmitt@intel.com>
      Signed-off-by: NJeff Kirsher <jeffrey.t.kirsher@intel.com>
      3ca2b250