Re: 2.6.17-rc5-mm1

From: Hugh Dickins
Date: Tue Jun 06 2006 - 13:46:17 EST


On Tue, 6 Jun 2006, Martin Bligh wrote:
> >
> > I'll go mad if I try to work it out again: I was as worried as you
> > when I discovered that test in sys_swapon a year or so ago, apparently
> > without any check on MAX_SWAPFILES; and went moaning to Andrew. But
> > once I'd worked through swp_type, pte_to_swp_entry, swp_entry_to_pte,
> > swp_entry, I did come to the conclusion that the MAX_SWAPFILES bound
> > was actually safely built in there.
>
> If it's that difficult to figure out, is that not reason enough to rip
> it all out and replace it? ;-) Life seems quite complicated enough as
> it is.

Not everyone is as deficient as I am. But I do agree with you.

I think Martin had good reason to do his "maxpages = swp_offset(....)"
to work out the maximum pgoff expressible in an architecture's swap
offset bits; but just went overboard in doing likewise with swap type.

MAX_SWAPFILES and MAX_SWAPFILES_SHIFT are defined in the common
include/linux/swap.h, and every architecture supports that many
(some could manage more, but swp_type doesn't let them). If an
architecture came along which somehow couldn't support that many
(seems unlikely to me), then we'd move MAX_SWAPFILES_SHIFT into
into arch-dependent files, wouldn't we?

Yes, I'm all for sys_swapon just saying "if (type >= MAX_SWAPFILES)".

Hugh
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/