09 Nov, 2022
2 commits
-
commit 8f033d2becc24aa6bfd2a5c104407963560caabc upstream.
Per spec, the maximum value for the MaxBSSID ('n') indicator is 8,
and the minimum is 1 since a multiple BSSID set with just one BSSID
doesn't make sense (the # of BSSIDs is limited by 2^n).Limit this in the parsing in both cfg80211 and mac80211, rejecting
any elements with an invalid value.This fixes potentially bad shifts in the processing of these inside
the cfg80211_gen_new_bssid() function later.I found this during the investigation of CVE-2022-41674 fixed by the
previous patch.Fixes: 0b8fb8235be8 ("cfg80211: Parsing of Multiple BSSID information in scanning")
Fixes: 78ac51f81532 ("mac80211: support multi-bssid")
Reviewed-by: Kees Cook
Signed-off-by: Johannes Berg
Signed-off-by: Greg Kroah-Hartman
(cherry picked from commit 0a861bd25dad508e492c48169509d8c6b9246895) -
commit aebe9f4639b13a1f4e9a6b42cdd2e38c617b442d upstream.
In the copy code of the elements, we do the following calculation
to reach the end of the MBSSID element:/* copy the IEs after MBSSID */
cpy_len = mbssid[1] + 2;This looks fine, however, cpy_len is a u8, the same as mbssid[1],
so the addition of two can overflow. In this case the subsequent
memcpy() will overflow the allocated buffer, since it copies 256
bytes too much due to the way the allocation and memcpy() sizes
are calculated.Fix this by using size_t for the cpy_len variable.
This fixes CVE-2022-41674.
Reported-by: Soenke Huster
Tested-by: Soenke Huster
Fixes: 0b8fb8235be8 ("cfg80211: Parsing of Multiple BSSID information in scanning")
Reviewed-by: Kees Cook
Signed-off-by: Johannes Berg
Signed-off-by: Greg Kroah-Hartman
(cherry picked from commit 9a8ef2030510a9d6ce86fd535b8d10720230811f)
07 Nov, 2022
10 commits
-
Up until now, the external MDIO controller frequency values relied
either on the default ones out of reset or on those setup by u-boot.
Let's just properly specify the MDC frequency in the DTS so that even
without u-boot's intervention Linux can drive the MDIO bus.Fixes: 0420dde30a90 ("arm64: dts: ls208xa: add the external MDIO nodes")
Signed-off-by: Ioana Ciornei -
Up until now, the external MDIO controller frequency values relied
either on the default ones out of reset or on those setup by u-boot.
Let's just properly specify the MDC frequency in the DTS so that even
without u-boot's intervention Linux can drive the MDIO bus.Fixes: bbe75af7b092 ("arm64: dts: ls1088a: add external MDIO device nodes")
Signed-off-by: Ioana Ciornei -
Up until now, the external MDIO controller frequency values relied
either on the default ones out of reset or on those setup by u-boot.
Let's just properly specify the MDC frequency in the DTS so that even
without u-boot's intervention Linux can drive the MDIO bus.Fixes: 6e1b8fae892d ("arm64: dts: lx2160a: add emdio1 node")
Fixes: 5705b9dcda57 ("arm64: dts: lx2160a: add emdio2 node")
Signed-off-by: Ioana Ciornei -
In order to make the underneath API easier to change in the future,
prevent users from dereferencing fwnode from struct device.
Instead, use the specific dev_fwnode() API for that.Signed-off-by: zhaoxiao
Signed-off-by: David S. Miller
(cherry picked from commit 105b0468d7b2e6779a188a83b7e128368acb8a1d) -
When compiling with -Wformat, clang emits the following warning:
drivers/net/ethernet/freescale/xgmac_mdio.c:243:22: warning: format
specifies type 'unsigned char' but the argument has type 'int'
[-Wformat]
phy_id, dev_addr, regnum);
^~~~~~
./include/linux/dev_printk.h:163:47: note: expanded from macro 'dev_dbg'
dev_printk(KERN_DEBUG, dev, dev_fmt(fmt), ##__VA_ARGS__); \
~~~ ^~~~~~~~~~~
./include/linux/dev_printk.h:129:34: note: expanded from macro 'dev_printk'
_dev_printk(level, dev, fmt, ##__VA_ARGS__); \
~~~ ^~~~~~~~~~~The types of these arguments are unconditionally defined, so this patch
updates the format character to the correct ones for ints and unsigned
ints.Link: https://github.com/ClangBuiltLinux/linux/issues/378
Signed-off-by: Bill Wendling
Link: https://lore.kernel.org/r/20220316213114.2352352-1-morbo@google.com
Signed-off-by: Jakub Kicinski
(cherry picked from commit c011072c90353814a9d8e2b3cd111e77ae8601ed) -
In case of error, the function devm_ioremap() returns NULL pointer
not ERR_PTR(). The IS_ERR() test in the return value check should
be replaced with NULL test.Fixes: 1d14eb15dc2c ("net/fsl: xgmac_mdio: Use managed device resources")
Reported-by: Hulk Robot
Signed-off-by: Wei Yongjun
Reviewed-by: Tobias Waldekranz
Signed-off-by: David S. Miller
(cherry picked from commit cc4598cf179ff636d7634008045905a88480bb88) -
There is a spelling mistake in a dev_err message. Fix it.
Signed-off-by: Colin Ian King
Signed-off-by: David S. Miller
(cherry picked from commit 34a79c5dca4aeabc26073ef36233ea1f409b4d4b) -
Support the standard "clock-frequency" attribute to set the generated
MDC frequency. If not specified, the driver will leave the divisor
bits untouched.Signed-off-by: Tobias Waldekranz
Reviewed-by: Andrew Lunn
Signed-off-by: David S. Miller
(cherry picked from commit dd8f467eda72cdaff50e4636c382709124956da3) -
Support the standard "suppress-preamble" attribute to disable preamble
generation.Signed-off-by: Tobias Waldekranz
Reviewed-by: Andrew Lunn
Signed-off-by: David S. Miller
(cherry picked from commit 909bea73485fab5e99e222e727e82b259d667880) -
All of the resources used by this driver has managed interfaces, so
use them. Heed the warning in the comment before platform_get_resource
and use a bare devm_ioremap to allow for non-exclusive access to the
IO memory.Signed-off-by: Tobias Waldekranz
Reviewed-by: Andrew Lunn
Signed-off-by: David S. Miller
(cherry picked from commit 1d14eb15dc2c3961ffe88d20df17fb2e2eaf1504)
03 Nov, 2022
2 commits
-
lx2160ardb and lx2162aqds failed to read out thermal zone when using
Linux 5.15.71-lf-5.15.52-2.1.0-2798-g393a61ecb9db. This is because the
IPBRR0s of lx2160ardb, lx2162aqds and i.MX93 have the same value
0x01900201. It is wrong to use IPBRR0 to determine whether the current
TMU belongs to i.MX93 or not, so that change to use compatible.Signed-off-by: Alice Guo
Reviewed-by: Ye Li
Acked-by: Jason Liu -
LPUART only support the system wakeup when the UART clock on, but on
imx93, system mem suspend will shut-off the UART clocks, cause the
system cannot be waken up.
So need to add asynchronous wakeup support for LPUART in Low-Power mode,
now LPUART does not need any clocks to wake-up the Arm platform with the
asynchronous interrupts.Signed-off-by: Sherry Sun
Reviewed-by: Jacky Bai
Acked-by: Jason Liu
26 Oct, 2022
20 commits
-
Enable support for XDP (supported on DPAA1, DPAA2, ENETC) and for AF_XDP
(supported on DPAA2, ENETC).Signed-off-by: Vladimir Oltean
-
Add support for the case when the BPF program attached to a ring with an
XSK pool returns the XDP_TX verdict. The frame needs to go back on the
interface it came from.No dma_map or dma_sync_for_device is necessary, just a small impedance
matching logic with the XDP_TX procedure we have in place for non-XSK,
since the data structures are different (xdp_buff vs xdp_frame; cannot
have multi-buffer with XSK).In the TX confirmation routine, just release the RX buffer (as opposed
to non-XSK XDP_TX). Recycling might be possible, but I haven't
experimented with it.Signed-off-by: Vladimir Oltean
-
Schedule NAPI by hand from enetc_xsk_wakeup(), and send frames from the
XSK TX queue from NAPI context. Add them to the completion queue from
the enetc_clean_tx_ring() procedure which is common for all kinds of
traffic.We reuse one of the TX rings for XDP (XDP_TX/XDP_REDIRECT) for XSK as
well. They are already affine with CPUs and cropped from the TX rings
that the network stack can use when XDP is enabled (with or without
AF_XDP).Signed-off-by: Vladimir Oltean
-
Add support for filling an RX ring with buffers coming from an XSK umem.
Although enetc has up to 8 RX rings, we still use one of the 2 per-CPU
RX rings for XSK.To set up an XSK pool on one of the RX queues, we stop the device and
open it again. While not ideal, the alternative would have been way more
complex.Since the RX procedure in the NAPI poll function is completely different
(both the API for creating an xdp_buff, as well as refilling the ring
with memory from user space), create a separate enetc_clean_rx_ring_xsk()
function which gets called when we have both an XSK pool and an XDK
program on this RX queue.Signed-off-by: Vladimir Oltean
-
XSK transmission will reuse this procedure, and will also need the logic
for setting the "final" bit of a TX BD, based on tx_swbd->is_eof.
Not sure why this was left to be done by the caller of
enetc_xdp_map_tx_buff(), but move it inside.Signed-off-by: Vladimir Oltean
-
napi_synchronize() from enetc_stop() waits until the softirq has
finished execution and does not reschedule anymore. However under high
traffic load, this will never happen, and the interface can never be
closed.The solution chosen here is probably not the best; it is adapted from
i40e. Normally one would quiesce the RX ring and let the softirq finish
what remains there. But I couldn't immediately see how to do that (plus
the fact that the NAPI poll routine is written to update the consumer
index which makes the device want to put more buffers in the RX ring,
which restarts the madness again).Since the enetc hardirq may trigger while we have ENETC_DOWN set, it may
happen that enetc_msix() masks it, but enetc_poll() never unmasks it.
To prevent a stall in that case, schedule all NAPI instances when
ENETC_DOWN gets cleared.Signed-off-by: Vladimir Oltean
-
v->rx_ring.stats.bytes is apparently only used for interrupt coalescing,
not for printing to ethtool -S. I am unable to find a functional problem
caused by the lack of updating this counter, but it is updated from the
stack NAPI poll routine, so update it from the XDP one too.Signed-off-by: Vladimir Oltean
-
Create naming consistency between the free procedures for a TX and an RX
software BD.Signed-off-by: Vladimir Oltean
-
There are multiple code paths in the driver which DMA unmap and free the
page held by the shadow copy of an RX buffer descriptor. Refactor them
to call the same helper function, which will make it easier to add
support for one more RX software BD type in the future (XSK buffer).Signed-off-by: Vladimir Oltean
-
In a strange twist of events, some libraries such as libbpf perform an
ETHTOOL_GCHANNELS ioctl to find out the max number of queues a device
has, number which in turn is used for attaching XDP sockets to queues.To add compatibility with libbpf, it is therefore desirable to report
something to this ethtool callback.According to the ethtool man page, "A channel is an IRQ and the set of
queues that can trigger that IRQ".In enetc (embedded in NXP LS1028A, a dual core SoC, and LS1018A, a
single core SoC), the enetc_alloc_msix() function allocates a number of
MSI-X interrupt vectors equal to priv->bdr_int_num (which in turn is
equal to the number of CPUs, 2 or 1). Each interrupt vector has 1 RX
ring to process (there are more than 2 RX rings available on an ENETC
port, but the driver only uses up to 2). In addition, the up to 8 TX
rings are distributed in a round-robing manner between the up to 2
available interrupt vectors.Therefore, even if we have more resources than 2 RX rings, given the
definitions, we can only report 2 combined channels. So do that.Signed-off-by: Vladimir Oltean
-
If we see frames with RX errors, consume them, mark their buffers for
refill, and go through the rest of the ring until the NAPI budget is
done. Right now we exit and ask the softirq to be rescheduled.Signed-off-by: Vladimir Oltean
-
Calling enetc_bd_unused() on an RX ring returns the number of
descriptors necessary for the ring to be full with descriptors owned by
hardware (for it to put packets in).Putting this value in a variable named "cleaned_cnt" is misleading,
especially since we may start the NAPI poll routine (enetc_clean_rx_ring)
with a non-zero cleaned_cnt.Signed-off-by: Vladimir Oltean
-
In a future patch, the XDP RX queues will have to register a shared page
memory model, or an XSK pool memory model. For that, the registration
needs to be more dynamic than the current one, done in enetc_pf_probe()
-> enetc_alloc_msix().Move it to enetc_open()/enetc_close() and create some nicer names for
it.Signed-off-by: Vladimir Oltean
-
Follow the convention from this driver, which is to name "struct
net_device *" as "ndev", and the convention from other drivers, to name
"struct netdev_bpf *" as "bpf".Signed-off-by: Vladimir Oltean
-
Eliminate a 4 byte hole on arm64, to be able to introduce a new member
to this structure in a future patch without increasing the overall
structure size.Before:
struct enetc_rx_swbd {
struct page * page; /* 0 8 */
enum dma_data_direction dir; /* 8 4 *//* XXX 4 bytes hole, try to pack */
dma_addr_t dma; /* 16 8 */
u16 page_offset; /* 24 2 */
u16 len; /* 26 2 *//* size: 32, cachelines: 1, members: 5 */
/* sum members: 24, holes: 1, sum holes: 4 */
/* padding: 4 */
/* last cacheline: 32 bytes */
};After:
struct enetc_rx_swbd {
struct page * page; /* 0 8 */
dma_addr_t dma; /* 8 8 */
enum dma_data_direction dir; /* 16 4 */
u16 page_offset; /* 20 2 */
u16 len; /* 22 2 *//* size: 24, cachelines: 1, members: 5 */
/* last cacheline: 24 bytes */
};Signed-off-by: Vladimir Oltean
-
Under memory pressure, enetc_refill_rx_ring() may fail, and when called
during the enetc_open() -> enetc_setup_rxbdr() procedure, this is not
checked for.An extreme case of memory pressure will result in exactly zero buffers
being allocated for the RX ring, and in such a case it is expected that
hardware drops all RX packets due to lack of buffers.There are 2 problems. One is that the hardware drop doesn't happen, the
other is that even if this is fixed, the driver has undefined behavior
and may even crash. Explanation for the latter follows below.The enetc NAPI poll procedure is shared between RX and TX conf, and
enetc_poll() calls enetc_clean_rx_ring() even if the reason why NAPI was
scheduled is TX.The enetc_clean_rx_ring() function (and its XDP derivative) is not
prepared to handle such a condition. It has this loop exit condition:rxbd = enetc_rxbd(rx_ring, i);
bd_status = le32_to_cpu(rxbd->r.lstatus);
if (!bd_status)
break;otherwise said, the NAPI poll procedure does not look at the Producer
Index of the RX ring, instead it just walks circularly through the
descriptors until it finds one which is not Ready.The driver undefined behavior is caused by the fact that the
enetc_rxbd(rx_ring, i) RX descriptor is only initialized by
enetc_refill_rx_ring() if page allocation has succeeded.If memory allocation ever failed, enetc_clean_rx_ring() looks at
rxbd->r.lstatus as an exit condition, but "rxbd" itself is uninitialized
memory. If it contains junk, then junk buffers will be processed.To fix this problem, memset the DMA coherent area used for RX buffer
descriptors in enetc_dma_alloc_bdr(). This makes all BDs be "not ready"
by default, which makes enetc_clean_rx_ring() exit early from the BD
processing loop when there is no valid buffer available.The other problem (hardware does not drop packet in lack of buffers)
is due to an initial misconfiguration of the RX ring consumer index,
misconfiguration which is usually masked away by the proper
configuration done by enetc_refill_rx_ring() - when page allocation does
not fail.The hardware guide recommends BD rings to be configured as follows:
| Configure the receive ring producer index register RBaPIR with a value
| of 0. The producer index is initially configured by software but owned
| by hardware after the ring has been enabled. Hardware increments the
| index when a frame is received which may consume one or more BDs.
| Hardware is not allowed to increment the producer index to match the
| consumer index since it is used to indicate an empty condition. The ring
| can hold at most RBLENR[LENGTH]-1 received BDs.
|
| Configure the receive ring consumer index register RBaCIR. The
| consumer index is owned by software and updated during operation of the
| of the BD ring by software, to indicate that any receive data occupied
| in the BD has been processed and it has been prepared for new data.
| - If consumer index and producer index are initialized to the same
| value, it indicates that all BDs in the ring have been prepared and
| hardware owns all of the entries.
| - If consumer index is initialized to producer index plus N, it would
| indicate N BDs have been prepared. Note that hardware cannot start if
| only a single buffer is prepared due to the restrictions described in
| (2).
| - Software may write consumer index to match producer index anytime
| while the ring is operational to indicate all received BDs prior have
| been processed and new BDs prepared for hardware.The reset-default value of the consumer index is 0, and this makes the
ENETC think that all buffers have been initialized (when in reality none
were).To operate using no buffer, we must initialize the CI to PI + 1.
Fixes: d4fd0404c1c9 ("enetc: Introduce basic PF and VF ENETC ethernet drivers")
Signed-off-by: Vladimir Oltean -
It is unnecessary for i.MX93 watchdog to wait 2.5 clocks after RCS is
done so that set post_rcs_wait to false when the compatible of watchdog
device node is "fsl,imx93-wdt".Signed-off-by: Alice Guo
-
This reverts commit 349b847ce2a19b655daa9e4585a33fa9f9e2dd39.
The issue of LF-7367 was introduced by the commit . Now
the commit is reverted, so revert this patch too.Signed-off-by: Wei Fang
Reviewed-by: Jun Li -
This reverts commit e31164f8ce44ded55e1adcbc0d945194cd00b91a.
The issue of LF-7367 was introduced by the commit . Now
the commit is reverted, so revert this patch too.Signed-off-by: Wei Fang
Reviewed-by: Jun Li -
This reverts commit 4001ceb77b9ce47d456248854761abbd7870d6b8.
This patch introduce the problem that can not resume from suspend state
on some platfroms. So revert the patch.
Reproduce command: /unit_tests/Power_Management/suspend_quick_auto.sh
log:
28.381366] Filesystems sync: 0.057 seconds
[ 28.386284] Freezing user space processes ... (elapsed 0.020 seconds) done.
[ 28.413957] OOM killer disabled.
[ 28.417224] Freezing remaining freezable tasks ... (elapsed 0.117 seconds) done.
[ 29.189253] Unable to handle kernel paging request at virtual address dead000000000122
[ 29.197206] Mem abort info:
[ 29.200008] ESR = 0x96000044
[ 29.203070] EC = 0x25: DABT (current EL), IL = 32 bits
[ 29.208389] SET = 0, FnV = 0
[ 29.211449] EA = 0, S1PTW = 0
[ 29.214597] FSC = 0x04: level 0 translation fault
[ 29.219483] Data abort info:
[ 29.222361] ISV = 0, ISS = 0x00000044
[ 29.226202] CM = 0, WnR = 1
[ 29.229176] [dead000000000122] address between user and kernel address ranges
[ 29.236318] Internal error: Oops: 96000044 [#1] PREEMPT SMP
[ 29.241891] Modules linked in: fsl_jr_uio overlay caam_jr caamkeyblob_desc caamhash_desc caamalg_desc crypto_engine authenc libdes crct10dif_ce imx8_media_dev(C) snd_soc_imx_card snd_soc_fsl_asoc_card snd_soc_imx_audmux snd_soc_imx_hdmi dw_hdmi_cec snd_soc_fsl_easrc snd_soc_fsl_xcvr snd_soc_fsl_micfil snd_soc_fsl_sai snd_soc_fsl_asrc snd_soc_fsl_aud2htx snd_soc_wm8960 flexcan can_dev caam secvio error imx_dsp_rproc fuse
[ 29.279144] CPU: 2 PID: 794 Comm: rtcwakeup.out Tainted: G C 5.15.71+g2c94ea52cdf4 #1
[ 29.288278] Hardware name: NXP i.MX8MPlus EVK board (DT)
[ 29.293588] pstate: 60000005 (nZCv daif -PAN -UAO -TCO -DIT -SSBS BTYPE=--)
[ 29.300551] pc : destroy_workqueue+0x188/0x2c0
[ 29.305001] lr : destroy_workqueue+0x174/0x2c0
[ 29.309445] sp : ffff80001c38b9b0
[ 29.312756] x29: ffff80001c38b9b0 x28: 00000006a520bfa1 x27: ffff800008839450
[ 29.319897] x26: 0000000000000002 x25: ffff800009c419e4 x24: 0000000000000100
[ 29.327037] x23: ffff0000c64f5a20 x22: ffff800009c3f530 x21: ffff0000c64f5a00
[ 29.334178] x20: ffff0000c64f5988 x19: ffff0000c1a38940 x18: ffff800009dd8c6c
[ 29.341318] x17: 000000040044ffff x16: 00400032b5503510 x15: 0000000000000000
[ 29.348458] x14: ffff0000c00d5400 x13: ffff80016f9d4000 x12: 0000000034d4d91d
[ 29.355599] x11: 0000000000000000 x10: 0000000000000990 x9 : ffff80001c38b7a0
[ 29.362739] x8 : ffff0000c6fb79f0 x7 : ffff0000c1815800 x6 : 0000000000000000
[ 29.369879] x5 : 00000000410fd030 x4 : 0000000000000000 x3 : dead000000000122
[ 29.377018] x2 : ffff0000cc815610 x1 : dead000000000122 x0 : ffff800009c3f568
[ 29.384159] Call trace:
[ 29.386603] destroy_workqueue+0x188/0x2c0
[ 29.390700] stmmac_suspend+0x1f4/0x2b0
[ 29.394540] stmmac_pltfr_suspend+0x20/0x54
[ 29.398726] platform_pm_suspend+0x2c/0x70
[ 29.402827] dpm_run_callback.constprop.0+0x3c/0xd4
[ 29.407708] __device_suspend+0x114/0x3fc
[ 29.411719] dpm_suspend+0x11c/0x200
[ 29.415296] dpm_suspend_start+0x9c/0xa4
[ 29.419220] suspend_devices_and_enter+0xf8/0x590
[ 29.423926] pm_suspend+0x2e0/0x340
[ 29.427415] state_store+0x8c/0x110
[ 29.430904] kobj_attr_store+0x18/0x30
[ 29.434655] sysfs_kf_write+0x44/0x54
[ 29.438322] kernfs_fop_write_iter+0x118/0x1ac
[ 29.442769] new_sync_write+0xe8/0x184
[ 29.446520] vfs_write+0x22c/0x290
[ 29.449924] ksys_write+0x68/0xf4
[ 29.453240] __arm64_sys_write+0x1c/0x2c
[ 29.457165] invoke_syscall+0x48/0x114
[ 29.460917] el0_svc_common.constprop.0+0xd4/0xfc
[ 29.465624] do_el0_svc+0x28/0x90
[ 29.468940] el0_svc+0x28/0x80
[ 29.471997] el0t_64_sync_handler+0xa4/0x130
[ 29.476268] el0t_64_sync+0x1a0/0x1a4
[ 29.479935] Code: f9000441 d2802443 9100e2c0 f2fbd5a3 (f9000022)
[ 29.486029] ---[ end trace c457bc915e3c8e3f ]---Signed-off-by: Wei Fang
Reviewed-by: Jun Li
25 Oct, 2022
4 commits
-
NXP vendor tree is using a private busfreq [1] driver to do ddr and
bus fabric scalling rather than using upstream ddrc & interconnect
driver which is still immature. And actually there's no i.MX driver users
of ICC in current vendor kernel. So removing them in order to avoid
confusing to customers.Some other vendor dtbs using those nodes are also disabled to avoid
build break.1. drivers/soc/imx/busfreq-imx8mq.c
Reviewed-by: Jacky Bai
Reviewed-by: Peng Fan
Signed-off-by: Dong Aisheng -
NXP vendor tree is using a private busfreq [1] driver to do ddr and
bus fabric scalling rather than using upstream ddrc & interconnect
driver which is still immature. And actually there's no i.MX driver users
of ICC in current vendor kernel. So removing them in order to avoid
confusing to customers.Some other vendor dtbs using those nodes are also disabled to avoid
build break.1. drivers/soc/imx/busfreq-imx8mq.c
Reviewed-by: Jacky Bai
Reviewed-by: Peng Fan
Signed-off-by: Dong Aisheng -
NXP vendor tree is using a private busfreq [1] driver to do ddr and
bus fabric scalling rather than using upstream ddrc & interconnect
driver which is still immature. And actually there's no i.MX driver users
of ICC in current vendor kernel. So removing them in order to avoid
confusing to customers.Some other vendor dtbs using those nodes are also disabled to avoid
build break.1. drivers/soc/imx/busfreq-imx8mq.c
Reviewed-by: Jacky Bai
Reviewed-by: Peng Fan
Signed-off-by: Dong Aisheng -
NXP vendor tree is using a private busfreq [1] driver to do ddr and
bus fabric scalling rather than using upstream ddrc & interconnect
driver which is still immature. And actually there's no i.MX driver users
of ICC in current vendor kernel. So removing them in order to avoid
confusing to customers.Some other vendor dtbs using those nodes are also disabled to avoid
build break.1. drivers/soc/imx/busfreq-imx8mq.c
Reviewed-by: Jacky Bai
Reviewed-by: Peng Fan
Signed-off-by: Dong Aisheng
24 Oct, 2022
2 commits
-
Possible dereference null return after of_match_node,
so check for NULL of_id.Signed-off-by: Mirela Rabulea
-
The wrong structure name causes memory overflow issue, this patch fixes
it.Signed-off-by: Alison Wang