Skip to content
Snippets Groups Projects
  1. Jun 08, 2018
    • Christian Lamparter's avatar
    • Christian Lamparter's avatar
      ipq40xx: fix OpenMesh A62 dtc warnings · 146fbeb8
      Christian Lamparter authored
      
      Warning (pci_bridge): Node /soc/pci@40000000/pcie@0 missing ranges for PCI bridge (or not a bridge)
      Warning (pci_bridge): Node /soc/pci@40000000/pcie@0 missing bus-range for PCI bridge
      Warning (pci_bridge): Node /soc/pci@40000000/pcie@0/ath10k@0,0 node name is not "pci" or "pcie"
      Warning (pci_bridge): Node /soc/pci@40000000/pcie@0/ath10k@0,0 missing ranges for PCI bridge (or not a bridge)
      Warning (pci_bridge): Node /soc/pci@40000000/pcie@0/ath10k@0,0 incorrect #address-cells for PCI bridge
      Warning (pci_bridge): Node /soc/pci@40000000/pcie@0/ath10k@0,0 incorrect #size-cells for PCI bridge
      Warning (pci_bridge): Node /soc/pci@40000000/pcie@0/ath10k@0,0 missing bus-range for PCI bridge
      Warning (unit_address_format): Failed prerequisite 'pci_bridge'
      Warning (pci_device_reg): Failed prerequisite 'pci_bridge'
      Warning (pci_device_bus_num): Failed prerequisite 'pci_bridge'
      
      Cc: Sven Eckelmann <sven.eckelmann@openmesh.com>
      Signed-off-by: default avatarChristian Lamparter <chunkeey@gmail.com>
      Tested-by: default avatarSven Eckelmann <sven.eckelmann@open-mesh.com>
      146fbeb8
    • Christian Lamparter's avatar
      ipq40xx: fix dtc warning about /soc/ad-hoc-bus missing a unit name · 2f1fa045
      Christian Lamparter authored
      
      This patch fixes a dtc warning that shows up for every device
      Warning (unit_address_vs_reg): Node /soc/ad-hoc-bus has a reg or ranges property, but no unit name
      
      Signed-off-by: default avatarChristian Lamparter <chunkeey@gmail.com>
      2f1fa045
    • Christian Lamparter's avatar
      ipq40xx: set #size-cells to 0 to fix warning · b22e3752
      Christian Lamparter authored
      
      qcom-ipq4018-ex6100v2.dtb: Warning (reg_format): "reg" property in
      	/led_spi/led_gpio@0 has invalid length (4 bytes)
      qcom-ipq4018-ex6100v2.dtb: Warning (avoid_default_addr_size):
      	Relying on default #size-cells value for /led_spi/led_gpio@0
      
      Cc: Thomas Hebb <tommyhebb@gmail.com>
      Cc: David Bauer <mail@david-bauer.net>
      Signed-off-by: default avatarChristian Lamparter <chunkeey@gmail.com>
      b22e3752
    • Koen Vandeputte's avatar
      ar71xx: fix USB switch to mPCIE for Mikrotik rb91x boards · 55b4b1eb
      Koen Vandeputte authored
      
      Some devices like the Mikrotik RB912 only have 1 USB port
      which is shared between an USB A type port, and the mini PCIe socket.
      
      Toggling a gpio selects the output to which USB is connected.
      
      Since kernel 4.9, gpio base is rounded up to a value of 32.
      
      Commit 65da6f9c ("ar71xx: fix secondary gpio controller base values") accounts correctly for that.
      In this commit, rb912 sees it's value changed from AR934X_GPIO_COUNT (23) to 32
      This means that the USB toggle gpio number actually also changes from 52 to 61.
      
      But ..
      Some of these GPIO numbers are also used in other locations, like the boardfile.
      The author forgot to also change them over there.
      
      Switching the USB port to mPCIe now shows my modem is correctly discovered again:
      
      [ 2863.864471] usb 1-1: new high-speed USB device number 4 using ehci-platform
      [ 2864.055303] usb 1-1: config 1 has an invalid interface number: 8 but max is 3
      [ 2864.062728] usb 1-1: config 1 has no interface number 1
      [ 2864.074567] qcserial 1-1:1.0: Qualcomm USB modem converter detected
      [ 2864.081474] usb 1-1: Qualcomm USB modem converter now attached to ttyUSB0
      [ 2864.111960] qcserial 1-1:1.2: Qualcomm USB modem converter detected
      [ 2864.118976] usb 1-1: Qualcomm USB modem converter now attached to ttyUSB1
      [ 2864.139808] qcserial 1-1:1.3: Qualcomm USB modem converter detected
      [ 2864.146777] usb 1-1: Qualcomm USB modem converter now attached to ttyUSB2
      [ 2864.165276] qmi_wwan 1-1:1.8: cdc-wdm0: USB WDM device
      [ 2864.171879] qmi_wwan 1-1:1.8 wwan0: register 'qmi_wwan' at usb-ehci-platform-1, WWAN/QMI device, 02:00:44:ed:3b:11
      
      Fixes: 65da6f9c ("ar71xx: fix secondary gpio controller base values")
      
      Signed-off-by: default avatarKoen Vandeputte <koen.vandeputte@ncentric.com>
      Cc: Robin Leblon <robin.leblon@ncentric.com>
      Cc: Felix Fietkau <nbd@nbd.name>
      55b4b1eb
    • Krystian Kozak's avatar
      imx-uuc: updated to latest git HEAD · c844d6a8
      Krystian Kozak authored
      
      8e29d86 linuxrc: remove superfluous shebang line
      12d2045 gitignore: remove Windows stuff
      57d8969 Add travis hint
      8edf4cc sdimage: use fsync before closing the device (fixes #1)
      d395b31 uuc: fix some compiler warnings
      
      Signed-off-by: default avatarKrystian Kozak <krystian.kozak20@gmail.com>
      c844d6a8
  2. Jun 07, 2018
    • Adi Shammout's avatar
      busybox: udhcpc: no MSG_DONTROUTE when sending packet · e4259bed
      Adi Shammout authored
      This reverts a change made in Sep 2017 [1] which introduced
      MSG_DONTROUTE flag to prevent udhcpc from reaching out to servers on a
      different subnet. That change violates RFC2131 by forcing fully
      configured clients, who got their configurations through an offer
      relayed by a DHCP relay, from renewing through a unicast request
      directly to the DHCP server, resulting in the client resorting to
      boradcasting lease extension requests instead of unicasting them,
      further breaking RFC2131.
      
      The problem with MSG_DONTROUTE appears when talking to a properly
      configured DHCP server that rejects non-compliant requests. Such server
      will reject lease extension attempts sent via broadcast rather than
      unicast, as is the case with Finnish ISPs Telia and DNA as well as
      Estonian ISP Starman. Once the lease expires without renewal, udhcpc
      enters init mode, taking down the interfaces with it, and thus causing
      interruption on every lease expiry. On some ISPs (such as the ones
      mentioned above) that can be once every 10-20 minutes. The interruptions
      appear in the logs as such:
      ----
      udhcpc: sending renew to x.x.x.x
      udhcpc: send: Network unreachable
      udhcpc: sending renew to 0.0.0.0
      udhcpc: sending renew to 0.0.0.0
      ...
      udhcpc: lease lost, entering init state
      Interface 'wan' has lost the connection
      Interface 'wan' is now down
      Network alias 'eth0' link is down
      udhcpc: sending select for y.y.y.y
      udhcpc: lease of y.y.y.y obtained, lease time 1200
      Network alias 'eth0' link is up
      Interface 'wan' is now up
      ----
      
      During lease extension, a fully configured client should be able to
      reach out to the server from which it recieved the lease for extension,
      regardless in which network it is; that's up to the gateway to find. [2]
      This patch ensures that.
      
      [1]
      http://lists.busybox.net/pipermail/busybox-cvs/2017-September/037402.html
      [2]
      https://www.netmanias.com/en/post/techdocs/6000/dhcp-network-protocol/
      
      
      understanding-dhcp-relay-agents
      
      Signed-off-by: default avatarAdi Shammout <adi.shammout@outlook.com>
      Signed-off-by: Hans Dedecker <dedeckeh@gmail.com> [PKG_RELEASE increase]
      e4259bed
    • Karl Palsson's avatar
      logd: create log directory for log_file · 987e10af
      Karl Palsson authored
      
      If log_file is specified, make sure its directory exists.
      
      Signed-off-by: default avatarKarl Palsson <karlp@etactica.com>
      Signed-off-by: Hans Dedecker <dedeckeh@gmail.com> [PKG_RELEASE increase]
      987e10af
    • Lucian Cristian's avatar
      ath79: fix qca956x SoC boot · a0a616e1
      Lucian Cristian authored
      
      based on old ar71xx irq.c driver
      
      Signed-off-by: default avatarLucian Cristian <lucian.cristian@gmail.com>
      a0a616e1
    • David Bauer's avatar
      ar71xx: add support for OCEDO Koala · e36f8b3f
      David Bauer authored
      
      This commit adds support for the OCEDO Koala
      
      SOC:	Qualcomm QCA9558 (Scorpion)
      RAM:    128MB
      FLASH:  16MiB
      WLAN1:  QCA9558 2.4 GHz 802.11bgn 3x3
      WLAN2:  QCA9880 5 GHz 802.11nac 3x3
      INPUT:  RESET button
      LED:    Power, LAN, WiFi 2.4, WiFi 5, SYS
      Serial: Header Next to Black metal shield
              Pinout is 3.3V - GND - TX - RX (Arrow Pad is 3.3V)
              The Serial setting is 115200-8-N-1.
      
      Tested and working:
       - Ethernet
       - 2.4 GHz WiFi
       - 5 GHz WiFi
       - TFTP boot from ramdisk image
       - Installation via ramdisk image
       - OpenWRT sysupgrade
       - Buttons
       - LEDs
      
      Installation seems to be possible only through booting an OpenWRT
      ramdisk image.
      
      Hold down the reset button while powering on the device. It will load a
      ramdisk image named 'koala-uImage-initramfs-lzma.bin' from 192.168.100.8.
      
      Note: depending on the present software, the device might also try to
      pull a file called 'koala-uimage-factory'. Only the name differs, it
      is still used as a ramdisk image.
      
      Wait for the ramdisk image to boot. OpenWRT can be written to the flash
      via sysupgrade or mtd.
      
      Due to the flip-flop bootloader which we not (yet) support, you need to
      set the partition the bootloader is selecting. It is possible from the
      initramfs image with
      
       > fw_setenv bootcmd run bootcmd_1
      
      Afterwards you can reboot the device.
      
      Signed-off-by: default avatarDavid Bauer <mail@david-bauer.net>
      e36f8b3f
    • Denton Gentry's avatar
      hostapd: make cli treat UNKNOWN COMMAND as failing · a84962ea
      Denton Gentry authored
      
      Avoid infinite loop at 100% CPU when running hostapd_cli
      if CONFIG_CTRL_IFACE_MIB is not defined.
      
        _newselect(4, [3], NULL, NULL, ...)
        recvfrom(3, "UNKNOWN COMMAND\n", 4095, 0, NULL, NULL) = 16
        sendto(3, "STA-NEXT UNKNOWN COMMAND", 24, 0, NULL, 0) = 24
      
      Signed-off-by: default avatarDenton Gentry <denny@geekhold.com>
      a84962ea
    • Hannu Nyman's avatar
      ipq806x: Enlarge R7800 flash - use netgear partition · fb8a578a
      Hannu Nyman authored
      Increase the available flash memory size in Netgear R7800
      by taking into the use the unused "netgear" partition
      that is located after the firmware partition.
      
      Available flash space for kernel+rootfs+overlay increases
      by 68 MB from 32 MB to 100 MB.
      
      In a typical build, overlay space increases from 15 to 85,
      increasing the package installation possibilities greatly.
      
      Reverting to the OEM firmware is still possible, as the OEM
      firmware contains logic to initialise the "netgear" partition
      if its contents do not match expectations. In OEM firmware,
      "netgear" contains 6 UBI sub-partitions that are defined in
      /etc/netgear.cfg and initialisation is done by /etc/preinit
      
      Tested with Openwrt master r7093-4fdc6ca3 and OEM V1.0.2.52
      
      Reference to forum discussion in Netgear R7800 exploration thread:
      https://forum.lede-project.org/t/netgear-r7800-exploration-ipq8065-qca9984/285/1118
      
      
      (messages 1118-1158)
      
      Signed-off-by: default avatarHannu Nyman <hannu.nyman@iki.fi>
      fb8a578a
    • Rosen Penev's avatar
      ipq806x: Limit NR_CPUS to 2 · fff65dbe
      Rosen Penev authored
      
      ipq806x is all dual core processors. ipq807x is quad core. Removes this
      from dmesg:
      
      RCU restricting CPUs from NR_CPUS=4 to nr_cpu_ids=2.
      RCU: Adjusting geometry for rcu_fanout_leaf=16, nr_cpu_ids=2
      
      Signed-off-by: default avatarRosen Penev <rosenp@gmail.com>
      fff65dbe
    • Rosen Penev's avatar
      ethtool: Update to 4.16 · 2737cea0
      Rosen Penev authored
      
      Tested on Turris Omnia (mvebu).
      
      Signed-off-by: default avatarRosen Penev <rosenp@gmail.com>
      2737cea0
    • Rosen Penev's avatar
      iperf: Update to 2.0.11 · 802afaaf
      Rosen Penev authored
      
      Tested on Turris Omnia (mvebu).
      
      Signed-off-by: default avatarRosen Penev <rosenp@gmail.com>
      802afaaf
    • Rosen Penev's avatar
      gdb: Update to 8.1 · 525b8f06
      Rosen Penev authored
      
      Tested on Turris Omnia (mvebu).
      
      Signed-off-by: default avatarRosen Penev <rosenp@gmail.com>
      525b8f06
    • Rosen Penev's avatar
      strace: Update to 4.22 · d12d81f8
      Rosen Penev authored
      
      SourceForge is deprecated according to upstream, so switch to main site
      for downloads.
      
      Tested on Turris Omnia (mvebu).
      
      Signed-off-by: default avatarRosen Penev <rosenp@gmail.com>
      d12d81f8
    • Koen Vandeputte's avatar
      kernel: bump 4.9 to 4.9.106 · 2792ef55
      Koen Vandeputte authored
      
      Refreshed all patches
      
      Compile-tested on: ar71xx
      Runtime-tested on: ar71xx
      
      Signed-off-by: default avatarKoen Vandeputte <koen.vandeputte@ncentric.com>
      2792ef55
    • Catrinel Catrinescu's avatar
    • Luis Araneda's avatar
      zynq: remove support for kernel 4.4 · 32ab2e16
      Luis Araneda authored
      
      Signed-off-by: default avatarLuis Araneda <luaraneda@gmail.com>
      32ab2e16
    • Luis Araneda's avatar
      zynq: switch to kernel 4.14 · 88f7e238
      Luis Araneda authored
      
      Also, remove the source-only qualifier
      
      Run-tested: ZedBoard
      
      Signed-off-by: default avatarLuis Araneda <luaraneda@gmail.com>
      88f7e238
    • Luis Araneda's avatar
      zynq: refresh kernel 4.14 configuration · 19c3dc60
      Luis Araneda authored
      
      Signed-off-by: default avatarLuis Araneda <luaraneda@gmail.com>
      19c3dc60
    • Luis Araneda's avatar
      zynq: copy config to kernel 4.14 · 74dffd59
      Luis Araneda authored
      
      The file will be used as a base configuration
      for kernel 4.14
      
      Signed-off-by: default avatarLuis Araneda <luaraneda@gmail.com>
      74dffd59
    • Luis Araneda's avatar
      uboot-zynq: update to 2017.03 · 8c8499f0
      Luis Araneda authored
      
      Compile-tested: ZedBoard
      
      Signed-off-by: default avatarLuis Araneda <luaraneda@gmail.com>
      8c8499f0
    • Luis Araneda's avatar
      zynq: fix detection of the zybo board · 61b977fa
      Luis Araneda authored
      
      The board_name was being tested for "xlnx,zynq-zybo",
      but the .dts compatible string is "digilent,zynq-zybo"
      
      Also, sorted the boards alphabetically, and added an
      error message for unsupported boards
      
      Signed-off-by: default avatarLuis Araneda <luaraneda@gmail.com>
      61b977fa
    • Luis Araneda's avatar
      zynq: remove hard-coded network configuration · 7967e6c0
      Luis Araneda authored
      
      This is no longer necessary since commit 57776e68
      (base-files: remove default /etc/config/network,
      generate it via board.d instead)
      
      Run-tested: ZedBoard
      
      Signed-off-by: default avatarLuis Araneda <luaraneda@gmail.com>
      7967e6c0
    • Luis Araneda's avatar
      zynq: reworked image creation process · dfac3ffd
      Luis Araneda authored
      
      After commit a1248dad (zynq: convert to new image build code),
      all boards, became unbootable, entering into a boot loop.
      
      Replace the compressed kernel zImage by an uncompressed Image,
      which is compressed after with gzip. Also, enable the creation
      of an initramfs image by default.
      
      Change images' filename to match the compatible string from the
      respective .dts file (<vendor>_<model>). Also, use the shared
      mkits.sh script and remove the target specific one.
      
      Fixes: FS#1204
      
      Run-tested: ZedBoard
      
      Signed-off-by: default avatarLuis Araneda <luaraneda@gmail.com>
      dfac3ffd
    • Christo Nedev's avatar
      brcm2708: Update brcm2708-gpu-fw package · c3356496
      Christo Nedev authored
      
      Problem - rapsberry pi 3 b/b+ does not boot with bcm2710 images!
      
      How Raspberry Pi boots Actualy?
      
      When Raspberry is switched on GPU is activated.
      1. GPU execute First stage bootloader from ROM.
      First stage bootloader mount the FAT boot partition on the SD card
      and execute second stage bootloader (bootcode.bin).
      2. Second stage bootloader (bootcode.bin) activate SDRAM.
      Load the GPU firmware (start.elf).
      3. GPU firmware (start.elf)
        a) display Rainbow splash.
        b) read firmware configuration file config.txt and
           split the RAM using fixup.dat.
        c) loads a cmdline.txt
        d) enables the CPU.
        e) loads the kernel image configurable via config.txt
      
      In your target/linux/brcm2708/image/config.txt
       493 ## kernel (string)
       494 ##     Alternative name to use when loading kernel.
       495 ##
       496 #kernel=""
      it is not configured!
      
      But in your target/linux/brcm2708/image/Makefile
        75   KERNEL_IMG := kernel8.img
        76   DEVICE_TITLE := Raspberry Pi 3B/3B+
      you have kernel8.img
      
      GPU Firmware search order by default for a PI 3 is:
      kernel8.img if found boot in 64 bit mode
      kernel8-32.img if found boot in 32 bit mode
      kernel7.img if found boot in 32 bit mode
      kernel.img if found boot in 32 bit mode
      
      But a PI 2 will start the search from kernel7.img and
      a PI 1 only looks for kernel.img.
      
      Оbviously the kernel has been found.
      But something goes wrong and the device is restarted.
      
      In your package/kernel/brcm2708-gpu-fw/Makefile
        11 PKG_NAME:=brcm2708-gpu-fw
        12 PKG_VERSION:=2017-08-08
        13 PKG_RELEASE:=e7ba7ab135f5a68b2c00a919ea9ac8d5528a5d5b
      boot loader is 10 monts old.
      
      In conclusion, the best way to solve the problem is
      to update the boot loader!
      
      Fixup_cd.dat and start_cd.elf files are not necessary.
      These are used when GPU memory is set to 16 MB, which disables
      some GPU features.
      I did not remove them just in case!
      
      cheers
      
      Signed-off-by: default avatarChristo Nedev <christo.nedev@gmail.com>
      c3356496
    • Daniel Golle's avatar
      ramips: fix reboot with W25Q256 with 4-address-mode enabled · 87966802
      Daniel Golle authored
      
      Some board vendors actually changed the loader to expect the chip
      to come up in 4-address-mode and flipped the ADP bit in the flash
      chip's configuration register which makes it come up in 4-address-mode.
      Hence it doesn't make sense to avoid switching to 4-address-mode on
      those boards but the opposite as otherwise reboot hangs eg. on the
      WrtNode2 boards. Fix this by checking the ADP register and only using
      SPI_NOR_4B_READ_OP on chips which have ADP==0 (come up in 3-byte mode).
      
      See also datasheet section 7.1.11 Power Up Address Mode (ADP)
      
      Fixes: 22d982ea ("ramips: add support for switching between 3-byte and 4-byte addressing on w25q256 flash")
      Signed-off-by: default avatarDaniel Golle <daniel@makrotopia.org>
      87966802
  3. Jun 06, 2018
    • Hans Dedecker's avatar
      ebtables: update to latest git 2018-06-06 · 1bbe813d
      Hans Dedecker authored
      
      5699354 extensions: fix build failure on fc28
      e6359ee build: update ebtables.h from kernel and drop local unused copy
      
      Signed-off-by: default avatarHans Dedecker <dedeckeh@gmail.com>
      1bbe813d
    • Matthias Schiffer's avatar
      ar71xx: switch CPE/WBS 210/510 to okli-loader · 0c0bb629
      Matthias Schiffer authored
      
      We recently increased the kernel partition size of the CPE/WBS 210/510.
      This works fine for new installations of the factory image, but on
      sysupgrades, the partition table read by the bootloader is not adjusted.
      This limits the maximum size of the kernel loaded by the bootloader to the
      old partition size.
      
      While adjusting the partition table would be a cleanest solution, such a
      migration would have to happen before an upgrade to a new version with a
      newer kernel. This is error-prone and would require a two-step upgrade, as
      we mark the partition table partition read-only.
      
      Instead, switch from the lzma-loader with embedded kernel to the
      okli-loader, so only the tiny lzma-loader is loaded by the bootloader as
      "kernel", and the lzma-loader will then load the rest of the kernel by
      itself.
      
      Fixes: e39847ea ("ar71xx: increase kernel partition size for CPE/WBS 210/510")
      Signed-off-by: default avatarMatthias Schiffer <mschiffer@universe-factory.net>
      Unverified
      0c0bb629
    • Matthias Schiffer's avatar
      ath79: lzma-loader: sync with ar71xx target · c57e182b
      Matthias Schiffer authored
      
      Import all improvements made in the lzma-loader since development on the
      ath79 target started.
      
      This also reverts fe594bf9 ("ath79: fix loader-okli, lzma-loader"), as
      is obsoleted by 2ad60168b6af ("ar71xx: lzma-loader: move padding workaround
      to gzip step").
      
      Likely, many of the changes should be ported to the ramips lzma-loader as
      well, but I don't have a device to test this.
      
      Signed-off-by: default avatarMatthias Schiffer <mschiffer@universe-factory.net>
      Unverified
      c57e182b
    • Matthias Schiffer's avatar
      ar71xx: make loader-okli build step more generic · 108a6f67
      Matthias Schiffer authored
      
      Add support for different loader types.
      
      Signed-off-by: default avatarMatthias Schiffer <mschiffer@universe-factory.net>
      Unverified
      108a6f67
    • Matthias Schiffer's avatar
      ar71xx: lzma-loader: constify kernel argv array · 9968dced
      Matthias Schiffer authored
      
      By making the kernel argv array const, the .data section can always be
      omitted from the laoder binary.
      
      Signed-off-by: default avatarMatthias Schiffer <mschiffer@universe-factory.net>
      Unverified
      9968dced
    • Matthias Schiffer's avatar
      ar71xx: lzma-loader: set page size to 4KB · 8d851a95
      Matthias Schiffer authored
      
      The text section in the ELF loader is aligned to the maximum page size,
      which defaults to 64KB. Reduce it to the actual page size to avoid wasting
      flash space for this alignment.
      
      Signed-off-by: default avatarMatthias Schiffer <mschiffer@universe-factory.net>
      Unverified
      8d851a95
    • Matthias Schiffer's avatar
      ar71xx: lzma-loader: move padding workaround to gzip step · a28e46b7
      Matthias Schiffer authored
      
      Some devices (TP-Link TL-WR1043ND v1) don't boot reliably when the
      uncompressed loader is too small. This was workarounded in the loader by
      adding 512KB of padding to the .data section of the loader binary.
      
      This approach had two issues:
      
      - The padding was only working when .data was non-empty (otherwise the
        section would become NOBITS, omitting it in the binary). .data was only
        empty when no CMDLINE was set, leading to further workarounds like
        fe594bf9 ("ath79: fix loader-okli, lzma-loader"), and this
        workaround was only effective because a missing "const" led to the kernel
        argv being stored in .data instead of .rodata
      - The padding was not only added to the compressed .gz loader, but also
        uncompressed .bin and .elf loaders. The prevented embedding the kernel
        cmdline in the loader for non-gz loader types.
      
      To fix both issues, move the creation of the padding from the linker script
      to the gzip step.
      
      Signed-off-by: default avatarMatthias Schiffer <mschiffer@universe-factory.net>
      Unverified
      a28e46b7
    • Tony Ambardar's avatar
      base-files: fix UCI config parsing and callback handling · 73d8a6ab
      Tony Ambardar authored
      There are several long-standing issues present in the UCI shell API as
      documented in https://wiki.openwrt.org/doc/devel/config-scripting. They
      relate both to high-level, user-defined callback functions used to
      process UCI config files, and also to low-level functions used within
      scripts generally.
      
      The related problems have been encountered now and in the past, e.g.
      https://forum.openwrt.org/viewtopic.php?id=54295
      
      , and include:
      
      a) UCI parsing option() function and user-defined option_cb() callbacks
      being erroneously called during processing of "list" config file entries;
      
      b) normal usage of the low-level config_set() unexpectedy calling any
      defined option_cb() if present; and
      
      c) handling of the list_cb() not respecting the NO_CALLBACK variable.
      
      Root causes include a function stack "inversion", where the low-level
      config_set() function incorrectly calls the high-level option() function,
      intended only for processing the "option" keyword of UCI config files.
      
      This change addresses the inversion and other issues, making the option
      handling code more consistent and smaller, and simplifying developers'
      usage of UCI callbacks.
      
      Signed-off-by: default avatarTony Ambardar <itugrok@yahoo.com>
      Signed-off-by: Hans Dedecker <dedeckeh@gmail.com> [PKG_RELEASE increase]
      73d8a6ab
  4. Jun 05, 2018
Loading