From: Greg Kroah-Hartman Date: Sun, 19 Oct 2025 14:11:21 +0000 (+0200) Subject: 5.10-stable patches X-Git-Tag: v5.15.195~1 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=b2be4f229aa73fdb153c8a83f04f2a1827a7947a;p=thirdparty%2Fkernel%2Fstable-queue.git 5.10-stable patches added patches: wifi-rt2x00-use-explicitly-signed-or-unsigned-types.patch --- diff --git a/queue-5.10/series b/queue-5.10/series index 664b481318..88b42c53e9 100644 --- a/queue-5.10/series +++ b/queue-5.10/series @@ -224,3 +224,4 @@ media-pci-ivtv-add-missing-check-after-dma-map.patch media-cx18-add-missing-check-after-dma-map.patch media-pci-ivtv-add-check-for-dma-map-result.patch mm-slab-make-__free-kfree-accept-error-pointers.patch +wifi-rt2x00-use-explicitly-signed-or-unsigned-types.patch diff --git a/queue-5.10/wifi-rt2x00-use-explicitly-signed-or-unsigned-types.patch b/queue-5.10/wifi-rt2x00-use-explicitly-signed-or-unsigned-types.patch new file mode 100644 index 0000000000..4cfacd6040 --- /dev/null +++ b/queue-5.10/wifi-rt2x00-use-explicitly-signed-or-unsigned-types.patch @@ -0,0 +1,367 @@ +From 66063033f77e10b985258126a97573f84bb8d3b4 Mon Sep 17 00:00:00 2001 +From: "Jason A. Donenfeld" +Date: Wed, 19 Oct 2022 09:55:41 -0600 +Subject: wifi: rt2x00: use explicitly signed or unsigned types + +From: Jason A. Donenfeld + +commit 66063033f77e10b985258126a97573f84bb8d3b4 upstream. + +On some platforms, `char` is unsigned, but this driver, for the most +part, assumed it was signed. In other places, it uses `char` to mean an +unsigned number, but only in cases when the values are small. And in +still other places, `char` is used as a boolean. Put an end to this +confusion by declaring explicit types, depending on the context. + +Cc: Andrew Morton +Cc: Andy Shevchenko +Cc: Stanislaw Gruszka +Cc: Helmut Schaa +Cc: Kalle Valo +Signed-off-by: Jason A. Donenfeld +Acked-by: Stanislaw Gruszka +Signed-off-by: Kalle Valo +Link: https://lore.kernel.org/r/20221019155541.3410813-1-Jason@zx2c4.com +Signed-off-by: Eliav Farber +Signed-off-by: Greg Kroah-Hartman +--- + drivers/net/wireless/ralink/rt2x00/rt2400pci.c | 8 ++--- + drivers/net/wireless/ralink/rt2x00/rt2400pci.h | 2 - + drivers/net/wireless/ralink/rt2x00/rt2500pci.c | 8 ++--- + drivers/net/wireless/ralink/rt2x00/rt2500pci.h | 2 - + drivers/net/wireless/ralink/rt2x00/rt2500usb.c | 8 ++--- + drivers/net/wireless/ralink/rt2x00/rt2500usb.h | 2 - + drivers/net/wireless/ralink/rt2x00/rt2800lib.c | 36 ++++++++++++------------- + drivers/net/wireless/ralink/rt2x00/rt2800lib.h | 8 ++--- + drivers/net/wireless/ralink/rt2x00/rt2x00usb.c | 6 ++-- + drivers/net/wireless/ralink/rt2x00/rt61pci.c | 4 +- + drivers/net/wireless/ralink/rt2x00/rt61pci.h | 2 - + drivers/net/wireless/ralink/rt2x00/rt73usb.c | 4 +- + drivers/net/wireless/ralink/rt2x00/rt73usb.h | 2 - + 13 files changed, 46 insertions(+), 46 deletions(-) + +--- a/drivers/net/wireless/ralink/rt2x00/rt2400pci.c ++++ b/drivers/net/wireless/ralink/rt2x00/rt2400pci.c +@@ -1023,9 +1023,9 @@ static int rt2400pci_set_state(struct rt + { + u32 reg, reg2; + unsigned int i; +- char put_to_sleep; +- char bbp_state; +- char rf_state; ++ bool put_to_sleep; ++ u8 bbp_state; ++ u8 rf_state; + + put_to_sleep = (state != STATE_AWAKE); + +@@ -1561,7 +1561,7 @@ static int rt2400pci_probe_hw_mode(struc + { + struct hw_mode_spec *spec = &rt2x00dev->spec; + struct channel_info *info; +- char *tx_power; ++ u8 *tx_power; + unsigned int i; + + /* +--- a/drivers/net/wireless/ralink/rt2x00/rt2400pci.h ++++ b/drivers/net/wireless/ralink/rt2x00/rt2400pci.h +@@ -939,7 +939,7 @@ + #define DEFAULT_TXPOWER 39 + + #define __CLAMP_TX(__txpower) \ +- clamp_t(char, (__txpower), MIN_TXPOWER, MAX_TXPOWER) ++ clamp_t(u8, (__txpower), MIN_TXPOWER, MAX_TXPOWER) + + #define TXPOWER_FROM_DEV(__txpower) \ + ((__CLAMP_TX(__txpower) - MAX_TXPOWER) + MIN_TXPOWER) +--- a/drivers/net/wireless/ralink/rt2x00/rt2500pci.c ++++ b/drivers/net/wireless/ralink/rt2x00/rt2500pci.c +@@ -1176,9 +1176,9 @@ static int rt2500pci_set_state(struct rt + { + u32 reg, reg2; + unsigned int i; +- char put_to_sleep; +- char bbp_state; +- char rf_state; ++ bool put_to_sleep; ++ u8 bbp_state; ++ u8 rf_state; + + put_to_sleep = (state != STATE_AWAKE); + +@@ -1856,7 +1856,7 @@ static int rt2500pci_probe_hw_mode(struc + { + struct hw_mode_spec *spec = &rt2x00dev->spec; + struct channel_info *info; +- char *tx_power; ++ u8 *tx_power; + unsigned int i; + + /* +--- a/drivers/net/wireless/ralink/rt2x00/rt2500pci.h ++++ b/drivers/net/wireless/ralink/rt2x00/rt2500pci.h +@@ -1219,6 +1219,6 @@ + (((u8)(__txpower)) > MAX_TXPOWER) ? DEFAULT_TXPOWER : (__txpower) + + #define TXPOWER_TO_DEV(__txpower) \ +- clamp_t(char, __txpower, MIN_TXPOWER, MAX_TXPOWER) ++ clamp_t(u8, __txpower, MIN_TXPOWER, MAX_TXPOWER) + + #endif /* RT2500PCI_H */ +--- a/drivers/net/wireless/ralink/rt2x00/rt2500usb.c ++++ b/drivers/net/wireless/ralink/rt2x00/rt2500usb.c +@@ -984,9 +984,9 @@ static int rt2500usb_set_state(struct rt + u16 reg; + u16 reg2; + unsigned int i; +- char put_to_sleep; +- char bbp_state; +- char rf_state; ++ bool put_to_sleep; ++ u8 bbp_state; ++ u8 rf_state; + + put_to_sleep = (state != STATE_AWAKE); + +@@ -1663,7 +1663,7 @@ static int rt2500usb_probe_hw_mode(struc + { + struct hw_mode_spec *spec = &rt2x00dev->spec; + struct channel_info *info; +- char *tx_power; ++ u8 *tx_power; + unsigned int i; + + /* +--- a/drivers/net/wireless/ralink/rt2x00/rt2500usb.h ++++ b/drivers/net/wireless/ralink/rt2x00/rt2500usb.h +@@ -839,6 +839,6 @@ + (((u8)(__txpower)) > MAX_TXPOWER) ? DEFAULT_TXPOWER : (__txpower) + + #define TXPOWER_TO_DEV(__txpower) \ +- clamp_t(char, __txpower, MIN_TXPOWER, MAX_TXPOWER) ++ clamp_t(u8, __txpower, MIN_TXPOWER, MAX_TXPOWER) + + #endif /* RT2500USB_H */ +--- a/drivers/net/wireless/ralink/rt2x00/rt2800lib.c ++++ b/drivers/net/wireless/ralink/rt2x00/rt2800lib.c +@@ -3297,10 +3297,10 @@ static void rt2800_config_channel_rf53xx + if (rt2x00_has_cap_bt_coexist(rt2x00dev)) { + if (rt2x00_rt_rev_gte(rt2x00dev, RT5390, REV_RT5390F)) { + /* r55/r59 value array of channel 1~14 */ +- static const char r55_bt_rev[] = {0x83, 0x83, ++ static const u8 r55_bt_rev[] = {0x83, 0x83, + 0x83, 0x73, 0x73, 0x63, 0x53, 0x53, + 0x53, 0x43, 0x43, 0x43, 0x43, 0x43}; +- static const char r59_bt_rev[] = {0x0e, 0x0e, ++ static const u8 r59_bt_rev[] = {0x0e, 0x0e, + 0x0e, 0x0e, 0x0e, 0x0b, 0x0a, 0x09, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07}; + +@@ -3309,7 +3309,7 @@ static void rt2800_config_channel_rf53xx + rt2800_rfcsr_write(rt2x00dev, 59, + r59_bt_rev[idx]); + } else { +- static const char r59_bt[] = {0x8b, 0x8b, 0x8b, ++ static const u8 r59_bt[] = {0x8b, 0x8b, 0x8b, + 0x8b, 0x8b, 0x8b, 0x8b, 0x8a, 0x89, + 0x88, 0x88, 0x86, 0x85, 0x84}; + +@@ -3317,10 +3317,10 @@ static void rt2800_config_channel_rf53xx + } + } else { + if (rt2x00_rt_rev_gte(rt2x00dev, RT5390, REV_RT5390F)) { +- static const char r55_nonbt_rev[] = {0x23, 0x23, ++ static const u8 r55_nonbt_rev[] = {0x23, 0x23, + 0x23, 0x23, 0x13, 0x13, 0x03, 0x03, + 0x03, 0x03, 0x03, 0x03, 0x03, 0x03}; +- static const char r59_nonbt_rev[] = {0x07, 0x07, ++ static const u8 r59_nonbt_rev[] = {0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x06, 0x05, 0x04, 0x04}; + +@@ -3331,14 +3331,14 @@ static void rt2800_config_channel_rf53xx + } else if (rt2x00_rt(rt2x00dev, RT5390) || + rt2x00_rt(rt2x00dev, RT5392) || + rt2x00_rt(rt2x00dev, RT6352)) { +- static const char r59_non_bt[] = {0x8f, 0x8f, ++ static const u8 r59_non_bt[] = {0x8f, 0x8f, + 0x8f, 0x8f, 0x8f, 0x8f, 0x8f, 0x8d, + 0x8a, 0x88, 0x88, 0x87, 0x87, 0x86}; + + rt2800_rfcsr_write(rt2x00dev, 59, + r59_non_bt[idx]); + } else if (rt2x00_rt(rt2x00dev, RT5350)) { +- static const char r59_non_bt[] = {0x0b, 0x0b, ++ static const u8 r59_non_bt[] = {0x0b, 0x0b, + 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0a, + 0x0a, 0x09, 0x08, 0x07, 0x07, 0x06}; + +@@ -3961,23 +3961,23 @@ static void rt2800_iq_calibrate(struct r + rt2800_bbp_write(rt2x00dev, 159, cal != 0xff ? cal : 0); + } + +-static char rt2800_txpower_to_dev(struct rt2x00_dev *rt2x00dev, ++static s8 rt2800_txpower_to_dev(struct rt2x00_dev *rt2x00dev, + unsigned int channel, +- char txpower) ++ s8 txpower) + { + if (rt2x00_rt(rt2x00dev, RT3593) || + rt2x00_rt(rt2x00dev, RT3883)) + txpower = rt2x00_get_field8(txpower, EEPROM_TXPOWER_ALC); + + if (channel <= 14) +- return clamp_t(char, txpower, MIN_G_TXPOWER, MAX_G_TXPOWER); ++ return clamp_t(s8, txpower, MIN_G_TXPOWER, MAX_G_TXPOWER); + + if (rt2x00_rt(rt2x00dev, RT3593) || + rt2x00_rt(rt2x00dev, RT3883)) +- return clamp_t(char, txpower, MIN_A_TXPOWER_3593, ++ return clamp_t(s8, txpower, MIN_A_TXPOWER_3593, + MAX_A_TXPOWER_3593); + else +- return clamp_t(char, txpower, MIN_A_TXPOWER, MAX_A_TXPOWER); ++ return clamp_t(s8, txpower, MIN_A_TXPOWER, MAX_A_TXPOWER); + } + + static void rt3883_bbp_adjust(struct rt2x00_dev *rt2x00dev, +@@ -8473,11 +8473,11 @@ static int rt2800_rf_lp_config(struct rt + return 0; + } + +-static char rt2800_lp_tx_filter_bw_cal(struct rt2x00_dev *rt2x00dev) ++static s8 rt2800_lp_tx_filter_bw_cal(struct rt2x00_dev *rt2x00dev) + { + unsigned int cnt; + u8 bbp_val; +- char cal_val; ++ s8 cal_val; + + rt2800_bbp_dcoc_write(rt2x00dev, 0, 0x82); + +@@ -8509,7 +8509,7 @@ static void rt2800_bw_filter_calibration + u8 rx_filter_target_20m = 0x27, rx_filter_target_40m = 0x31; + int loop = 0, is_ht40, cnt; + u8 bbp_val, rf_val; +- char cal_r32_init, cal_r32_val, cal_diff; ++ s8 cal_r32_init, cal_r32_val, cal_diff; + u8 saverfb5r00, saverfb5r01, saverfb5r03, saverfb5r04, saverfb5r05; + u8 saverfb5r06, saverfb5r07; + u8 saverfb5r08, saverfb5r17, saverfb5r18, saverfb5r19, saverfb5r20; +@@ -9960,9 +9960,9 @@ static int rt2800_probe_hw_mode(struct r + { + struct hw_mode_spec *spec = &rt2x00dev->spec; + struct channel_info *info; +- char *default_power1; +- char *default_power2; +- char *default_power3; ++ s8 *default_power1; ++ s8 *default_power2; ++ s8 *default_power3; + unsigned int i, tx_chains, rx_chains; + u32 reg; + +--- a/drivers/net/wireless/ralink/rt2x00/rt2800lib.h ++++ b/drivers/net/wireless/ralink/rt2x00/rt2800lib.h +@@ -22,10 +22,10 @@ + struct rt2800_drv_data { + u8 calibration_bw20; + u8 calibration_bw40; +- char rx_calibration_bw20; +- char rx_calibration_bw40; +- char tx_calibration_bw20; +- char tx_calibration_bw40; ++ s8 rx_calibration_bw20; ++ s8 rx_calibration_bw40; ++ s8 tx_calibration_bw20; ++ s8 tx_calibration_bw40; + u8 bbp25; + u8 bbp26; + u8 txmixer_gain_24g; +--- a/drivers/net/wireless/ralink/rt2x00/rt2x00usb.c ++++ b/drivers/net/wireless/ralink/rt2x00/rt2x00usb.c +@@ -117,12 +117,12 @@ int rt2x00usb_vendor_request_buff(struct + const u16 buffer_length) + { + int status = 0; +- unsigned char *tb; ++ u8 *tb; + u16 off, len, bsize; + + mutex_lock(&rt2x00dev->csr_mutex); + +- tb = (char *)buffer; ++ tb = (u8 *)buffer; + off = offset; + len = buffer_length; + while (len && !status) { +@@ -215,7 +215,7 @@ void rt2x00usb_register_read_async(struc + rd->cr.wLength = cpu_to_le16(sizeof(u32)); + + usb_fill_control_urb(urb, usb_dev, usb_rcvctrlpipe(usb_dev, 0), +- (unsigned char *)(&rd->cr), &rd->reg, sizeof(rd->reg), ++ (u8 *)(&rd->cr), &rd->reg, sizeof(rd->reg), + rt2x00usb_register_read_async_cb, rd); + usb_anchor_urb(urb, rt2x00dev->anchor); + if (usb_submit_urb(urb, GFP_ATOMIC) < 0) { +--- a/drivers/net/wireless/ralink/rt2x00/rt61pci.c ++++ b/drivers/net/wireless/ralink/rt2x00/rt61pci.c +@@ -1709,7 +1709,7 @@ static int rt61pci_set_state(struct rt2x + { + u32 reg, reg2; + unsigned int i; +- char put_to_sleep; ++ bool put_to_sleep; + + put_to_sleep = (state != STATE_AWAKE); + +@@ -2656,7 +2656,7 @@ static int rt61pci_probe_hw_mode(struct + { + struct hw_mode_spec *spec = &rt2x00dev->spec; + struct channel_info *info; +- char *tx_power; ++ u8 *tx_power; + unsigned int i; + + /* +--- a/drivers/net/wireless/ralink/rt2x00/rt61pci.h ++++ b/drivers/net/wireless/ralink/rt2x00/rt61pci.h +@@ -1484,6 +1484,6 @@ struct hw_pairwise_ta_entry { + (((u8)(__txpower)) > MAX_TXPOWER) ? DEFAULT_TXPOWER : (__txpower) + + #define TXPOWER_TO_DEV(__txpower) \ +- clamp_t(char, __txpower, MIN_TXPOWER, MAX_TXPOWER) ++ clamp_t(u8, __txpower, MIN_TXPOWER, MAX_TXPOWER) + + #endif /* RT61PCI_H */ +--- a/drivers/net/wireless/ralink/rt2x00/rt73usb.c ++++ b/drivers/net/wireless/ralink/rt2x00/rt73usb.c +@@ -1378,7 +1378,7 @@ static int rt73usb_set_state(struct rt2x + { + u32 reg, reg2; + unsigned int i; +- char put_to_sleep; ++ bool put_to_sleep; + + put_to_sleep = (state != STATE_AWAKE); + +@@ -2090,7 +2090,7 @@ static int rt73usb_probe_hw_mode(struct + { + struct hw_mode_spec *spec = &rt2x00dev->spec; + struct channel_info *info; +- char *tx_power; ++ u8 *tx_power; + unsigned int i; + + /* +--- a/drivers/net/wireless/ralink/rt2x00/rt73usb.h ++++ b/drivers/net/wireless/ralink/rt2x00/rt73usb.h +@@ -1063,6 +1063,6 @@ struct hw_pairwise_ta_entry { + (((u8)(__txpower)) > MAX_TXPOWER) ? DEFAULT_TXPOWER : (__txpower) + + #define TXPOWER_TO_DEV(__txpower) \ +- clamp_t(char, __txpower, MIN_TXPOWER, MAX_TXPOWER) ++ clamp_t(u8, __txpower, MIN_TXPOWER, MAX_TXPOWER) + + #endif /* RT73USB_H */