Skip to content

Commit 291f562

Browse files
nnethercotemkj
authored andcommitted
Scatter-shot improvements.
Things I noticed when reading over the code. - Conversions to more idiomatic code. - Spelling fixes. - Minor comment improvements. - Some minor formatting changes. Signed-off-by: Nicholas Nethercote <[email protected]>
1 parent 76442f0 commit 291f562

File tree

15 files changed

+50
-77
lines changed

15 files changed

+50
-77
lines changed

mctp-estack/src/fragment.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,8 @@ impl Fragmenter {
8787
/// Returns fragments for the MCTP payload
8888
///
8989
/// The same input message `payload` should be passed to each `fragment()` call.
90-
/// In `SendOutput::Packet(buf)`, `out` is borrowed as the returned fragment, filled with packet contents.
90+
/// In `SendOutput::Packet(buf)`, `out` is borrowed as the returned fragment, filled with
91+
/// packet contents.
9192
///
9293
/// `out` must be at least as large as the specified `mtu`.
9394
pub fn fragment<'f>(

mctp-estack/src/lib.rs

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@
2323
//! ## Configuration
2424
//!
2525
//! `mctp-estack` uses fixed sizes to be suitable on no-alloc platforms.
26-
//! These can be configured at build time, see [`config`]
26+
//! These can be configured at build time, see [`config`].
2727
2828
#![cfg_attr(not(feature = "std"), no_std)]
2929
// Temporarily relaxed for zerocopy_channel vendored code.
@@ -176,9 +176,9 @@ pub struct Stack {
176176
// Unused reassemblers set Reassembler::is_unused()
177177
reassemblers: [(Reassembler, Vec<u8, MAX_PAYLOAD>); NUM_RECEIVE],
178178

179-
/// monotonic time and counter.
179+
/// Monotonic time and counter.
180180
now: EventStamp,
181-
/// cached next expiry time from update()
181+
/// Cached next expiry time from update().
182182
next_timeout: u64,
183183

184184
// Arbitrary counter to make tag allocation more variable.
@@ -668,8 +668,8 @@ pub struct MctpMessage<'a> {
668668
pub ic: MsgIC,
669669
pub payload: &'a [u8],
670670

671-
/// Cookie is set for response messages when the request had `cookie` set in the [`Stack::start_send`] call.
672-
/// "Response" message refers having `TO` bit unset.
671+
/// Cookie is set for response messages when the request had `cookie` set in the
672+
/// [`Stack::start_send`] call. "Response" message refers having `TO` bit unset.
673673
reassembler: &'a mut Reassembler,
674674

675675
// By default when a MctpMessage is dropped the reassembler will be
@@ -773,7 +773,6 @@ pub(crate) mod fmt {
773773

774774
#[cfg(test)]
775775
mod tests {
776-
777776
// TODO:
778777
// back to back fragmenter/reassembler
779778

mctp-estack/src/serial.rs

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -169,12 +169,8 @@ impl MctpSerialHandler {
169169
// Complete frame
170170
let packet = &self.rxbuf[2..][..self.rxcount];
171171
return Some(packet);
172-
} else {
173-
warn!(
174-
"Bad checksum got {:04x} calc {:04x}",
175-
cs, cs_calc
176-
);
177172
}
173+
warn!("Bad checksum got {:04x} calc {:04x}", cs, cs_calc);
178174
} else {
179175
// restart
180176
self.rxpos = Pos::SerialRevision;

mctp-usb-embassy/src/mctpusb.rs

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -146,9 +146,7 @@ impl<'d, D: Driver<'d>> Receiver<'d, D> {
146146
// Refill
147147
let l = match self.ep.read(&mut self.buf).await {
148148
Ok(l) => l,
149-
Err(_e) => {
150-
return None;
151-
}
149+
Err(_e) => return None,
152150
};
153151
self.remaining = Range { start: 0, end: l };
154152
}
@@ -158,9 +156,7 @@ impl<'d, D: Driver<'d>> Receiver<'d, D> {
158156
let rem = &self.buf[self.remaining.clone()];
159157
let (pkt, rem) = match MctpUsbHandler::decode(rem) {
160158
Ok(a) => a,
161-
Err(e) => {
162-
return Some(Err(e));
163-
}
159+
Err(e) => return Some(Err(e)),
164160
};
165161
self.remaining.start = self.remaining.end - rem.len();
166162
Some(Ok(pkt))

pldm-file/src/client.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -191,7 +191,7 @@ where
191191
let resp_data_len = read_resp.len as usize;
192192

193193
if rest.len() != resp_data_len + 4 {
194-
return Err(proto_error!("invalid resonse data length"));
194+
return Err(proto_error!("invalid response data length"));
195195
}
196196

197197
let (resp_data, resp_cs) = rest.split_at(resp_data_len);

pldm-file/src/host.rs

Lines changed: 5 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -106,7 +106,7 @@ impl<const N: usize> Responder<N> {
106106
&mut self,
107107
mut comm: R,
108108
req: &PldmRequest<'_>,
109-
host: &mut impl Host,
109+
_host: &mut impl Host,
110110
) -> pldm::Result<()> {
111111
if req.typ != PLDM_TYPE_FILE_TRANSFER {
112112
trace!("pldm-fw non-pldm-fw request {req:?}");
@@ -125,9 +125,9 @@ impl<const N: usize> Responder<N> {
125125
};
126126

127127
let r = match cmd {
128-
Cmd::DfProperties => self.cmd_dfproperties(req, host),
129-
Cmd::DfOpen => self.cmd_dfopen(req, host),
130-
Cmd::DfClose => self.cmd_dfclose(req, host),
128+
Cmd::DfProperties => self.cmd_dfproperties(req),
129+
Cmd::DfOpen => self.cmd_dfopen(req),
130+
Cmd::DfClose => self.cmd_dfclose(req),
131131
_ => {
132132
trace!("unhandled command {cmd:?}");
133133
Err(CCode::ERROR_UNSUPPORTED_PLDM_CMD.into())
@@ -207,7 +207,6 @@ impl<const N: usize> Responder<N> {
207207
fn cmd_dfproperties<'a>(
208208
&mut self,
209209
req: &'a PldmRequest<'a>,
210-
_host: &mut impl Host,
211210
) -> Result<PldmResponse<'a>> {
212211
let (rest, dfp) = DfPropertiesReq::from_bytes((&req.data, 0))?;
213212

@@ -234,7 +233,6 @@ impl<const N: usize> Responder<N> {
234233
fn cmd_dfopen<'a>(
235234
&mut self,
236235
req: &'a PldmRequest<'a>,
237-
_host: &mut impl Host,
238236
) -> Result<PldmResponse<'a>> {
239237
let (rest, dfo) = DfOpenReq::from_bytes((&req.data, 0))?;
240238

@@ -254,8 +252,7 @@ impl<const N: usize> Responder<N> {
254252
let id = self
255253
.files
256254
.iter()
257-
.enumerate()
258-
.find_map(|(n, e)| if e.is_none() { Some(n) } else { None })
255+
.position(|e| e.is_none())
259256
.ok_or(file_ccode::MAX_NUM_FDS_EXCEEDED)?;
260257

261258
self.files[id].replace(file_ctx);
@@ -273,7 +270,6 @@ impl<const N: usize> Responder<N> {
273270
fn cmd_dfclose<'a>(
274271
&mut self,
275272
req: &'a PldmRequest<'a>,
276-
_host: &mut impl Host,
277273
) -> Result<PldmResponse<'a>> {
278274
let (rest, dfc) = DfCloseReq::from_bytes((&req.data, 0))?;
279275

pldm-fw-cli/src/bin/pldm-fw.rs

Lines changed: 7 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -9,17 +9,13 @@ use anyhow::{bail, Context};
99
use argh::FromArgs;
1010
use enumset::{EnumSet, EnumSetType};
1111
use mctp_linux::{MctpAddr, MctpLinuxListener};
12-
use std::fmt::Write as _;
1312
use std::io::Write;
1413

1514
fn comma_separated<T: EnumSetType + std::fmt::Debug>(e: EnumSet<T>) -> String {
16-
let mut s = String::new();
17-
let mut first = true;
18-
for i in e.iter() {
19-
write!(s, "{}{:?}", if first { "" } else { "," }, i).unwrap();
20-
first = false;
21-
}
22-
s
15+
e.iter()
16+
.map(|t| format!("{t:?}"))
17+
.collect::<Vec<_>>()
18+
.join(",")
2319
}
2420

2521
fn print_device_info(
@@ -112,10 +108,9 @@ fn extract_component(
112108
pkg: &pldm_fw::pkg::Package,
113109
idx: usize,
114110
) -> anyhow::Result<()> {
115-
if idx >= pkg.components.len() {
116-
bail!("no component with index {}", idx);
117-
}
118-
let comp = &pkg.components[idx];
111+
let Some(comp) = pkg.components.get(idx) else {
112+
bail!("no component with index {}", idx)
113+
};
119114

120115
let fname = format!("component-{}.{:04x}.bin", idx, comp.identifier);
121116
let mut f = std::fs::File::create(&fname)

pldm-fw/src/fd.rs

Lines changed: 16 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -167,17 +167,21 @@ impl<R: RespChannel> Responder<R> {
167167
// Check for consistent EID
168168
match cmd {
169169
// informational commands or Cancel always allowed
170-
| Cmd::QueryDeviceIdentifiers
170+
Cmd::QueryDeviceIdentifiers
171171
| Cmd::GetFirmwareParameters
172172
| Cmd::GetStatus
173173
| Cmd::CancelUpdate
174174
// RequestUpdate will check itself
175-
| Cmd::RequestUpdate
176-
=> (),
175+
| Cmd::RequestUpdate => (),
177176
_ => {
178177
if self.ua_eid != Some(eid) {
179-
debug!("Ignoring {cmd:?} from mismatching EID {eid}, expected {:?}", self.ua_eid);
180-
self.reply_error(req, &mut comm,
178+
debug!(
179+
"Ignoring {cmd:?} from mismatching EID {eid}, expected {:?}",
180+
self.ua_eid
181+
);
182+
self.reply_error(
183+
req,
184+
&mut comm,
181185
CCode::ERROR_NOT_READY as u8,
182186
);
183187
}
@@ -243,7 +247,7 @@ impl<R: RespChannel> Responder<R> {
243247
req_comm,
244248
req_pending,
245249
..
246-
} => req_pending.then(|| req_comm),
250+
} => req_pending.then_some(req_comm),
247251
_ => None,
248252
};
249253
trace!("pending reply {}", r.is_some());
@@ -268,14 +272,15 @@ impl<R: RespChannel> Responder<R> {
268272

269273
match Cmd::from_u8(rsp.cmd) {
270274
Some(Cmd::RequestFirmwareData) => self.download_response(rsp, d),
271-
| Some(Cmd::TransferComplete)
272-
| Some(Cmd::VerifyComplete)
273-
| Some(Cmd::ApplyComplete)
275+
274276
// Ignore replies to these requests.
275277
// We may have already moved on to a later state
276278
// and don't have any useful retry for them.
277-
=> Ok(()),
278-
_ => Err(proto_error!("Unsupported PLDM response"))
279+
Some(Cmd::TransferComplete)
280+
| Some(Cmd::VerifyComplete)
281+
| Some(Cmd::ApplyComplete) => Ok(()),
282+
283+
_ => Err(proto_error!("Unsupported PLDM response")),
279284
}
280285
}
281286

pldm-fw/src/lib.rs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1342,7 +1342,6 @@ pub struct UpdateTransferProgress {
13421342

13431343
#[cfg(test)]
13441344
mod tests {
1345-
13461345
use crate::*;
13471346

13481347
#[test]

pldm-fw/src/pkg.rs

Lines changed: 7 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -70,25 +70,15 @@ impl<'a> ComponentBitmap {
7070
}
7171

7272
pub fn as_index_str(&self) -> String {
73-
let mut s = String::new();
74-
let mut first = true;
75-
for i in 0usize..self.n_bits {
76-
if self.bit(i) {
77-
s.push_str(&format!("{}{}", if first { "" } else { ", " }, i));
78-
first = false;
79-
}
80-
}
81-
s
73+
(0usize..self.n_bits)
74+
.filter(|&i| self.bit(i))
75+
.map(|i| i.to_string())
76+
.collect::<Vec<_>>()
77+
.join(", ")
8278
}
8379

8480
pub fn as_index_vec(&self) -> Vec<usize> {
85-
let mut v = Vec::new();
86-
for i in 0usize..self.n_bits {
87-
if self.bit(i) {
88-
v.push(i)
89-
}
90-
}
91-
v
81+
(0usize..self.n_bits).filter(|&i| self.bit(i)).collect()
9282
}
9383
}
9484

@@ -232,7 +222,7 @@ impl Package {
232222
.finish()
233223
.map_err(|_| PldmPackageError::new_format("can't parse devices"))?;
234224

235-
/* this is the first divegence in package format versions; the
225+
/* this is the first divergence in package format versions; the
236226
* downstream device identification area is only present in 1.1.x
237227
*/
238228
let r = match identifier {

0 commit comments

Comments
 (0)