From: Peter Chubb <peter@chubb.wattle.id.au>
To: linux-ia64@vger.kernel.org
Subject: [Linux-ia64] mkswap.c ia64 fix take 2 [patch]
Date: Fri, 15 Mar 2002 02:53:13 +0000 [thread overview]
Message-ID: <marc-linux-ia64-105590701905291@msgid-missing> (raw)
Package: util-linux
Version: 2.11n-4
Hi,
My previous patch had the wrong (too small) an upper limit on
the size of allowable swapspace. The appended patch fixes that
problem. Now it's up to the kernel to reject too large a swap area
(it doesn't look easy to know how much kernel memory is available for
allocating a swap map). Thanks to David Mossberger for reviewing the
original patch.
--- util-linux-2.11n/disk-utils/mkswap.c.orig Thu Mar 15 21:09:57 2001
+++ util-linux-2.11n/disk-utils/mkswap.c Fri Mar 15 13:40:49 2002
@@ -238,6 +238,12 @@
#define V1_MAX_PAGES ((1 << 17) - 1)
#elif defined(__sparc__)
#define V1_MAX_PAGES (is_sparc64() ? ((3 << 29) - 1) : ((1 << 18) - 1))
+#elif defined(__ia64__)
+/*
+ * The actual size will depend on the amount of virtual address space
+ * available to vmalloc the swap map.
+ */
+#define V1_MAX_PAGES ((1UL << 54) - 1)
#else
#define V1_MAX_PAGES V1_OLD_MAX_PAGES
#endif
@@ -373,7 +379,7 @@
}
static long
-valid_offset (int fd, int offset) {
+valid_offset (int fd, off_t offset) {
char ch;
if (lseek (fd, offset, 0) < 0)
@@ -383,16 +389,16 @@
return 1;
}
-static int
+static off_t
find_size (int fd) {
- unsigned int high, low;
+ off_t high, low;
low = 0;
for (high = 1; high > 0 && valid_offset (fd, high); high *= 2)
low = high;
while (low < high - 1)
{
- const int mid = (low + high) / 2;
+ const off_t mid = (low + high) / 2;
if (valid_offset (fd, mid))
low = mid;
@@ -432,9 +438,9 @@
main(int argc, char ** argv) {
struct stat statbuf;
int i, sz;
- int maxpages;
- int goodpages;
- int offset;
+ long maxpages;
+ long goodpages;
+ off_t offset;
int force = 0;
char *block_count = 0;
char *pp;
@@ -604,7 +610,7 @@
if (goodpages <= 0)
die(_("Unable to set up swap-space: unreadable"));
printf(_("Setting up swapspace version %d, size = %ld bytes\n"),
- version, (long)(goodpages*pagesize));
+ version, (unsigned long)goodpages * pagesize);
write_signature((version = 0) ? "SWAP-SPACE" : "SWAPSPACE2");
offset = ((version = 0) ? 0 : 1024);
reply other threads:[~2002-03-15 2:53 UTC|newest]
Thread overview: [no followups] expand[flat|nested] mbox.gz Atom feed
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=marc-linux-ia64-105590701905291@msgid-missing \
--to=peter@chubb.wattle.id.au \
--cc=linux-ia64@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox